| » Quality Assurance | » Software Testing | » Process Improvement |
| » Risk Analysis | » Software Usability | » Software Development |
Software Testing
At Smooth Lab we devised a customized version of the traditional V-model. This model has been widely adopted in Europe and particularly in Germany. The main process phases: requirements, specification, design and implementation have a corresponding verification and validation testing phase. Implementation of modules are tested by unit testing, system design is tested by integration testing, system specifications are tested by system testing and finally acceptance testing verifies the requirements. The V-model gets its name from the timing of the phases. Starting from the requirements, the system is developed one phase at a time until the lowest phase, the implementation phase, is finished. At this stage testing begins, starting from unit testing and moving up one test level at a time until the acceptance testing phase is completed.
There is a higher level layer which gives a business view to the whole process. This instance is frequently called Business Case and its testing counterpart is the Release Testing. This is not necessarily a formal testing process but we find it very important since it represents a statement not only about the quality of the product but also about the client's strategy and objectives.
The unit tests and integration tests ensure that the system design is followed in the code. The system and acceptance tests ensure that the system does what the customer wants it to do. The test levels are planned so that each level tests different aspects of the program and so that the testing levels are independent of each other. Someone is responsible for each level. Each testing level will begin as soon as there is something to test. The traditional V-model states that testing at a higher level is begun only when the previous test level is completed.
At SmoothLab we adapted the model to better integrate with the iterative nature of today's software development. Our approach does not require that any of the steps in a process has to be completed before the next step starts. Testing in higher levels will begin when the system has been developed to the point where testing at that level can begin. Splitting the testing into V-model test levels that are performed in parallel could mean that the testing process is easily manageable and more flexible than traditional V-model testing.
