Regardless of the development model, there are several principles of good testing:
- Each development activity has a corresponding testing activity
- Each level of testing has specific objectives
- Analysis and test design begins during development
- Testers, already at the appearance of the first drafts of requirements and design, take part in the development and refinement of them, and also participate in the review of work products.
There are the following main development models:
- Sequential
- Iterative and incremental.
In a sequential development model, task execution begins after the previous one is completed. In such model, there is no overlap of the development phases, which is a disadvantage, since it is very good to get early feedback. In a sequential model, testing begins only after all other development activities are completed.
In contrast to the sequential development model, the V-model implements early testing and the testing process is carried out at all stages of development. In this model, testing is performed sequentially, but in some cases there is overlap. A sequential development model ensures the release of a product that meets all the requirements, but its production can take a very long time.
In the process of incremental development, products are created in parts. This process includes: establishing requirements, designing, building, and testing. The incremental development model allows to produce products faster, gradually increasing their functionality. Such changes can be both small and large.
Iterative development is applied when groups of functions are defined, designed, implemented and tested together in a series of cycles, often of fixed duration. During the iteration, the functions developed in the previous iterations may change, as well as changes in the project area. Each iteration ensures the production of working software, which increases the existing set of functions until the technical task is completed or its development is stopped.
Iterative development methods include the following methods:
- Rational Unified Process
- Scrum
- Kanban
- Spiral
Components or systems developed during iterative development are often tested by overlapping and repetitive levels of testing throughout development. by overlapping and repetitive levels of testing throughout development. Ideally, each part should be tested at multiple levels of testing during the production process. It is not uncommon for teams to use continuous delivery or continuous deployment, which involves having multiple levels of testing automated. The concept of self organization within teams helps to adapt the organization of testing work as well as build relationships between testers and developers.
Incremental and iterative development methods make it possible to produce and deliver software with minimal functionality within a month or even a few days, but development and delivery of all other features can take months or years.
No comments:
Post a Comment