软件测试技术复习题(含答案) 下载本文

静态测试:是一种不通过执行程序而进行测试的技术,只是检测和评审。动态测试:直接执行被测试程序以提供测试支持。 22. 简述单元测试的过程.

(1)准备阶段;(2)编制阶段(3)代码审查阶段;(4)单元测试阶段;(5)评审、提交阶段。 23. 什么是插桩程序设计?

是在保证被测程序原有逻辑完整性的基础上在程序中插于一些探针,通过探针的执行抛出程序运行的特征数据,通过这些数据的分析,可以获得程序的控制流和数据信息,进而得到逻辑覆盖等动态信息,从而实现测试目标的方法。

24. 简述系统测试的主要内容?

(1)功能测试。即测试软件系统的功能是否正确,其依据是需求文档,如《产品需求规格说明书》。(2)健壮性测试。即测试软件系统在异常情况下能否正常运行的能力。健壮性有两层含义:一是容错能力,二是恢复能力

25. 容量测试与压力测试的区别有哪些?

(1)压力测试是在给系统不断加压,增加并发量,直到崩溃,找到系统所能承受的极限值。(2)容量测试是在预先分析的极限值下,系统能否正常运行。

26. 如何组织软件测试团队

(1)建立合理、高效的组织结构(2)建立正确的分工体系,即角色与职责;(3)培养合格的测试人员。 27. 什么是软件测试计划?

是指导测试过程的纲领性文件,包含产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流和风险分析等内容。 28. 制定软件测试的计划的原则有?

(1)制定测试计划应尽早开始;(2)保持测试计划的灵活性;(3)保持测试计划简洁和易读;(4)尽量争取多渠道评审测试计划;(5)计算测试计划的投入。

29. 单元测试的原则有哪些?

(1)单元测试越早进行越好;(2)单元测试应该根据《软件详细设计规格说明》进行;(3)对于修改过的代码应该重做单元测试,以保证对已发现错误的修改没有引入新的错误;(4)当测试用例的测试结果与设计规

第 21 页 共 37 页

格说明书的预期结果不一致时,测试人员应该如实记录实际的测试结果;(5)单元测试应注意选择好被测试软件单元的大小;(6)一个完整的单元测试说明应该包含软件证明测试和负面测试;(7)注意使用单元测试工具。 30. 单元测试的重要性及目的是什么?

重要性:1、提前发现问题并解决可以节约时间2、是测试阶段的基础,为后期的集成测试和系统测试做好准备;3、对单元独立测试,容易发现问题,减少成本。

目的:是暴漏出失败和错误。失败的可能性是可预期的,并且可以使用断言来进行检查。而错误则是不可预期的问题 31. α测试和β测试有什么不同?

a 测试是在公司内部由用户组织与的测试;a 测试对发现缺陷是可控的,但缺陷是人数有限、地域限制。

b测试是在外部有用户进行的测试;b测试不会认真地去发现缺陷,有时仅仅是为了抢占市场。

四、综合应用题

1. 白盒测试方法的综合应用

(1) 简述白盒测试用例的设计方法。

解:白盒测试用例设计方法主要有逻辑覆盖和独立路径测试。

从覆盖源程序语句的详尽程度分析,逻辑覆盖主要有以下不同的覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。实际项目中,由于程序内部的逻辑存在不确定性和无穷性,尤其对于大规模复杂软件,不必采用所有的覆盖指标,而应根据实际情况选择合适的覆盖指标。

独立路径测试是在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出可执行的独立路径集合,从而设计出相应的测试用例。设计出的测试用例要保证被测程序的每条可执行的独立路径至少被执行一次。独立路径测试给出了满足路径覆盖指标所需测试用例的下限,同时给出了语句覆盖的上限,它可以确保对所有相互独立的决策结果进行测试。 (2) 分析归纳逻辑覆盖的各种策略,并比较每种覆盖的特点,分析在怎

样的情况下采用何种覆盖方式。

