当前位置:网站首页>What development models did you know during the interview? Just read this one

What development models did you know during the interview? Just read this one

2022-07-07 11:31:00 The elegance of testing

Preface

Software development model refers to the whole process of software development 、 The structural framework of activities and tasks . Generally, it includes requirements 、 Design 、 Coding and testing etc , Even the maintenance phase . The software development model clearly stipulates the main activities and tasks to be completed in the process of software development , It is used to guide the work in the whole development process . For different systems , According to the characteristics of the software 、 Different software development models are selected for the participation of project members .

As a test engineer , The work content of testing is closely related to the software development model , In different development models , The tasks and functions of testing will also be different . following , Introduce several common development models .

Waterfall model

Waterfall model is the earliest software development model , It provides the basic framework of software development , It lays the foundation for the subsequent development model . from 1970 By Winston in · Royce (Winston Royce) After the proposal , until 80 Early S , It has been widely used .

This model has clear stage activities , It is divided into 6 Stages : plan → Demand analysis → software design → code → test → Operation and maintenance . The sequence of stages is fixed , From top to bottom 、 Connect with each other , Like a waterfall, water falls step by step . This is also the origin of the name of waterfall model .

 picture

The essence of waterfall model is one pass , That is, each activity is executed only once , Finally get the software product , Also known as “ Linear order model ” perhaps “ Traditional life cycle model ”. The process is to complete the work of the previous stage, output the results and pass the audit , can “ flow ” To the next stage ; Otherwise, go back to the front , Even earlier stage activities .

shortcoming :

1) The division of each stage is completely fixed , A lot of documents are generated between stages , It greatly increased the workload .

2) Because the development model is linear , Single process , Irreversible , Users can only see the development results at the end of the whole process , This increases the risk of development .

3) Testing is just one stage , Lack of whole process testing idea . Early errors may not be discovered until later in the development testing phase , The later the problem is found, the higher the cost

4) In the software requirement analysis phase , It is difficult to completely determine all the needs of users , Unable to cope with projects with changing needs .

advantage :

1) Provide checkpoints for projects by phase .

2) After the completion of the current phase , You just need to focus on the next phase .

Applicable project scope :

1) Software development projects with clear requirements ;

2) There is little or no change in requirements during development time ;

3) Analysts and designers should be familiar with the application field ;

4) Low risk projects ( To the goal 、 The environment is very familiar );

5) The user environment is very stable ;

Rapid prototyping model

The rapid prototype model is opposite to the waterfall model , At the beginning of the project, a system prototype that can be run is quickly built according to the needs of users , Then show the user , Reviewed by the user , Make an opinion , Then gradually enrich the project requirements . When the demand is really determined , Before the formal project development .

 picture

advantage :

It helps to meet the real needs of users ; The prototype system has been verified through interaction with users , The specification document generated from this can correctly describe user requirements .

shortcoming :

Require developers to quickly build prototypes .

Applicable project scope :

It is applicable to software projects with unclear requirements .

Incremental model

Also known as iterative model or evolutionary model , It splits a complete piece of software into different components , Then develop tests component by component , Every time a component is completed, it is presented to the customer , Let the customer confirm whether the function and performance of this part meet the customer's requirements , The final determination is correct , Integrating components into the software architecture . The entire development effort is organized into a series of short-term 、 Simple small projects , It's called a series of iterations , Every iteration needs to go through requirements analysis → software design → code → Testing process .

 picture

advantage :

1) The first deliverable version of the software requires less cost and time

2) Be able to adapt to changes in customers' needs , As the demand changes , Just modify one component .

shortcoming :

1) If there is no overall plan for the change of user needs , It may change to " Develop while doing " The pattern of .

2) When finally integrating various components , There may be a risk of integration failure .

Applicable project scope :

Applicable to tight construction period 、 Functions can be divided 、 More complex software projects . Software engineers must have a high technical level , Be able to design an open software architecture .

Spiral model

This model combines the waterfall model 、 Rapid prototyping model , Youbali · Bohm (Barry Boehm) On 1988 Put forward in , The biggest feature of this model is the introduction of risk analysis that other models do not .

The spiral model divides the development process into several spiral cycles , Each spiral period is roughly consistent with the waterfall model , Risk analysis will be carried out before the beginning of each cycle . At each stage , First, build the software prototype , Complete the iteration process according to the rapid prototype model , Produce the final perfect product , Then move on to the next stage , Similarly, risk assessment should also be carried out before the next stage , This cycle continues until all stages of the task are completed .
 picture

