软件测试技术培训教材

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试技术

软件测试的目的

软件测试是以发现软件的缺陷为目的,使软件运行,将软件不运行所产生的危险性降低到允许的范围,是一个为发现错误而执行程序的过程。

软件的缺陷是对软件产品预期属性的偏离现象。包括对产品规格说明书(在我们部门多看到和听到的字眼是仕样书)的偏离;对客户/用户的期望的偏离,客户/用户的要求没有纳入软件产品中(可能是仕样书说明时的遗漏,也可能是软件实现的问题)。

定义软件缺陷的规则有以下5个:

1. 软件未达到仕样书标明的功能

2. 软件出现了仕样书指明不会出现的错误

3. 软件功能超出了仕样书指明的范围

4. 软件未达到仕样书虽未指出但应达到的目标

5. 软件测试人员认为软件难以理解、不易使用、运行速度缓

慢,或者最终用户认为不好

软件测试人员的要求

软件测试人员应具备的素质:

探索精神。软件测试人员不会害怕进入陌生环境,他们喜欢拿

到新软件,安装在自己机器上,观看结果。

故障排除能手。软件测试人员善于发现问题的症结,他们喜欢

猜谜。

不懈努力。软件测试人员总是不停尝试,他们可能会碰到转瞬

即逝或者难以重现的软件缺陷,他们不会心存侥幸,而是尽一

切可能去寻找。

创造性。测试显而易见的事实,那不是软件测试人员的工作,

他们的工作是想出富有创意甚至超常的手段来寻找软件缺陷。

追求完美。他们力求完美,但是知道某些无法企及时,不去苛

求,而是尽力接近目标。

判断准确。软件测试人员要决定测试内容、测试时间,以及看

到的问题是否算作真正的缺陷

老练稳重。软件测试人员不害怕坏消息。他们必须告诉程序

员,你的孩子(程序)很丑。优秀的测试人员知道怎样老练地

处理这些问题,和不够冷静的程序员怎样合作。

说服力。软件测试人员找出的软件缺陷有时被认为不重要,不

用修复。测试人员要善于表达观点,表明软件缺陷为何必须修

复,并通过实际演示力陈观点。

软件测试人员的一个基本素质是打破砂锅问到底。他们喜欢找出那些深藏不露的系统冲突。他们乐于处理最复杂的问题。他们热衷于来回奔忙,追求尽善尽美,为征服系统而额手称庆。这就是麻烦堆里地快乐。软件测试的一些概念

单体测试,集成测试,系统测试,回归测试,验收测试,差分测试和安装测试。

单体测试,是指对单个模块或者是一个函数等更小单位的测试,有时也被称为单元测试和模块测试。

集成测试,是指都多个模块组合起来,或者一个子系统的所有模块都结合起来后进行的测试,有时也被成为结合测试。

系统测试,是指整个系统的所有子系统都结合起来,即当前系统提交了所有功能以后进行的测试,也有的时候被成为功能测试。

回归测试,是指修复或调整好软件环境之后进行测试,即BUG修改后的确认测试。

验收测试,是指系统全部完成后,由客户确认系统或程序是否达到用户的需求的测试。

差分测试,是指当测试时间较短时(不足以进行一遍系统测试时),而只对整个系统中新变更或者新追加功能的相关部分的测试。

安装测试,确认用户系统的可安装性和可操作性。(安装测试,一般用于需要制作安装程序的项目)。

手动测试和自动化测试

手动测试,是指测试人员,根据仕样书、编写的测试大纲或者其他测试

文档,直接运行程序而完成的测试。

自动化测试,是指测试人员,使用自动测试工具、或者编写测试脚本,让程序自动运行而进行的测试。

白盒测试和黑盒测试

白盒测试,是一种按照程序内部的逻辑结构和编码结构设计并执行测试用例的测试方法。

黑盒测试,是一种从软件需求出发,根据软件需求规格说明设计测试用例,并按照测试用例的的要求运行被测程序的测试方法。CodingReview

是指对原代码的检查。主要依靠有经验的程序设计人员根据软件设计文档,通过阅读程序来发现软件错误和缺陷。

软件测试阶段与测试方法

下图说明了整个软件产品周期,测试活动所处的位置和介入的阶段。单体测试阶段

单体测试阶段有两个活动单体测试设计和单体测试。单体测试设计,以详细设计的第一个设计完成为切入点,根据详细设计进行单体测试设计,直到单体测试开始前完成。单体测试是以第一段可以测试的函数或者代码完成为切入点,根据单体测试设计的设计文档进行测试。单体测试,主要有3种方法:白盒测试、黑盒测试和Coding Review。

白盒测试

白盒测试是一种按照程序内部的逻辑结构和编码结构设计并执行测试用例的测试方法。主要包括命令覆盖度,即对程序中的条件句的所有命令至少被执行一次的选择测试方案的方法;分支覆盖度,即选择的TESTCASE应是在判断命令中的所有可能结果至少执行一次;路径覆盖度,即覆盖了从程序的入口到出口的全路径的方法。

以下将通过举例介绍几种单体测试中制作测试用例和选择测试数据的方法。

根据上面这段流程图(A,B,X都为整数),我们可以找到有一个输入、两个条件判断语句、两个命令执行语句。注意要使用尽可能少的测试数据白盒测试所需要的测试用例进行覆盖(这个例子比较简单,实际测试中可能会碰到的程序要比这个复杂的得多)

1. 命令执行语句覆盖:程序中每一可执行语句至少执行一次。

选择 (A,B,X) = (2,0,3) 即通过a->c->e路径对两个命令执行语句进行执行测试

2. 分支覆盖:程序中每个判定的True分支和False分支至少执行一

次。

使用(A,B,X) = (2,0,3) 和 (A,B,X) = (1,0,1)分别覆盖分支a->c->e和a->b->d,完成对分支a、b、c、d和e的覆盖

或者使用(A,B,X) = (3,0,3) 和 (A,B,X) = (2,1,1)分别覆盖分支a->c->d和a->b->e,完成对分支a、b、c、d和e的覆盖

3. 条件覆盖:使程序的每个条件语句的True和False取值至少满足

一次

条件1 (1=A)

条件2 (0==B)T2(0==B) F2(0!=B)

条件3 (2==A) T3(2==A) F3(2!=A)

条件4 (1=X)

使用(A,B,X) = (2,0,3),覆盖条件(T1、T2、T3和T4)

使用(A,B,X) = (1,0,1),覆盖条件(F1、T2、F3和F4)

使用(A,B,X) = (2,1,1),覆盖条件(T1、F2、T3和F4)

对T1~T4和F1~F4进行覆盖

或者

使用(A,B,X) = (1,0,2),覆盖条件(F1、T2、F3和T4)

使用(A,B,X) = (2,1,1),覆盖条件(T1、F2、T3和F4)

对T1~T4和F1~F4进行覆盖

4. 路径覆盖,设计足够的测试用例,要求覆盖程序中所有的路径。

根据这段程序我们很容易能够分析到,该程序有4个路径:

Route1: a->c->e 选择测试用例(2,0,3)

Route2:a->b->d 选择测试用例(1,0,1)

Route3:a->b->e 选择测试用例(2,1,1)

Route4:a->c->d 选择测试用例(3,0,3)

这样我们根据以上4个方面的分析,可以选择出 (2,0,3)、(1,0,1)、

相关文档
最新文档