第二集 测试概念
文章目录
- 需求的概念
- 用户需求
- 软件需求
- 开发模型
- 实际上的模型
- 软件的生命周期
- 常见的开发模型
- 瀑布模型
- 优缺点:
- 螺旋模型
- 增量模型、迭代模型
- 区别
- 敏捷模型
- scrum
- 测试模型
- V模型
- W模型
需求的概念
需求分两部分:一部分是用户需求,另一部分则是软件需求。
用户需求
理解为甲方所提出的需求,或者最终使用者的要求。
软件需求
或者叫功能需求,会详细描述开发人员必须完成的软件功能。软件需求是测试人员进行测试时的基本依据。
开发模型
实际上的模型
模型的工作流程:
需求收集——>需求定义——>产品设计——>编码——>测试——>发布
需要如上几步
软件的生命周期
指的是软件从需求开始,经历需求的计划、设计、程序的开发、程序的测试等阶段,直到软件不在进行维护便到了生命的重点。
常见的开发模型
瀑布模型
瀑布模型在软件工程中有着重要地位 ,是所有其他模型的基础框架。瀑布模型的每一个阶段都只执行一次,因此是线性的开发模式。
优缺点:
可以运行的产品很迟才能被看见,会给项目带来很大的风险,尤其是集成的风险。因为如果在需求引入的一个缺陷要到测试阶段才可能会被发现,甚至更后的阶段。通常会导致前面阶段的工作大面积返工。
所以现在很多企业在其瀑布模型的线性思想上面,做出了修改,列如细化了各个阶段,在某些重点关注的阶段之间掺入迭代的思想。
正在瀑布模型中,测试往往处于软件实现后,这意味着必须在代码完成后又足够的时间预留给测试的活动,否则会导致测试不充分,把缺陷直接遗留给用户。
螺旋模型
一般在开发初期对需求不是很明确时,采用的则是渐进式的开发模式。
适用于那些规模庞大、复杂程度高、风险大的项目尤其适合。要求就是不允许有一段独立的测试时间和阶段,测试必须跟随开发的迭代而迭代。
增量模型、迭代模型
增量开发能显著降低 项目风险,结合软件持续构建机制,构成了当今软件工程最佳实践之一。
区别
比如画一幅画
增量模型:
先画人的头部(对其打草、勾线、上色后完整的画面),在画身体,在画手脚。
迭代模型:
先打草整体、在勾线整形、最后上色整体。
敏捷模型
敏捷模型是一种以迭代、增量和协作为核心的软件开发方法,强调快速响应变化、持续交付价值和紧密的团队协作。与传统的瀑布模型不同,敏捷模型通过短周期的迭代逐步完善产品,更适应需求频繁变动的项目。
敏捷模型中有⼀个⾮常重要的《敏捷宣⾔》,宣⾔内容:
个体与交互重于过程和⼯具
可⽤的软件重于完备的⽂档
客⼾协作重于合同谈判
响应变化重于遵循计划
四个特点:轻⽂档,轻流程,重⽬标,重产出。
scrum
scrum是敏捷模型中的一种,又叫做迭代式增量软件开发模型。
测试模型
测试模型中有两个⾮常重要且具有标志性的测试模型:V模型和W模型
V模型
优点:
• 明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间
各阶段的对应关系,有效提升测试的质量和效率。
• V模型指出:
◦ 单元和集成测试应检测程序的执⾏是否满⾜软件设计的要求;
◦ 系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;
◦ 验收测试确定软件的实现是否满⾜⽤⼾需要或合同的要求
缺点:仅仅把测试作为在编码之后的⼀个阶段,未在需求阶段就介⼊测试。缺点同瀑布模型。
W模型
特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进⾏的
优点:
• 有利于尽早地全⾯的发现问题。例如,需求分析完成后,测试⼈员就应该参与到对需求的验证和确
认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项⽬难度和测试⻛险,
及早制定应对措施,显著减少总体测试时间,加快项⽬进度。
缺点:
• 需求、设计、编码等活动被视为串⾏的;
• 测试和开发活动也保持着⼀种线性的前后关系,上⼀阶段完全结束,才可正式开始下⼀个阶段⼯
作。
• 重流程,⽆法⽀持敏捷开发模式。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理
⾯临着困惑。