I. Software development life cycle
Software testing is an inseparable activity from software development activities. Knowing the software development lifecycle and software testing life cycle will help you be more oriented and build more effective and appropriate testing activities.
II. Software development model
1. Waterfall Model
This is the first software development model used. The stages will be carried out sequentially. The output of the previous stage is the input of the later stage. The next stage can only be performed when the previous stage has finished and cannot go back to the previous stage to handle the requirements when changing.
The stages are carried out sequentially as follows:
- Requirements Definition : The requirements collection and analysis are documented in the requirements specification document at this stage.
- System and software design : Analyze the design of the software system to meet customer requirements as in the SRS document.
- Implementation and Unit Testing : The system is developed by each unit and integrated in the next stage. Each unit developed and tested by a dev is called a Unit Test.
- Integration and system testing : Integration testing and system testing The main task of this stage is to check and fix all errors found so that the software works correctly and according to the required specification document.
- Operation and Maintenance : Maintain the system when there are any changes from the customer, the user.
Application of the model : The model is applied to small, short-term projects, the projects have little change in customer requirements and customer requirements must be clear.
Disadvantages of Waterfall model : The fact shows that in the final stages of the project, it is possible to recognize errors in the previous stages and have to come back to correct.
2. V-model (V Model)
- Is an extended software development process of the waterfall software development process The whole process is divided into two branches: Development and testing
- Each development stage will be conducted in parallel with a corresponding test phase => The bugs will be detected early from the beginning.
- The core spirit of the V model is that test activities are conducted in parallel (as far as possible) at the beginning of the cycle, along with development activities.
- For example: Activities for system-wide test planning may be performed in parallel with system analysis and design activities.
Application of this model : The projects are short and have clear requirements with little change, the technology used is not changed and well understood by the project team.
Disadvantages of the V-model : Compared with other models, in this model, the testing work goes closer and right from the start of development. Certainly the project quality will be better. But why do people keep coming up with other development models? Because in this V-model, people still develop at the same time the system (many requests, functions at the same time) but the risk of changing requirements is very large. So this model can still get in trouble when customers change requirements frequently. Difficult to control risks.
3. Agile model (Scrum process)
Agile is a flexible software development method to bring products to users as quickly as possible and is considered an improvement over the old models. This model is applicable to any type of project, but requires the participation and interactivity of the customer. Used when the customer requests the functionality available in a short period of time.
Scrum is a form of the Agile model and is the most popular framework when implementing the Agile model. Scrum is a repetitive development model. Fixed repetitions that usually last 1 to 2 weeks are called sprints or iterations
Divide the requirements into stages. Each sprint only makes a certain number of requests.
- Each sprint lasts from 1 week to 4 weeks (no longer than 1 month).
- The sprint head will plan what requirements to make. Then, will execute code and test. The end of sprint is a complete product of both code and test that can be demoed and run.
- Complete sprint 1, continue to sprint 2, sprint … until all requirements are met.
- In every 1 sprint, there will be daily meeting – daily meeting from 15-20 minutes. Each member will report: What did I do yesterday? What will I do today? Are there any difficulties?
- Scrum is a customer oriented model.
Application of this model : Suitable for projects that change customer requirements / business, follow a short period, can see the risks, or the inappropriate points to change. .
Disadvantages of Scrum process : The production team must have skills and knowledge of Agile model, Scrum process. Difficult in determining budget and time.
This article only hopes to help you understand the basics of software development life cycle and common software development models. You need to learn more to be able to better understand each model and know which models you are applying to, understand the advantages and disadvantages to better understand these models. You can refer to the Website at the reference link below to learn and find out the best way!