软件测试

 

一、软件缺陷:

定义:存在于软件(文档、数据、程序)中那些不希望、或不可接受的偏差,而导致软件产生的质量问题。

具体表现为:

(1)未实现产品说明书要求的功能;
(2)出现了产品说明书指明不能出现的错误;
(3)实现了未提到的功能;
(4)未实现说明书未提及但应该实现的目标;
(5)软件难以理解、不易使用、运行缓慢。

如何描述软件缺陷:

     标题:输入不能识别错误
     级别:严重
     描述:输入“长沙汽车南站”站名时提示错误,错误提示如图
     模块:站站查询模块
     ...

报告软件缺陷的基本原则:

    尽早原则:初期的错误vs.后期错误
    有效原则:简短、单一、术语、明确
    中立原则:缺陷不可避免、允许缺陷产生
    重现原则:确保错误能重现。

缺陷管理工具鉴赏-Bugzilla

    实例演示https://bugzilla.mozilla.org/

二、测试阶段划分

单元测试(Unit Testing):对每一个函数进行测试

集成测试(Integration Testing):对函数与函数的集成、模块与模块的集成进行测试

系统测试(System Testing):对每一个功能需求、性能需求进行测试

软件测试_第1张图片

软件测试_第2张图片

详解:

(一)单元测试:

单元测试是针对软件基本组成单元(软件设计的最小单位)来进行正确性检验的测试工作

单元测试的目的是检测软件模块对《详细设计说明书》的符合程度

(二)集成测试:

集成测试是在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统,验证组装后功能以及模块间接口是否正确的测试工作

集成测试的目的是检测软件模块对《概要设计说明书》的符合程度

(三)系统测试:

系统测试是将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的测试工作

系统测试的目的在于通过与《需求规格说明书》作比较,发现软件与系统需求定义不符合或与之矛盾的地方

 

三者区别:

(1) 测试方法不同
  单元测试属于白盒测试范畴
  集成测试属于灰盒测试范畴
  系统测试属于黑盒测试范畴
  (2)考察范围不同
  单元测试主要测试单元内部的数据结构、逻辑控制、异常处理等
  集成测试主要测试模块之间的接口和接口数据传递关系,以及模块
  组合后的整体功能
  系统测试主要测试整个系统相对于需求的符合度
 (3) 评估基准不同
  单元测试的评估基准主要是逻辑覆盖率
  集成测试的评估基准主要是接口覆盖率
  系统测试的评估基准主要是测试用例对需求规格的覆盖率

 

(四)回归测试

软件测试_第3张图片

软件在测试或其他活动中发现的缺陷经过修改后,应该进行回归测试(Regression Testing)。目的是验证缺陷得到了正确的修复,同时对系统的变更没有影响以前的功能
回归测试可以发生在任何一个阶段,包括单元测试、集成测试和系统测试

回归策略:

(1)完全重复测试:
重新执行所有在前期测试阶段建立的测试用例,来确认问题修改的正确性和修改的扩散局部影响性

 (2)选择性重复测试:
即有选择地重新执行部分在前期测试阶段建立的测试用例,来测试被修改的程序

 (3)覆盖修改法
即针对被修改的部分,选取或重新构造测试用例验证没有错误再次发生的用例选择方法。
 (4)周边影响法:
该方法不但要包含覆盖修改法确定的用例,还需要分析修改的扩散影响,对那些受到修改间接影响的部分选择测试用例验证它没有受到不良影响。该方法比覆盖修改法更充分一点。
 (5)指标达成方法:
这是一种类似于单元测试的方法,在重新执行测试前,先确定一个要达成的指标,如修改部分代码100%的覆盖、与修改有关的接口60%的覆盖等,基于这种要求选择一个最小的测试用例集合。

 

(五)验收测试

在通过了内部系统测试及软件配置审查之后,就可以开始验收测试
验收测试是以用户为主的测试,验收组应该由项目组成员、用户代表等组成
验收测试原则上在用户所在地进行,但如经用户同意也可以在公司内模拟用户环境进行
验收测试根据合同、《需求规格说明书》或《验收测试计划》对成品进行验收测试
验收测试的结果有两种情况:
 软件功能、性能等质量特性与用户的要求一致,软件可以接受
 软件功能、性能等质量特性与用户的要求有差距,不被用户接受

 

其他知识:

Halstead复杂度实例

n1 =不同运算符的个数;
n2 =不同操作数的个数;
N1 =实际运算符的个数;
N2 =实际操作数的个数

 

 

静态分析工具-FindBugs

 

你可能感兴趣的:(软件测试,软件测试)