软件工程/流程/V模型简介
V模型表示一个软件开发过程(也适用于硬件开发),可以被认为是瀑布模型的扩展。它不是以线性方式向下移动,而是在编码阶段之后向上弯曲,形成典型的V形。V模型演示了开发生命周期每个阶段与其相关的测试阶段之间的关系。水平和垂直轴分别表示时间或项目完成度(从左到右)和抽象级别(最粗粒度的抽象位于最上面)。
在需求分析阶段,通过分析用户需求来收集拟议系统的需求。此阶段关注于确定理想系统必须执行的操作。但是,它不确定软件将如何设计或构建。通常,会对用户进行访谈,并生成一份名为用户需求文档的文档。
用户需求文档通常会描述用户期望的系统功能、界面、性能、数据、安全等需求。业务分析师利用它来向用户传达他们对系统的理解。用户仔细审查此文档,因为此文档将作为系统设计阶段中系统设计人员的指南。用户验收测试在此阶段设计。另请参阅功能需求。
有不同的方法来收集软方法和硬方法的需求,包括:访谈、问卷调查、文档分析、观察、一次性原型、用例以及与用户的状态和动态视图。
系统设计是系统工程师通过研究用户需求文档来分析和理解拟议系统业务的阶段。他们找出实现用户需求的可能性和技术。如果任何需求不可行,则会通知用户。找到解决方案并相应地编辑用户需求文档。
生成软件规格说明书,作为开发阶段的蓝图。此文档包含一般的系统组织、菜单结构、数据结构等。它还可以包含示例业务场景、示例窗口、报告以供更好地理解。其他技术文档(如实体图、数据字典)也将在本阶段生成。系统测试的文档在本阶段准备。V模型也类似于瀑布模型。
计算机体系结构和软件体系结构的设计阶段也可以称为高层设计。选择架构的基线是它应该实现所有内容,这通常包括模块列表、每个模块的简要功能、它们的接口关系、依赖关系、数据库表、架构图、技术细节等。集成测试设计在此特定阶段进行。
模块设计阶段也可以称为低层设计。将设计的系统分解成更小的单元或模块,并解释每个模块,以便程序员可以直接开始编码。低层设计文档或程序规范将包含模块的详细功能逻辑,以伪代码形式表示
- 数据库表,包含所有元素,包括其类型和大小
- 所有接口详细信息,包含完整的API参考
- 所有依赖项问题
- 错误消息列表
- 模块的完整输入和输出。
单元测试设计在此阶段开发。
在计算机编程中,单元测试是一种方法,通过该方法测试源代码的各个单元以确定它们是否适合使用。单元是应用程序中最小的可测试部分。在过程式编程中,单元可以是单个函数或过程。单元测试由程序员或偶尔由白盒测试人员创建。目的是通过测试函数内每个可能的分支来验证内部逻辑代码,也称为测试覆盖率。静态分析工具用于促进此过程,其中将输入数据的各种变体传递给函数以测试每个可能的执行情况。
在集成测试中,将单独的模块一起测试以暴露接口中的故障以及集成组件之间交互中的故障。测试通常是黑盒测试,因为不会直接检查代码中的错误。
系统测试将比较系统规范与实际系统。在完成集成测试后,下一个测试级别是系统测试。系统测试检查集成的产品是否满足指定的需要。为什么在组件和集成测试之后仍然需要这样做?原因如下
- 在较低的测试级别,测试针对技术规范进行,即从软件生产者的技术角度出发。但是,系统测试从客户和未来用户的角度看待系统。测试人员验证需求是否已完全且适当地满足。
- 示例:客户(已订购并支付系统费用的人)和用户(使用系统的人)可以是具有自己特定兴趣和系统需求的不同群体或组织。
- 许多功能和系统特性源于所有系统组件的交互,因此,它们仅在整个系统的级别上可见,并且只能在那里观察和测试。
验收测试是测试的一个阶段,用于确定系统是否满足需求分析阶段指定的各项要求。验收测试设计源自需求文档。验收测试阶段是客户用来确定是否接受系统的阶段。
验收测试有助于
- 确定系统是否满足其验收标准。
- 使客户能够确定是否接受系统。
- 让目标受众在“现实世界”中测试软件。
验收测试的目的
- 根据最初的需求验证系统或更改。
- 定义验收标准
- 功能需求。
- 性能需求。
- 接口质量要求。
- 整体软件质量要求。
- 制定验收计划
- 项目描述。
- 用户职责。
- 验收描述。
- 执行验收测试计划。
- ↑ Clarus 概念操作。 出版物编号:FHWA-JPO-05-072,联邦公路管理局 (FHWA),2005
- Roger S. Pressman:软件工程:实践者方法,麦格劳-希尔公司,ISBN 007301933X
- Mark Hoffman & Ted Beaumont:应用开发:管理项目生命周期,Mc Press,ISBN 1883884454
- Boris Beizer:软件测试技术。第二版,国际汤姆森计算机出版社,1990年,ISBN 1-85032-880-3