Powered By Blogger

Tuesday, October 8, 2013

What is software testing

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.


1 comment:

Unknown said...


Bangalore web zone is a web design Company in Bangalore that creates affordable on-line solutions to help businesses get results from the digital world. We deliver a full range of web solutions that focus on our client's objectives of increasing traffic and revenue generation.

web development firm | Website development company