当前位置:网站首页>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 .
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 .
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 .
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 .
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 .
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 .
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 !
边栏推荐
- LeetCode - 面试题17.24 最大子矩阵
- 如何在博客中添加Aplayer音乐播放器
- STM32入门开发 编写DS18B20温度传感器驱动(读取环境温度、支持级联)
- 浙江大学周亚金:“又破又立”的顶尖安全学者,好奇心驱动的行动派
- 学习笔记|数据小白使用DataEase制作数据大屏
- 通过环境变量将 Pod 信息呈现给容器
- 對比學習之 Unsupervised Learning of Visual Features by Contrasting Cluster Assignments
- Graduation season | keep company with youth and look forward to the future together!
- Apprentissage comparatif non supervisé des caractéristiques visuelles par les assignations de groupes de contrôle
- 自动化测试框架
猜你喜欢
聊聊SOC启动(十) 内核启动先导知识
Verilog design responder [with source code]
.NET MAUI 性能提升
Drive HC based on de2115 development board_ SR04 ultrasonic ranging module [source code attached]
How to use cherry pick?
聊聊SOC启动(十一) 内核初始化
Interprocess communication (IPC)
About the application of writing shell script JSON in JMeter
聊聊SOC启动(六)uboot启动流程二
Debezium同步之Debezium架构详解
随机推荐
從色情直播到直播電商
自动化测试框架
Socket socket programming
Case study of Jinshan API translation function based on retrofit framework
verilog设计抢答器【附源码】
Process control (creation, termination, waiting, program replacement)
在我有限的软件测试经历里,一段专职的自动化测试经验总结
From pornographic live broadcast to live broadcast E-commerce
Design intelligent weighing system based on Huawei cloud IOT (STM32)
关于在云服务器上(这里用腾讯云)安装mysql8.0并使本地可以远程连接的方法
Debezium同步之Debezium架构详解
Template initial level template
如何在博客中添加Aplayer音乐播放器
聊聊SOC启动(九) 为uboot 添加新的board
There are ways to improve self-discipline and self-control
[encapsulation of time format tool functions]
About the application of writing shell script JSON in JMeter
Vuthink正确安装过程
创意信息获2家机构调研:GreatDB 数据库已在9地部署
Verilog 实现数码管显视驱动【附源码】