Definition of software testing:
Software testing is a process of validating and verifying
that a software application or software program is developed and work as per
the business or user requirements.
Why software testing require?
why software testing require is the question in mind of
everyone who doesn’t know anything about software/IT field. Now I am describing
why sw testing is needed.
First of all I want to inform you that sw testing is done by
the software testing engineer. Software developer develops the software program
or software application then software tester has to verify that developed
software is working fine or not. If developer has make any mistake in code then
software application does not functioning as per its original requirement. Here
is one simple example
Suppose one application is developed as per client’s
requirement for add, edit and delete records. There is one page for add, edit
and delete the records. For that there is putted three buttons named “ADD”,
“EDIT” and “DELETE”. Now suppose when user clicks on “EDIT” Button it
functioning like “DELETE” button and delete the record. This is the
mistake. “EDIT” button should be work
for edit the records. So, this mistake is done by the software developer.
Software tester has to verify that each and every function is working as per
its function and requirement of business flow or not.
One other thing software tester has to consider in mind
during testing is software is developed as per user requirement or not. If user
has not demanded add, edit and delete functionality and developer has developed
same functionality instead of users any other required functionality then that
is the mistake made by developer. Software tester has to verify that developed
software is functioning as per user/client’s requirement or not.
If Software is developed against the user/client’s
requirement or not working as per expectation then that is called BUG or ISSUE.
We will see in detail about the difference between BUG and ISSUE, verification
and validation latter.
So sw testing is the important and critical process in
software development life cycle.There are many types of testing
Types of Testing in Software Testing
Software tester has to do many types of testing in developed
software as per the requirement of application and requirement of client/user.
But from them, four testing types are main and will be performed on any new
developed application or software in software testing. Here is the list of
those main four types of testing.
1. Unit/Component Testing
2. Integration Testing
3. System Testing
4. Acceptance Testing
Definition of Unit/Component Testing :
In software application or software program,
unit testing is the process of testing the smallest piece of testable software
application to determine that whether it behaves exactly as per the expectation
or not.This is will be performed first from all types of testing. Unit testing
is done by the software developer
Phase of Integration
Testing will comes, once Unit testing passed successfully.
Definition of Integration Testing :
Integration testing is the testing process when two or more units are combined with each
other then produces results that satisfy functional requirement or not. In
integration testing, combined two or more modules are tested as a group.
testing type integration testing will come in in picture once unit testing
completed. If there found any issue during the unit testing and not fixed it,
Integration testing can not be done.Integration testing is done by the software
tester.
System testing will comes after completion of integration
testing in software testing life cycle.
Definition of System Testing :
System testing is the process to verify that hole integrated
system is working fine and as per the requirement or not. system testing
explore functionality of the system. System testing is done by the software
tester.
After completion of system testing, Acceptance Testing comes
in software testing life cycle.
Definition of Acceptance Testing :
Acceptance Testing is performed at last stage of STLC to
determine that developed software is as per user's requirement or not. In
acceptance testing, Software tester compares each and every functionality of
developed software with the requirement document of user and confirm it.
All these four are main types of testing of developed
software. there are many more testing types. we will see all of them latter
What is unit testing in software testing
Unit testing is the testing process in software testing to
verify that the smallest testable part or a unit of an application, are tested
independently and individually to verify that specific unit is working fine as
per requirement or not.
Generally software developers have to do Unit testing when
they develop smallest part of an application. After development of specific
unit of an application, developer check and verify that how behaves new developed
unit independently. If there is any error or bug then they have to solve it in
first stage.
Here is the simple example of Unit testing
Suppose there is developed one functionality for add, edit
and delete records. Now when user clicks on edit button, it proceeds for
deleting the record. Then it is not right operation. It is called bug in IT
industry. This mistake is done by developer during the unit's development of an
application. This bug should be solved before the integration of two or
multiple Units of application.
Why unit test Require?
There is one fact in software industry is bugs found during
early testing phase are less cost and time consuming than bugs found during
latter stage. In software testing life cycle, Unit test is the first stage means
early stage than the other testing phases. So if Unit testing is done and bugs
founded and fixed during unittest phase are less time and cost consuming.
One more thing if unit test is not done and if that unit is
integrated with any another unit then integration testing is not possible.
Because for integration testing specific units should must work properly.
That’s why unittest is compulsory for integration testing.
What is integrated testing in software testing
Definition of integration testing
Integration testing is the testing process in software
testing to verify that when two or more modules are interact and produced
result satisfies with its original functional requirement or not. Integrated
testing is fall in Black box testing. Integrated testing will start after
completion of unit testing. Software
testing engineer is performing integration testing
Why integrated testing require?
Integration testing finds the bugs that occur when two or
more models integrated. Main purpose of Integration testing is to identifying
the functional, requirement and performance level bugs. When modules not
integrated, they perform as per requirement but when they integrated,
functional, requirement and performance related issues will occurs due to the
integration.
There are three different types of integration testing
approach in software testing.
1. Big Bang
2. Top down
3. Bottom up
1. Big Bang
Big Bang Integration testing approach used to find the bugs
when all the developed modules are interacted with each other and create a
complete software system then its produced result satisfying with original
requirement.
2. Top down
In Top down integrated testing approach, all Top level
integrated modules are tested first and its sub modules tested from top to down
step by step.
3. Bottom up
In Bottom up integrated testing approach, all bottom (Sub
Modules) level integrated sub modules are tested first and its main modules
tested from bottom to up step by step..
What is acceptance testing in software testing
Definition of acceptance testing
Acceptance testing is performed by software testing engineer
or end user. Acceptance test gives confidence to end user that application
being delivered to them meets their requirement or not. Acceptance testing is
fall under black box testing.
Why acceptance testing requires
Acceptance test is performed after completion of different
types of software testing like unit, integration and system testing. In
acceptance test, tester goes through the application and verifies its each and
every functionality with requirement document. Acceptance testing is final
testing and is performed before the delivery of application or software to end
user for use. Its main purpose is to find the bugs but to get the confidence of
end users requirements are fulfilled or not. Acceptance test is the last phase
of STLC. After that, maintenance testing is performed on software or
application if required.
What is system testing in software testing
System testing definition
System testing is the testing process in software testing to
verify the completeness of system with its original requirement and to find the
problems. System testing is start after completing the integration testing.
System test is the third phase of testing in STLC. System test is most important
phase in STLC because bugs not found in unit and integration testing are
founded during system test.
Why system testing require?
System testing process is fall under black box testing.
Software testing engineer perform system testing on complete integrated system.
In system testing techniques, Software tester has to not verify only
functionality of the system, But he has to test many different types of testing
like load, performance, stress, scalability to verify the complete system
behavior. First he tests the system to verify its functionality and then he has
to test the system for its performance and more. In system testing, Software
test engineer has to test system's all functionality flow wise. He has to check
each and every portion of application in depth because this is the final
testing of application. In system testing, Software test engineer has to test
the integration between software and hardware if any connected to verify its
behavior.
Bugs fixing is more time and cost consuming which are
founded during the system testing as compared to bugs founded during
integration and unit testing.
Which documents or knowledge is required to start writing
Test cases
Documents required to start writing Test cases
SRS Definition :
SRS is the document which contain all requirement
description about software. SRS will be provided by the client before
development of software. Basically it is knowladge transfer document between
client and development center. Full form of SRS is Software requirement
specification.
SRS Example :
Software system should be compatible with mac OS - Safari 5+
environment.
BRS Definition :
BRS is the document which contain business requirement
constraints of client application. Full form of BRS is Business requirement
specification. here is the one example of BRS
BRS Example :
Log file should be deleted after one year.
Use Case :
Use Case is the document which contain potential requirement
of application.