written 7.7 years ago by |
1.)There are many ways in which test teams can be organized. There are no right or wrong ways to organize test teams.
2.)The structure one chooses will affect productivity, quality, customer satisfaction, employee morale, and budget.
3.)It is logical to have different testing groups in an organization for each testing phase of a software development life cycle.
4.)However, it is recommended that the unit tests be developed and executed by the software developers themselves, rather than an independent group of unit test engineers.
5.)The test group is dismantled after the project is completed.
6.)In any organization, it is recommended to have at least two test groups: integration test group and system test group. In the following sections, their details are discussed.
• Integration Test Group
i.)System integration testing, or simply, integration testing, is performed by an integration test group.
ii.)Integration testing requires a thorough knowledge of the modules and their interfaces. Since large systems are integrated in an incremental manner, possibly by using the concept of incremental builds, the integration test personnel must be very conversant with the idea of builds.
iii.)Thus, it natural that software developers, who together built the modules, must be involved in performing integration testing.
iv.)The system architects are also involved in integration testing for complex systems because of their thorough understanding of the larger picture of the system.
v.)The leader of the integration test group reports to the software development manager.
vi.) In addition to integrating the system, the test group may perform other duties, such as code inspection, configuration management, release management, and management of development laboratory.
• System Test Group
i.)A system test group is a team whose primary job is to perform testing without any bias and fear.
ii.)The system test group is truly an independent group, and it usually has a separate head count and budget. (Separate head count means that people are specifically hired and retained to perform testing.)
iii.)The reader may recall that some development engineers take up the role of an integration test engineer.
iv.)However, to eliminate the possibility of any bias in system-level testing, the task is performed by a separate group, and not by some members of the development group.
v.)The manager of this group does not report to hardware or software development managers. Rather, they are all peers at the organizational level.
vi.)The mandate of this group is to ensure that the system requirements have been satisfied and that the system is acceptable.
vi.)To facilitate the system to be eventually accepted by the customer, the group executes business acceptance tests identified in the user acceptance test plan.
vii.)The system test group can be further divided into several focused subgroups as the size of an organization becomes large: development test group, performance test group, scalability test group, automation test group, and sustaining test group, as shown in Figure.
viii.)Each of the groups may be headed by a line manager, who in turn reports to the senior-level manager in charge of the system test group.
ix.)The system test group structure must be regularly reviewed and adjusted to meet shifting internal and external needs. Note that the structure of the system test group is organized on a functional basis, and not on a project basis.
x.)In order to form a test group, a crucial thing is the size of the system test group.
xi.)The size of the system test group impacts the delivered quality of the product, the development cost of the product, and the time to deliver the product.
xii.)The tester–developer ratio is a matter of considerable debate. In practice,1/2 , 2/3, and 1/4 are common
o Development Test Group
i.)The focus of this group is on the testing of new features in a particular release.
ii.)This includes basic tests, functionality tests, robustness tests, interoperability tests, stress tests, load and stability tests, regression tests, documentation tests, and business acceptance tests.
o Performance Test Group
i.)This group puts emphasis on system performance.
ii.)Tests are conducted to identify system bottlenecks and recommendations are made to the developers for improving system performance.
iii.)The group uses test, measurement, and analysis tools to carry out its tasks.
iv.)This group may take up additional responsibilities such as reliability testing.
o Scalability Test Group
i.) The focus of this group is on determining whether or not the system can scale up to its engineering limits.
ii.)For example, a cellular phone network might have been designed with certain engineering limits in mind, such as the maximum number of base stations it can support, the maximum number of simultaneous calls it can handle, and so on.
iii.)The group tests whether the designed system can reach those limits.
iv.)This group may take up additional responsibilities such as load and stability testing.
o Automation Test Group
i.)The responsibility of this group is to develop test automation infrastructure, test libraries, and tests tools.
ii.)This group assists other groups in the development of automated test suites.
o Sustaining Test Group
i.)This group maintains the software quality throughout the product’s market life. This team is responsible for maintaining the corrective aspect of software maintenance.
ii.)The group works very closely with customers and conducts regression testing of patch software.