测试概述

PS.个人学习记录,内容来自(美)佩腾 《软件测试》一书

1 基本定义

1.1 错误(error),人类会犯错误。接近于过错(mistake),编写代码时会出现错误(bug)。错误可能扩散,如需求错误在设计师可能被放大。

1.2 缺陷(fault),错误的表现结果。分为过错缺陷(把某些信息输入到不正确的表示中)、遗漏缺陷(没有输入正确信息),后者更难检测和解决。

1.3 失效(failure),缺陷执行时会发生失效。只出现在可执行的表现中,通常是源代码(被装载的目标代码);只与过错缺陷有关。出现失效时,可能会也可能不会呈现给用户。

1.4 事故(incident),说明出现了与失效类似的情况,警告用户注意所出现的失效。

1.5 测试(testing),采用测试用例执行软件的活动。主要为了处理错误、缺陷、失效和事故。两个显著目标:找出实效、演示正确的执行。

1.6 测试用例(test case),测试用例有一个标识,并与程序行为有关,还包括一组输入和一个预期输出表。

image

图1  一个测试生命周期

其中,测试用例在测试中占据中心地位。测试过程可以再细分为独立的步骤:测试计划、测试用例开发、运行测试用例及评估测试结果。

2 测试用例

输入:前提(在测试用例执行之前已经存在的环境)和有某种测试方法所标识的实际输入;

输出:后果和实际输出。输出部分的测试叫做“参考测试”(Reference Testing,工业界),及系统在专家用户的指导下进行测试,然后判断被执行的一组测试用例的输出是否为可接受的。

典型的测试用例信息:测试用例ID、目的、前提、输入、预期输出、后果、执行历史、日期、结果、版本、执行人。

3 通过维恩图理解测试

测试基本上关心的是行为,而开发关心的是结构。

image

图2 描述的行为与实现的程序行为

如果特定的描述行为没有被编程实现,则出现遗漏缺陷;若果特定的程序行为没有被描述,则出现过错缺陷。集合S与集合P相交的的部分为“(相对)正确”部分。

image

图3 已描述、以实现和经过测试的行为

 

4. 标识测试用例

4.1 功能性测试(黑盒)

功能性测试的基本观点:任何程序都可以看做是将从输入定义域取值映射到输出值域的函数。将系统看作是黑盒,黑盒的内容不可知,而用输入和输出表示的黑盒函数则被完全了解。面向对象的核心。

采用功能性方法标识测试用例,所使用的唯一信息就是软件的规格说明。

优点:(1)功能性测试与软件的实现五官,所以如果实现发生变化,测试用例仍然有用;(2)测试用例开发可以与实现并行进行,故可以压缩总的项目开发时间。

缺点:测试用例之间可能存在严重的冗余,可能会存在未测试的软件漏洞。

image

图4 功能性测试用例表示方法比较

注意:测试用例集合完全局限于已描述行为集合内。

功能性测试的主流方法:边界值分析、健壮性分析、最坏情况分析、特殊值测试、输入(定义域)等价类、输出(值域)等价类和基于决策树的测试

4.2 结构性测试(白盒)

结构性测试,也叫作白盒测试,可“看到黑盒内部”的能力,使测试人员能够根据功能实现的方式来标识测试用例。

结构测试用例集合完全局限于已编程实现的行为集合中,故无法实现没有编程实现的行为。

4.3 功能性测试与结构性测试的比较

 功能性测试结构性测试
测试用例标识规格说明程序源代码
程序行为已描述的行为已实现的行为

功能性测试常常有冗余和漏洞,如果结合结构性测试覆盖率指标执行,则可发现并解决这两个问题。

5.错误与缺陷分类

SQA注重减少开发过程中的错误;测试更注重产品中的缺陷。

根据缺陷的后果严重程度分类:

1.轻微词语拼写错误
2.中等误导或重复信息
3.使人不悦被截断的名称,如0.00美元账单
4.影响使用有些交易没有处理
5.严重丢失交易
6.非常严重不正确的交易处理
7.极为严重经常出现“非常严重”错误
8.无法忍受数据库破坏
9.灾难性系统停机
10.容易传染扩展到其他系统的系统停机

“软件异常IEEE表中分类”(1993)定义了围绕4个阶段构建详细的异常解决过程:识别、调查、行为、处置。

一些有用的异常:输入/输出缺陷、逻辑缺陷、计算缺陷、接口缺陷、数据缺陷。

(1)输入缺陷:不接受正确的输入、接受不正确的输入、描述有错或遗漏、参数有错或遗漏;输出缺陷:格式有错、结果有错、在错误的时间产生正确的结果(太早、太迟)、不一致或遗漏结果、不合逻辑的结果、拼写/语法错误、修饰词错误。

(2)逻辑缺陷:遗漏情况、重复情况、极端条件出错、解释有错、遗漏条件、外部条件有错、错误变量的测试、不正确的循环迭代、错误的操作符(如<用作≤)。

(3)计算缺陷:不正确的算法、遗漏计算、不正确的操作数、不正确的操作、括弧错误、精度不够(四舍五入、截断)、错误的内置函数。

(4)接口缺陷:不正确的中断处理、I/O时序有错、调用了错误的过程、调用了不存在的过程、参数不匹配(类型、个数)、不兼容的类型、过量的包含。

(5)数据缺陷:不正确的初始化、不正确的储存/访问、错误的标值/索引值、不争取的打包/拆包、使用了错误的变量、错误的数据引用、缩放数据范围或单位错误、不正确的数据维数、不正确的下标、不正确的类型、不正确的数据范围、出现?断开、不一致的数据。

6. 测试级别

测试级别反映软件开发生命周期瀑布模型中的抽象类别。还应在开始、最后添加需求测试和UAT测试。

asd

图5 V模型测试级别

转载于:https://www.cnblogs.com/sub-non-fish/p/5614874.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值