4.1 软件测试分类
不同角度分类:
-- 是否关心内部结构: 白盒测试、黑盒测试、灰盒测试
-- 软件开发过程:单元测试、继承测试、系统测试、验收测试
-- 是否执行程序:静态测试、动态测试
-- 是否需要人工干预:人工测试、自动化测试
-- 测试实施组织:开发方测试、用户测试、第三方测试
计算机软件配置项(CSCI):
-- 是一组软件(独立配置管理,满足用户要求)
-- 构成:开发中及测试中产生的所有信息(代码、文档、报告等)
-- 配置项属性:名称、标识符、文件状态、版本、作者、日期等
-- 基线(有效控制变更)即软件技术状态基线:某个阶段终点处的软件成分的技术状态,已通过正式审核和同一,是下一步研发的基础。
质量子特性测试内容:
-- 功能性
* 适合性、准确性、互操作性、安全保密性、功能依从性
-- 可靠性
* 成熟性、容错性、可恢复性、可靠性依从
-- 可用性
* 可理解性、易学性、可操作性、吸引性、可用性依从
-- 效率
* 时间特性、资源利用、效率依从性
-- 维护性
* 可分析性、可修改性、稳定性、可测试性、维护性依从
-- 可移植性
* 适应性、易安装性、共存性、可替换性、可移植性依从
传统分类测试内容:
-- 功能测试、功能多余物测试、边界测试、性能测试、接口测试、安全性测试、强度测试、可靠性测试、恢复性测试、人机交互界面测试、余量测试、配置测试、安装性测试、兼容性测试
各类测试具体要求:
-- 功能:
1)每一个软件功能必须被一个测试用例或一个被认可的异常所覆盖
2)用基本数据类型和数据值测试
3)用一系列合理的数据类型和数据值运行,测试超负荷、饱和及其他“最坏情况”的结果
4)用假想的数据类型和数据值运行,测试其排斥不规则输入的能力
5)每个功能的合法边界值和非法边界值都必须有测试用例专门测试
-- 性能:
1)测试程序在获得定量结果程序计算的准确性
2)测试程序在有速度要求时完成功能的时间
3)测试程序完后才能功能所能处理的数据量
4)测试程序各部分的协调性,如高速、低速操作的协调
5)测试软/硬件中的一些因素是否限制了程序的性能
6)测试程序的负载能力
7)测试程序运行占用空间
-- 外部接口和人机交互测试:
1)测试所有外部接口,检查接口信息的格式和内容
2)测试所有人机交互界面提供的操作和显示界面,并以非常规操作、误操作、快速操作来检查界面的可靠性,以最终用户为北京检验界面显示的清晰性
3)如果有用户手册和操作手册,应对照手册逐步进行操作和观察
-- 强度测试:
* 预先规定的时期内,在软件设计能力的极限状态,进而在 超出 此极限的状态下,运行软件的所有功能
-- 可靠性测试(有代表的环境中):
1)必须按照使用的概率分布随机地选择测试实例
2)必须保证输入覆盖,各种使用功能的覆盖,相关输入变量可能性组合的覆盖、不合法输入域的覆盖
3)被测软件的测试环境与预期的实际使用环境尽可能一致
4)对于可能导致软件运行方式改变的一些边界条件(如堆栈溢出)和环境条件(如系统加电、掉电、电磁干扰等)必须进行针对测试
5)测试时应记录测试结果、运行时间和判断结果。如果软件失效,要记录失效时间和现象
-- 安全性测试:
* 包括系统安全评估和系统侵入测试
* 主要涉及标识与鉴别、访问控制、审计、特权管理、可信同路、隐通道等;系统脆弱性分析、系统安全漏洞检测等
1)必须进行安全分析,在软件需求说明中明确每一危险状态及导致危险的可能原因,在测试中劝勉检验软件在这些危险状态下的反应
2)对安全性关键的软件部件,必须单独测试
3)对用于提高软件安全性的结构、算法、容错、冗余、中断处理等方案必须进行针对性测试
4)测试应尽可能在符合实际使用的条件下进行
5)除在正常条件下测试外,应在异常下测试,表明不会因可能的单个或多个输入错误而导致不安全状态
-- 恢复性测试:
* 必须验证恢复和重置测试,对每一类导致恢复或重置的情况进行测试
-- 边界测试:
* 测试程序在输入域、数据结构、状态转换、过程参数、功能边界等边界或端点情况下的运行状态
-- 功能多余物测试:
* 验证没有附加需求中没有指明的功能及功能界面的不适当,所有输出都应有意义并在软件需求中指明
4.2 软件测试分级
* 目前大家常关注的测试分级:生命周期的测试分级、错误及其对软件测试通过影响的分级、完整性测试分级、软件测试用例的分级等
软件生命周期的测试分级:
-- 组件测试:针对软件单元的测试都可称为组件测试,软件单元可以是单元、模块、程序或功能。
* 测试任务:模块局部数据结构测试、模块参数边界值测试、模块中所有独立执行路径测试、模块的各条错误处理路径测试等
* 考虑因素:检查单元模块自己的接口相关的参数,是组件测试的基础;
检查局部数据结构,用来保证临时存储在模块内的数据在程序执行过程中的完整、正确;
在模块中对每一条独立路径测试,基本任务是保证模块中的没搞路径至少执行一次;
比较、判断、控制流常常紧急相关;
好的软件设计能预见各种出错条件,并预设各种出错处理路径;
-- 集成测试:组装测试、联合测试
* 测试内容:功能性、可靠性、易用性、效率、可维护性及可移植性
* 测试策略:非渐增式和渐增式集成测试,具体包括自底向上集成,自顶向下集成、核心系统先行集成、随意集成
-- 系统测试:已集成好的,作为计算机系统的一部分,结合计算机软硬件、数据和人员等元素,在实际运行环境下对系统进行一系列有效测试
* 目的:确认整个系统是否满足系统需求规格说明中的功能和非功能需求,及满足程度
* 常见系统测试:压力测试、容量测试、性能测试、安全测试、容错测试等
-- 验收测试:由使用系统的用户进行测试
* 目的:确保系统功能或非功能满足验收准则,发现缺陷不是验收的主要目标
* 主要测试类型:根据合同的验收测试、用户验收测试、运行(验收)测试、现场测试
-- 维护测试:软件被市场接受后,在运行一段时间后,在需要做某些 修正、改变或扩展 的情况下进行的维护测试
错误分级:
-- 错误分类
* 按软件生命周期:用户需求错误、产品需求错误、设计错误、编码错误、数据错误、发行错误
* 按软件使用分类:功能错误、性能错误、界面错误、流程错误、数据错误、常识错误及其他错误
* 按GB/T15532-2008:程序问题、文档问题、设计问题及其他问题
-- 错误级别
* 1级错误:妨碍主要功能;危机安全;系统崩溃
* 2级错误:对主要功能有不利影响,且没有变通的方法
* 3级错误:对主要功能有不利影响,但有变通的解决办法
* 4级错误:给操作员带来不便和麻烦,不影响功能使用
* 5级错误:其他错误
-- GB/T 15532-2008实例化:
* 1级:严重,表现:系统停机或非法退出,且无法通过重启恢复;系统死循环;数据库死锁或程序原因导致数据库断连;系统关键性能不达标;数据通信错误或接口不通;操作错误导致程序中断
* 2级:较严重,表现:重要交易无法正常使用、功能不符合用户需求;重要计算错误;业务流程错误或不完整;使用某交易导致业务数据紊乱或丢失;业务数据保存不完整或无法保存到数据库;周边接口出现故障;服务程序频繁需要重启
* 3级:一般,表现:部分交易使用存在问题,不影响业务继续开展,但造成使用障碍;初始化未满足客户要求或初始化错误;功能点能实现,但结果错误;数据长度不一致,无数据有效性检查或检查不合理,数据来源不正确;显示、打印内容或格式错误;删除操作不给提示;个别交易系统反应时间超出正常合理时间范围;日志记录信息不正确或应记录未记录
* 4级:较小,表现:界面错误;菜单布局错误或不合理;焦点控制不合理;光标、滚动条定位错误;提示窗口描述不准确或不清楚;日志信息不完整或不清晰
* 5级:其他,表现:缺少产品使用、帮助文档、系统安装或配置方面需要的信息;联机帮助与脱机手册与实际系统不匹配;系统版本说明不正确;显示格式不规范;界面不整齐