软件测试定义:
- 保证程序和相应的规范说明一致
- 发现软件中的缺陷
- 确保软件不做不必要的事情
- 确保系统合理的运行
- 确保系统失败前可以让系统运行到何种程度
- 确保发布给用户的系统总有哪些风险
- ISO9000定义:测试是一种基于机器的,对代码执行测试,确认测试的活动
IEEE定义:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别
测试人员定义:软件测试是为了发现错误而执行程序的过程
什么是软件缺陷:
- 软件未达到产品说明书中已经标明的功能
- 软件出现了产品说明书中指明不会出现的错误
- 软件未达到产品说明书中虽未指出但应当达到的目标
- 软件功能超出了产品说明书中指明的范围
- 软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良
为什么会产生软件缺陷:
- 产品需求说明书 56%
- 设计方案 27%
- 编写代码 7%
- 其他 10%
完整的定义:
软件测试是发现并指出软件(包含软件经过建模、需求、设计等阶段所产生的大量输出工件及程序代码)中存在缺陷的过程,这个过程指明和标注问题存在的正确位置,详细记录导致问题出现的步骤,
及时存储当时的错误状态,以上组合在一起便于测试后问题能够准确再现
软件测试模型: 模型是对现实的抽象概括,对某些事件的简化表征
V模型:(具体的模型图可以百度看一下)
- 单元测试和集成测试应检测程序的执行是否满软件设计的要求
- 系统测试应检测系统功能,性能的质量特征是否达到系统要求的指标
- 验收测试应确定软件的实现是否满足用户需要或合同的要求
V模型的缺陷:
- 仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段
- 忽视了测试对需求分析,系统设计的验证,一直到后期的验收测试才发现
W模型:(具体的模型图可以百度看一下)
- 测试伴随着整个软件开发周期
- 测试的对象不仅仅是程序,需求、设计和功能同样要测试
- 根据W模型的要求,一旦有文档提供,就要及时确定测试条件、编写测试用例
W模型局限性:
- 在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作
- 无法支持迭代、自发性以及变更调整
H模型:
- 软件测试不仅仅指测试的执行,还包括很多其他的活动
- 软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发的进行
- 软件测试要今早准备,今早执行
- 软件测试是根据被测物的不同而分层进行的。不同层次的测试活动可以按照某个次序先后进行的,但也可能是反复的
测试在开发阶段的作用:
- 项目规划阶段:负责从单元测试到系统测试的整个测试阶段的监控
- 需求分析阶段:确定测试需求分析、系统测试计划的制定。其中,测试需求分析是对产品生命周期中测试所需求的资源、配置、每阶段评判通过的规约;系统测试计划则是依据软件的需求规格说明书,制定测试计划和设计相应的测试用例
- 概要设计和详细设计阶段:确保集成测试计划和单元计划的完成
- 编码阶段:由开发人员进行自己负责部分的测试代码