1. 什么是需求
一,需求的概念
① 需求是衡量软件测试结果的依据。
② 是满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求。
③ 大部分软件公司会有两部分需求: 用户需求 和 软件需求。
用户需求:
可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成
的任务。
软件需求(功能需求):需求会详细描述开发人员必须实现的软件功能。 大多数公司在进行软件开发的时候会把用户需求转化为软件需求,开发人员和测试人员工作的直接依据 就是软件需求。
二,从软件测试人员角度看需求
需求是测试人员开展软件测试工作的依据。
设计测试用例步骤:
过程如下,业务需求 -->
软件功能需求点 -->
测试需求点 -->
测试用例
需求对测试人员很重要
① 从软件功能需求出发,无遗漏的识别出测试需求是至关重要的,这将直接关系到用例的
测试覆盖率。
② 对于识别出的每个测试需求点,需要采用
具体的设计测试用例的方法
来进行测试用例的设计。
2.测试用例的概念
测试用例
是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环
境、操作步骤、测试数据、预期结果等要素。
测试过程中可能会遇到以下问题: 不知道是否较全面的测试了所有功能 ,测试的覆盖率无法衡量
版本的重复测试很难实施 还存在大量冗余测试影响测试效率,此时就可以应用测试用例解决问题。
3.BUG概念
软件错误的概念: 当且仅当规格说明是存在的并且正确,程序与规格说明之间的
不匹配才是错误。
当程序没有实现其最终用户合理预期的
功能要求时,就是软件错误。
4.开发模型和测试模型
软件的生命周期
软件生命周期是指从软件产品的设想开始到软件不再使用而结束的时间。 如果把软件看成是有生命的事物,那么软件的生命周期可以分成
6
个阶段,即需求分析、计划、、设计、编码、测试、运行维护。
软件的开发模型
(一)瀑布模型
瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架。
瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式。
优点: 强调开发的阶段性、 早期计划及需求调查、产品测试。有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。缺点: 依赖于早期进行的唯一一次需求调查,不能适应需求的变化; 由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程; 风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会。
(二)螺旋模型
螺旋模型引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。
对于那些规模庞大、复杂度高、风险大的项目尤其适合。这种迭代开发的模式给软件测试带来了新的要求,它不允许有一段独立的测试时间和阶段,测试必须跟随开发的迭代而迭代。
优点: 强调严格的全过程风险管理、 各开发阶段的质量、 提供机会检讨项目是否有价值继续下去。缺点: 引入非常严格的风险识别、风险分析和风险控制,这对风险管理的技能水平提出了很高的要求。这需要人员、资金和时间的投入
(三)增量、迭代
增量迭代模型是软件开发过程中、常用的开发模型。
增量开发能显著降低项目风险,结合软件持续构建机制,构成了当今流行的软件工程最佳实践之一。
增量开发模型,鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。因此,在这种开发模式下,每一次的迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地协作。
增量是逐块建造的概念:先开发主要功能模块,再开发次要功能模块,逐步完善,最终开发出符合需求的软件产品。例如
画一幅人物画,我
们可以先画人的头部,再画身体,再画手脚
。
迭代是反复求精的概念:采用上述画人物画例子,我们可以采用先画整体轮廓,再勾勒出基本雏形,再细化、着色。
(四)敏捷
敏捷宣言:
个体与交互重于过程和工具可用的软件重于完备的文档客户协作重于合同谈判响应变化重于遵循计划在每对比对中,后者并非全无价值,但我们更看重前者。
(五)V模型
优点:包含 单元测试和高层测试系统测试;清楚的标识了开发和测试的各个阶段;自上而下逐步求精,每个阶段分工明确,便于整体项目的把控。
缺点:自上而下的顺序导致测试工作在编码后,不能及时的进行修改;实际工作中,需求经常变化,导致V模型步骤反复执行,返工量很大,灵活度较低。具有局限性。
(六) W模型
W
模型增加了软件各开发阶段中应同步进行的验证和确认活动。
W
模型由两个
V
字型模型组成,分
别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。
W 模型特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的。
优点:有利于尽早地全面的发现问题。例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,显著减少总体测试时间,加快项目进度。缺点:具有 局限性。需求、设计、编码等活动被视为串行的;测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。无法支持敏捷开发模式。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑。