测试阶段划分
单元测试
概念:针对软件基本组成单元,软件最小单位来测试来进行检测的工作
目的:检测软件模块以《详细设计说明书》LLD=low level design为符合标准
集成测试
概念:将所有模块按照概要设计要求组装成为子系统,系统组装后对模块间的接口是否正确而测试。
目的:检测软件对《概要设计说明书》HLD high level design的符合程度
系统测试
概念:将集成好的软件系统,作为整个计算机的一个元素,是对计算机系统进行的测试工作。
目的:检测软件针对《需求规格说明书》SRS software requirement specification 做比较,软件与需求的定义是否存在不符合或矛盾当中。
单元测试、集成测试、系统测试比较
测试方法不同
单元测试属于《白盒测试》范畴;注释:白盒测试是看得见内部一种测试。
集成测试属于《灰盒测试》范畴;注释:灰盒介于白盒与黑盒之间的测试。既有白也有黑。
系统测试属于《黑盒测试》范畴;注释:黑盒是一种看不见的,测试;注重输入——输出的。
测试范围不同
单元测试主要测试:单元内部的数据结构、逻辑控制、异常处理
集成测试主要测试:模块之间的接口和接口数据传递关系,以及模块组合后的整体功能
系统测试主要测:整个系统对于需求的符合程度。
评估基准不同
单元测试评估基准 :逻辑覆盖率
集成测试评估基准:接口覆盖率
系统测试评估基准:测试用例对需求规格的覆盖率
回归测试:
在测试或其他活动缺陷经过修改后,进行的回归测试
目的:验证缺陷得到了一个正确的修复;同时系统的变更没有影响以前的功能。
注释:回归测试可以发生在任何一个阶段,包括单元测试、集成测试、系统测试
回归测试的策略
全重复测试:重新执行所有在前期测阶段建立的测试用例,来确定问题的修改的正确性和修改带来扩散局部性。。
选择性重复测试:既有选择地重新执行部分在前期测试阶段的测试用例,来测试被修改的程序,具体可分为:覆盖修改法和周边影像法。
覆盖修改法:仅仅针对被修改的部分,进行的回归测试,特点:效率高。
缺点:无法保证修改是否影响别的功能。
该方法在进度压力很大或者结构设计耦合度很小的状态下可以使用。
指标达成法: 这是一种类似于单元测试的方法,在重新执行测试之前,先确定一个要达成的指标,如修改部分代码100%<br>覆盖率、与修改有关的接口60%的覆盖率等,基于这种要求选择一个最小的测试用例集合。
周边影响法:不但要包含覆盖修改法确定的用例,还需要分析修改的扩散影响,具体分析修改过的对周边没有影响。
回归测试流程
回归的手工测试:
定制型项目(一次性)
周期短的项目
业务规则复杂的项目
美观、声音y、易用性测试
测试很少运行
软件不稳定
设计物理交互
回归测试的自动化
产品型项目:如大型医疗设备
增量型开发、持续集成项目
能够自动编辑、自动发布的系统
回归测试
多次重复、机械性动作:系统性能方面的测试
需要频繁运行测试:如冒烟测试
验收测试
测试完成时候,和配置审查完成之后,就可以《验收测试》
验收测试是以用户为主的测试,验收组由项目组成员、用户代表等组成
验收测试原则上在用户所在地进行,但如经用户同意也可以在公司内模拟用户换机进行。
验收测试根据合同、《需求规格说明书》、或《验收测试计划》对成品进行验收测试
验收测试结果有两张情况:
软件功能、性能等质量特性与用户的要求一致,软件可以接受。
软件功能、性能等质量特性与用户的要求有差距,不被用户接受
<span style="color: rgb(51, 51, 51); font-family: arial, 'pingfang sc', stheiti, simsun, sans-serif; font-size: 13px; line-height: 20px;">α 测试</span>
用户在开发环境下进行的测试
开发人员在模拟实际操作环境下进行的测试
因为开发者坐在旁边,随时记下错误,是可控环境下进行的测试
目的:主要是评审软件产品各种特性(功能、局域、可用性、可靠性、性能)等
<span style="color: rgb(51, 51, 51); font-family: arial, 'pingfang sc', stheiti, simsun, sans-serif; font-size: 14px; line-height: 24px;">β测试</span><br>
仅仅是多个用户在个或者说多个用户在实际使用环境下进行的测试。
没有开发者,是属于无法控制环境下进行的软件
测试过程模型之VV模型
V&v模型实现了测试设计(计划、设计、实现)和测试执行的分离
测试执行的顺序与开发活动相反
常见系统测试的分类
功能性测试
包括(配置测试、恢复性测试、备份测试)
是软件中最基础的测试
主要根据产品的需求规格说明书SRS
和测试需求列表
验证产品的功能实现是否符合产品要求
目标:
是否有不正确的或遗漏的功能
功能是否满足用户需求和系统设计的隐藏要求
输入能否正确接受?能否正确输出结果
性能测试
(压力测试、恢复性测试、容量测试)
概念:
用来测试软件在集成系统中的运行性能,包括系统
资源超负荷,超额数据总量等情况下的运行结果
目标:度量系统各种指标,确认系统有无各种性能瓶颈
性能测试必须要有工具支持,可以自行开发,
也可以借助专业测试攻击,loadrunner/wedload/ sikperformer
兼容性测试
概念 :
考虑北侧软件在其他软件(如操作系统)
后硬件设备下的运行情况
目标:两个方面:
与辅助软件的结合情况(操作系统,其他应用程序,测试软件,监控软件,浏览器等
与硬件设计的结合情况--由于兼容性测试对硬件要求较多,一般无特殊要求都只会针对软件要求来做测试。
安全性测试
概念:
用来验证集成在系统内部的保护机制是否保护系统不受非法侵入,
用来保护数据本身的完全性和保密性
广义的还包括物理安全和业务安全
范围:
一般可以从以下几个方面考虑安全
系统登录、用户管理、防火墙、系统数据
WEB安全(如加密、解密、数字签名等);
内部通讯协议;系统防毒测试等
(网络测试)
安装性测试
概念:
主要依据软件的测试特性列表、软件安装、配置文档,
设计安装过程的测试用例,发现软件安装过程中的错误
目的:
可找出安装软件的错误,也可找出安装手册的错误
文档测试
概念:
主要针对软件需求说明书、安装手册,配置指南,系统帮助等文档
进行测试(可扩展到在线帮助的范畴)测试主要内容主要是鞭策规范,内容正确性
无歧义性,完整性等
目的:
文档测试的目标是验证用户文档是正确的并且保证操作手册的过程能够正常工作
子主题