Test - Software development model and software testing model

1. Software Development Model

  • The concept: 软件开发模型(Software Development Model) refers to the structural framework of all software development processes, activities and tasks.
  • 作用: Software development model can clearly express visually the whole software development process, clearly defines the main activities and tasks to be accomplished, as the software foundation for project work. For different software systems, may use different development methods, using different programming languages ​​and a variety of different skills personnel involved in the work, the use of different management methods and means, as well as allowing the use of different software tools and different software engineering surroundings.

1.1. Doing modifications

Many products are using the "learning by doing reform" model of development. In this model, neither the specification nor been designed 软件随着客户的需要一次又一次地不断被修改, until the user satisfaction. This is a way to develop a similar workshop for small programs still appropriate, but this approach is the development of any size is unsatisfactory, mainly 缺点that:

  • Lack of planning and design aspects, the structure of the software with the constant changes from bad to worse, making impossible to continue to modify
  • Ignore the needs of sectors, to software developers a great deal of risk
  • Did not consider the maintainability of tests and procedures, and there is no documentation, software maintenance is very difficult
    Here Insert Picture Description

1.2. Waterfall model

The waterfall model of software life cycle is divided into planning, requirements analysis, software design, programming, software testing and operation and maintenance of six basic activities, and provides for them from top to bottom, mutual convergence of fixed order, as water falls, progressively falling. In the waterfall model of software development 各项活动严格按照线性方式进行, to accept the results of the work currently active on an activity, the implementation of content required to complete. Results of the work currently active 需要进行验证, if verified, then the result as input to the next activity, an activity continued under otherwise modified. Waterfall model 强调文档的作用and ask 每个阶段都要仔细验证. However, linear process of this model 太理想化is no longer suitable for modern software development model, was almost abandoned by the industry, its main drawback is that:

  • Divide the various stages of the completely fixed, a large amount of documents between stage, which greatly increases the workload
  • Since the development model is linear, the user only until the end of the whole process of development in order to see the results, thus increasing the risk of developing
  • Early mistakes may have to wait until the latter part of the development test phase can be found, then serious consequences
    Here Insert Picture Description

1.3. Incremental model

Also known as the evolutionary model. In the incremental model, the software is as a series of incremental member to design, implement, test and integration, each member is to provide a specific function by the various modules of code fragment formed by the interaction of the incremental model configuration 在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品. The product is broken down into several components, one by one component developers to deliver products, the benefits of doing so is that software development can better adapt to change, customers can continue to see software development, reducing development risk. However, the incremental model also has the following 缺陷:

  • Since each member is gradually incorporated into the constructed portion has a good system software architecture, the member must not be added to destroy, which require software includes an open architecture
  • During development, changes in demand is inevitable. Ability incremental model of flexibility so that it can adapt to these changes much better than the waterfall model and rapid prototyping model, but also easily degenerate into learning by doing to change the model, so that the loss of integrity of the process control software.

note:

  • When using the incremental model 第一个增量往往是实现基本需求的核心产品.
  • After the core product delivered to users through the evaluation form the next incremental development plan, which includes publication of modifications and new features of the core product. This process is repeated after each incremental release until a final perfect product
    Here Insert Picture Description

1.4. Rapid prototyping model

The first step is a rapid prototyping model 建造一个快速原型,实现客户或未来的用户与系统的交互, users or customers to prototype evaluation, needs to be further refined to develop software. By 逐步调整原型使其满足客户的要求what the real needs of developers Keyiqueding customers are; the second step is the development of software products in the customer satisfaction on the basis of the first step. Clearly, the rapid prototyping method can overcome the shortcomings of the waterfall model 减少由于软件需求不明确带来的开发风险, has a significant effect. Rapid prototyping 关键在于尽可能快速地建造出软件原型, once the real needs of customers, prototype construction will be discarded. Therefore, the internal structure of the prototype system is not as important is the need to quickly build a prototype, followed rapidly modify the prototype to reflect customer needs.

1.5. Spiral model

将瀑布模型和快速原型模型结合起来强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:

  • 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件
  • 风险分析:分析评估所选方案,考虑如何识别和消除风险
  • 实施工程:实施软件开发和验证
  • 客户评估:评价开发工作,提出修正建议,制定下一步计划

螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。但是,螺旋模型也有一定的限制:

  • 螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模型往往适应于内部的大规模软件开发
  • 如果执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目
  • 软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险

一个阶段首先是确定该阶段的目标,完成这些目标的选择方案及其约束条件,然后从风险角度分析方案的开发策略,努力排除各种潜在的风险,有时需要通过建造原型来完成。如果某些风险不能排除,该方案立即终止,否则启动下一个开发步骤。最后,评价该阶段的结果,并设计下一个阶段。
Here Insert Picture Description

1.6.喷泉模型

也称面向对象的生存期模型或OO模型,喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各个阶段可以相互重叠和多次反复,而且在项目的整个生存期中还可以嵌入子生存期。就像水喷上去又可以落下来,可以落在中间,也可以落在最底部。

2.软件测试模型

软件测试和软件开发一样,都遵循软件工程原理,遵循管理学原理 。测试专家通过实践总结出了很多很好的测试模型。这些模型将测试活动进行了抽象,明确了测试与开发之间的关系,是测试管理的重要参考依据。

2.1.V模型

V模型目的是改进软件开发的效率和效果,是瀑布模型的变种:

  • V模型明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系
  • V model indicates, and perform integration testing should be tested for the program unit meets the software design requirements; system testing should detect system functionality, quality characteristics performance has reached the indicators system requirements; achieve acceptance testing to determine whether the software to meet user needs or contract requirements

局限: Merely as a test phase after coding, testing is not entered in the requirements phase
Here Insert Picture Description

2.2.W model

W model 增加了软件各开发阶段中应同步进行的验证和确认活动. W model consists of two V-shaped models, representing the 测试the 开发process shown in FIG clear parallel relationship testing and development.

  • Features: The object is not only a test of procedures, requirements, design, etc. also have to test, test and development are carried out simultaneously
  • Pros: in favor 尽早地全面的发现问题. For example, after the completion of requirements analysis, test personnel should be involved in the verification and validation of requirements in order to find out where the problem lies as soon as possible. At the same time, demand for testing is also beneficial to keep abreast of item difficulty and test risk,及早制定应对措施,显著减少总体测试时间,加快项目进度
  • Limitations: requirements, design, coding and other activities are considered serial; testing and development activities to maintain a linear context, completely finished on a stage, before the official start of the next phase of work. We can not support agile development model. For the current complex and changing software development, W model and test management is facing not relieve confusion
    Here Insert Picture Description

Guess you like

Origin blog.csdn.net/LiLiLiLaLa/article/details/91060780