Testing must be an essential part of any project, irrespective of whether it uses any models for software development or not. Test Manager should completely understand the system development lifecycle being used in the organization so that testing activities may be correctly aligned to the lifecycle.
Let us look at some of the models that may be used for developing software.
Table of contents
Sequential models
Examples include V-model, W-model, Waterfall model, etc. As you must be aware, every model has many developmental phases. Each phase has multiple activities associated with it, like requirement gathering, system design, design implementation and finally testing – unit testing, integration testing, system testing and acceptance testing.
In sequential model, all the developmental activities of a phase must complete before the next phase can begin.
Testing activities like planning, analysis, design and implementation for products using such models happen simultaneously with project activities like planning, requirements analysis, software design, database design and coding.
The extent of overlapping is decided according to the testing level. As explained in ISTQB Foundation Level syllabus as well as in previous topics, test execution occurs sequentially.
Iterative models
They are also called incremental models. Examples include Rapid Application Development (RAD), Rational Unified Process (RUP), etc. In iterative model, features that are to be implemented are grouped together on the basis of some criteria like business priority, business risk, etc.
After the grouping, the project phases as well as their work products and task are implemented for each group, together. The phases for each feature group may occur sequentially or simultaneously and the iterations may be sequential or overlapped.
When the project is initiated, testing activities like high-level planning and analysis is done simultaneously with project activities like planning and business or requirement analysis.
Many times the test itself is implemented in an overlapping fashion with the test levels.
This means that test levels start as early as practically possible and can continue even after higher test levels have commenced.
Agile model
Examples include SCRUM, Extreme Programming (XP), etc. Agile product development model has incremental lifecycle where increments are quite short, sometimes just two to four weeks.
As in case of iterative or incremental models, activities and work products for each iteration must finish before the next phase can start.
Testing in Agile models is same as that for iterative models but there is a greater overlapping of the test activities, including execution, with product development activities.
However, all tasks of an iteration, which also comprises of testing, must finish before the next iteration can begin. Test Managers in an Agile environment, must play a technical consultant’s role rather than a direct administration role.
Spiral model
In Spiral model, prototyping is done initially to ascertain project feasibility as well as to try out new design and implementation ideas.
The prototyping is done depending on business priority level and technical risks involved. Prototypes helps the teams to identify the technical difficulties that could not be solved.
After these problems are fixed, the project can adopt an iterative or sequential model.
Let us take an example of applying ISTQB testing process to a system using V-model for development. The test process can be executed as follows:
- Project planning activities and System test planning tasks for the system can take place together at the same time. Untill system test execution and test closure activities are complete, Test control will continue to be in effect.
- Analysis and designing of system test activities can happen with defining specification for requirements, system, high-level (architectural) design and low-level (component) design.
- With the progress of system design, activities related to system test implementation may also begin. However, most of the activities would take place during programming and component testing. A few days before system test execution starts, system test implementation tasks come to an end.
- After system test entry conditions for the system are fulfilled or deliberately ignored, system test execution tasks can start. This means that at this state, testing for individual components as well as component integration is complete. The system test execution extends till test exit conditions are also fulfilled.
- Assessment of system test exit conditions and reporting and recording of test results take place continuously, all the way through the system test execution. The frequency of assessment and reporting increase as deadline for the project approaches.
- After system test exit conditions are fulfilled and system test execution is announced to be complete, system test closure tasks are carried out. Sometimes acceptance testing may be completed before system test closure related tasks can be completed.
Here we took the example of V-model above.
For an incremental or iterative model, same activities are performed but scheduling and degree may vary.
- For instance, it may be inefficient to implement the complete test environment at the start of the project, rather than as needed depending on iteration level.
- Scope of fundamental test activities increases the earlier the planning is done in initial stages, for any incremental and iterative model.
- Besides planning, test execution and then reporting for each project may be decided by the lifecycle model that the team is using.
For instance, in an incremental lifecycle, reporting and post-iteration review activities for each iteration should be done before the next iteration begins.
- Each iteration is treated as a small project in itself.
- This enables the team to adjust each iteration on the basis of what happened during the previous iteration.
- As each iteration may be short and have time constraints, reporting and post-iteration reviews could be short in terms of time and effort.
- However, they must not be skipped completely, so that overall test process may be tracked and problem areas may be identified as soon as possible.
- Issues arising out of system processes can affect the next iteration if remedial actions are not taken.
Test strategy may contain information about how testing activities may be aligned with other lifecycle activities.
Test Manager is responsible for ensuring this alignment for each project at every test level as well as any randomly selected group of development lifecycle and test processes. The groups may be selected during test planning or project planning phase.
According the requirements of the project, product or organization, extra test levels other than those explained in syllabus for ISTQB Foundation Level may be needed, like:
- Integration testing of hardware-software
- System integration testing
- Feature interaction testing
- Customer product integration testing
Test Manager must ensure that every test level must have these features defined:
- Feasible goals for every test objective
- Test items and the scope of the test
- Basis of the test and traceability or a method for evaluating test basis coverage
- Criteria or condition for test entry and test exit
- Deliverables of testing like reports of test results
- Test techniques to be used must be clearly defined as well as – how using the test technique, correct degree of coverage can be ensured, should also be documented
- Test entry and test exit conditions, reporting of results along with measurement and test metrics applicable to test objectives.
- Where relevant, test tools for each test task
- Test environments and any other resources that will be required
- People both internal and external to the test team who are responsible for the testing
- Where relevant, necessary compliance with standards, regulatory requirements, organizational standards etc.
In the next topic we will learn how to manage non-functional testing.
Other popular articles:
- What is Iterative model- advantages, disadvantages and when to use it?
- What are the Software Development Models?
- What is V-model- advantages, disadvantages and when to use it?
- What is Incremental model- advantages, disadvantages and when to use it?
- ISTQB Advanced Level Test Manager Study Material
Leave a Reply