Strategy Testing Issues
Following are the issues considered to implement software testing strategies.- Specify the requirement before testing starts in a quantifiable manner.
- According to the categories of the user generate profiles for each category of user.
- Produce a robust software and it's designed to test itself.
- Should use the Formal Technical Reviews (FTR) for the effective testing.
- To access the test strategy and test cases FTR should be conducted.
- To improve the quality level of testing generate test plans from the users feedback.
Test strategies for conventional software
Following are the four strategies for conventional software:
1) Unit testing
2) Integration testing
3) Regression testing
4) Smoke testing
1) Unit testing
- Unit testing focus on the smallest unit of software design, i.e module or software component.
- Test strategy conducted on each module interface to access the flow of input and output.
- The local data structure is accessible to verify integrity during execution.
- Boundary conditions are tested.
- In which all error handling paths are tested.
- An Independent path is tested.
Following figure shows the unit testing:

Unit test environment
The unit test environment is as shown in following figure:

Difference between stub and driver
Stub | Driver |
---|
Stub is considered as subprogram. | It is a simple main program. |
Stub does not accept test case data. | Driver accepts test case data. |
It replace the modules of the program into subprograms and are tested by the next driver. | Pass the data to the tested components and print the returned result. |
2) Integration testing
Integration testing is used for the construction of software architecture.
There are two approaches of incremental testing are:
i) Non incremental integration testing
ii) Incremental integration testing
i) Non incremental integration testing- Combines all the components in advanced.
- A set of error is occurred then the correction is difficult because isolation cause is complex.
ii) Incremental integration testing- The programs are built and tested in small increments.
- The errors are easier to correct and isolate.
- Interfaces are fully tested and applied for a systematic test approach to it.
Following are the incremental integration strategies:
a. Top-down integration
b. Bottom-up integration
a. Top-down integration
- It is an incremental approach for building the software architecture.
- It starts with the main control module or program.
- Modules are merged by moving downward through the control hierarchy.
Following figure shows the top down integration.

Problems with top-down approach of testing
Following are the problems associated with top-down approach of testing as follows:- Top-down approach is an incremental integration testing approach in which the test conditions are difficult to create.
- A set of errors occur, then correction is difficult to make due to the isolation of cause.
- The programs are expanded into various modules due to the complications.
- If the previous errors are corrected, then new get created and the process continues. This situation is like an infinite loop.
b. Bottom-up integration
In bottom up integration testing the components are combined from the lowest level in the program structure.
The bottom-up integration is implemented in following steps:- The low level components are merged into clusters which perform a specific software sub function.
- A control program for testing(driver) coordinate test case input and output.
- After these steps are tested in cluster.
- The driver is removed and clusters are merged by moving upward on the program structure.
Following figure shows the bottom up integration:

3) Regression testing
- In regression testing the software architecture changes every time when a new module is added as part of integration testing.
4) smoke testing
- The developed software component are translated into code and merge to complete the product.
Difference between Regression and smoke testing
Regression testing | Smoke testing |
---|
Regression testing is used to check defects generated to other modules by making the changes in existing programs. | At the time of developing a software product smoke testing is used. |
In regression tested components are tested again to verify the errors. | It permit the software development team to test projects on a regular basis. |
Regression testing needs extra manpower because the cost of the project increases. | Smoke testing does not need an extra manpower because it does not affect the cost of project. |
Testers conduct the regression testing. | Developer conducts smoke testing just before releasing the product. |
Alpha and Beta testing
Alpha testing | Beta testing |
---|
Alpha testing is executed at developers end by the customer. | Beta testing is executed at end-user sites in the absence of a developer. |
It handles the software project and applications. | It usually handles software product. |
It is not open to market and the public. | It is always open to the market and the public. |
Alpha testing does not have any different name. | Beta testing is also known as the field testing. |
Alpha testing is not able to test the errors because the developer does not known the type of user. | In beta testing, the developer corrects the errors as users report the problems. |
In alpha testing, developer modifies the codes before release the software without user feedback. | In beta testing, developer modifies the code after getting the feedback from user. |