The model has four quadrants , The meaning of each quadrant is as follows :

1、 Make a plan : Identify software goals , Formulate the implementation plan , And list the limitations of the project development .

2、 risk analysis : Evaluate the implementation plan formulated , Identify and eliminate risks .

3、 Carry out the works : Develop products and verify them .

4、 Customer assessment : The customer reviews and evaluates the product , Put forward suggestions for amendment , Make a plan for the next step .

advantage :

1) The emphasis on alternatives and constraints is conducive to the reuse of existing software , It also helps to make software quality an important goal of software development ;

2) Reduces the risk of over testing or under testing ;

3) In the spiral model, maintenance is just another cycle of the model , There is no essential difference between maintenance and development .

shortcoming :

The spiral model is risk driven , Therefore, software developers must have rich experience in risk assessment and expertise in this field .

Applicable project scope :

Applicable to large-scale software developed internally ( Long development cycle 、 Software projects that are relatively vulnerable to social factors ), Software developers have rich knowledge and experience in risk assessment .

V Model

V Model is also called RAD(Rapid Application Development, Rapid application development ) Model , It is an important model in the process of software development , Because its model composition looks like letters V, So it is called software testing V Model .V The model can be roughly divided into the following different stages and steps : Customer demand analysis 、 Software requirements analysis 、 Outline design 、 Detailed design 、 Software coding 、 unit testing 、 Integration testing 、 The system test 、 The acceptance test .

 Insert picture description here

advantage :

The development phase includes the underlying tests ( unit testing ) And high level testing ( The system test ); Clearly identifies all phases of development and testing ; Clear division of labor in each stage , Easy to control the whole project .

shortcoming :

The top-down order leads to , Testing should be done after coding , As a result, the error cannot be modified in time ; In practice , Change requirements frequently , Lead to v The model steps are repeated , A lot of rework , Low flexibility .

Applicable project scope :

It is generally applicable to the development of some traditional information system applications , And some high-performance, high-risk systems 、 Internet software , Or when a system is difficult to be modularized , It's more difficult to make V The various components required by the pattern , Need more emphasis on iterative development model or agile development model .

Agile model

The agile model is 20 century 90 A software development model that arose in the s . In the development of modern society , Because the business will often change rapidly , Therefore, detailed and complete development requirements are often not available before software development , There are no complete development requirements , The traditional software development model cannot be applied . Agile development model is proposed to solve this problem . The model takes the customer's needs as the core , Use iterations , Develop step by step .

At the beginning of construction, a software project will be divided into several interrelated and independent sub projects , Then iteratively complete each sub project . When the customer has a change in demand , Agile model can quickly make changes to a sub project to meet the needs of customers . In the process , The software is always available .
 picture

advantage :

1、 Users will soon be able to see a baseline architecture version of the product

2、 Agility focuses on the market's ability to respond quickly , Face to face with customers

3、 Changes can be accepted at any time

shortcoming :

1、 Pay attention to personnel communication , Better teamwork is needed

2、 Ignore the importance of documents , Need experienced people in the project

3、 If the project personnel flow is too large , It will increase the difficulty of project maintenance

Applicable project scope :

Applicable to complex products , The demand is changeable , Hard to predict 、 Realize products with long cycle

Last : It can be in the official account : Sad spicy bar ! Get one by yourself 216 Page software testing engineer interview guide document information 【 Free of charge 】. And the corresponding video learning tutorial is free to share !, It includes basic knowledge 、Linux necessary 、Shell、 The principles of the Internet 、Mysql database 、 Special topic of bag capturing tools 、 Interface testing tool 、 Test advanced -Python Programming 、Web automated testing 、APP automated testing 、 Interface automation testing 、 Testing advanced continuous integration 、 Test architecture development test framework 、 Performance testing 、 Safety test, etc. .

I recommend one 【Python Automated test communication group :746506216】, We can discuss communication software testing together , Learn software testing together 、 Interview and other aspects of software testing , Help you advance quickly Python automated testing / Test Development , On the road to high pay .

Friends who like software testing , If my blog helps you 、 If you like my blog content , please “ give the thumbs-up ” “ Comment on ” “ Collection ” One Key triple connection !

原网站

版权声明
本文为[The elegance of testing]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207070907105661.html