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级:其他,表现:缺少产品使用、帮助文档、系统安装或配置方面需要的信息;联机帮助与脱机手册与实际系统不匹配;系统版本说明不正确;显示格式不规范;界面不整齐