解:语句覆盖是选择足够多的测试数据,使被测程序中每个语句至少执行一次。语句覆盖是最弱的逻辑覆盖标准。

判定覆盖又叫分支覆盖,它不仅每个语句必须至少执行一次,而且每个判定表达式的每种可能的结果都应该至少执行一次。判定条件覆盖比语句覆盖强,但是对程序逻辑的覆盖程度仍然不高。

第 22 页 共 37 页

条件覆盖的含义是,使判定表达式中的每个条件都取到各种可能的结果。条件覆盖通常比判定覆盖强,但是也可能有相反的情况:虽然每个条件都取到了两个不同的结果,判定表达式却始终只取一个值。

判定/条件覆盖的含义是,选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。但有时判定/条件覆盖也并不比条件覆盖更强。

条件组合覆盖是更强的逻辑覆盖标准,它要求选取足够的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。满足条件组合覆盖标准的测试数据,也一定满足判定覆盖、条件覆盖和判定/条件覆盖标准。因此,条件组合覆盖是前述几种覆盖标准中最强的。但是,满足条件组合覆盖标准的测试数据并不一定能使程序中的每一条路径都执行到。

路径覆盖的定义是选取足够多测试数据,使程序的每一条可能路径都至少执行一次。但在实际问题中,一个不太复杂的程序,其路径数都可能是一个庞大的数字,以致要在测试中覆盖所有的路径是不可能实现的。即使对于路径数有限的程序做到了路径覆盖,也不能保证被测程序的正确性。 (3)请按照各种覆盖方法为下述语句设计测试用例,并写出测试过程 if((a>1) and (b=0)) then x=x/a

if((a=2) or (x>1) then x=x+1

语句覆盖:CASE 1:a=2,b=0,x=3。则程序按路径ace执行,这样该程序段

第 23 页 共 37 页

的4个语句均得到执行,从而达到了语句覆盖。

断定覆盖:CASE2:a=2,b=0,x=3。CASE3:a=1,b=0,x=1。则可分别执行路径ace和abd。从而使两个判断的4个分支c、e和b、d分别得到覆盖。 条件覆盖:在上述程序段中,第一个判断应考虑到: a>1取真值,记为Ta1;

a>1取价值,即a<=1时,记为Ta2; b=0取真值,记为Tb1;

b=0取假值,即b!=0时,记为Tb2; 第二个判断应考虑到: a=2取真值,记为Ta3;

a=2取假值,即a!=2,记为Ta4; x>1取真值,记为Tx1;

x>1取假值,即x<=1,记为Tx2;

条件覆盖测试用例 测试用例 CASE4 CASE5 a 2 1 b 0 1 x 3 1 路径 ace abd 覆盖条件 Ta1,Tb1,Ta3,Tx1 Ta2,Tb2,Ta4,Tx2 以上两个测试用例把4个条件的8种情况均做了覆盖。

判断-条件覆盖:语句中两个判断各包含两个条件,这四个条件在两个判断中可能有八种组合:

1号、a>1,b=0记为Ta,Tb; 2号、a>1,b!=0记为Ta,Fb; 3号、a<=1,b=0记为Fa,Tb; 4号、a<=1,b!=0 记为Fa,Fb; 5号、a=2,x>1记为Ya,Yx; 6号、a=2,x<=1记为Ya,Nx; 7号、a!=2,x>1记为Na,Yx; 8号、a!=2,x<=1记为Na,Nx;

判定-条件覆盖 测试用例 a CASE6 CASE7 CASE8 CASE9 2 2 1 1 b 0 1 0 1 x 3 1 3 1 覆盖组合号 路径 1号,5号 2号,6号 3号,7号 4号,8号 ace abe abe abd 覆盖条件 Ta,Tb,Ya,Yx Ta,Fb,Ya,Nx Fa,Tb,Na,Yx Fa,Fb,Na,Nx 路径覆盖:根据题目语句有4条可能路径 ace记为L1; abd记为L2;

第 24 页 共 37 页