if (a>2 && b<3 && (c>4 || d<5)) {
statement; } else {
statement; }
解:语句覆盖:a=3,b=2,c=5,d=5 a=2,b=2,c=5,d=5
判定覆盖:同上
条件覆盖:a=3,b=2,c=5,d=5 a=2,b=4,c=3,d=4
判定/条件覆盖:同条件覆盖
条件组合覆盖:I a>2,b<3,c>4,d<5 II a>2,b<3,c>4,d>=5 III a>2,b<3,c<=4,d<5 IV a>2,b<3,c<=4,d>=5 V a>2,b>=3,c>4,d<5 VI a>2,b>=3, c>4,d>=5 VII a>2,b>=3, c<=4,d<5 VIII a>2,b>=3, c<=4,d>=5 IX a<=2,b<3,c>4,d<5 X a<=2, b<3,c>4,d>=5 XI a<=2, b<3,c<=4,d<5 XII a<=2, b<3,c<=4,d>=5 XIII a<=2, b>=3,c>4,d<5 XIV a<=2, b>=3, c>4,d>=5 XV a<=2, b>=3, c<=4,d<5 XVI a<=2, b>=3, c<=4,d>=5 测试数据略
5.针对test函数按照基本路径测试方法设计测试用例。 int Test(int i_count, int i_flag) {
int i_temp = 0; while (i_count>0) {
if (0 == i_flag) {
i_temp = i_count + 100; break; } else
15
{
if (1 == i_flag) {
i_temp = i_temp + 10; } else {
i_temp = i_temp + 20; } }
i_count--; }
return i_temp; }
解:int Test(int i_count, int i_flag)
{
1 int i_temp=0; 2 while (i_count>0) {
3 If (0==i_flag) {
4 i_temp=i_count+100; 5 break; } 6 else {
7 If (1==i_flag) {
8 i_temp=i_temp+10; } 9 else {
10 i_temp=i_temp+20; } }
11 i_count--; }
12 return i_temp; }
程序控制流图:
16
1 2 3 4,5 8 11 6,7 9,10 12
程序环路复杂度:CC=4
基本路径集:path1 1-2-3-6-7-8-11-2-12 Path2 1-2-12
Path3 1-2-3-4-5-12
Path4 1-2-3-6-7-9-10-11-2-12 设计测试用例: 用例ID i_count i_flag test1 1 1 test 2 0 2 test 3 2 0 test 4 1 3 预期输出 10 0 102 20 6.对如图4.15所示的N-S图,计算所需的最少测试用例数。
Y Y g p N Y m Y b a q N f N n N c Y h N 图4.15 练习题6
解:(2+2*2)*2=12
17
第5章 软件测试管理及自动化测试基础
1.简述软件测试自动化的意义。
解:软件测试自动化的意义是:(1)提高测试效率;(2)降低对软件新版本进行回归测试的开销;(3)完成手工测试不能或难以完成的测试;(4)具有一致性和可重复性;(5)更好地利用资源;(6)降低风险,增加软件信任度。 2.在运用软件自动化测试时,应注意哪些缺点和事项?
解:应注意:(1)软件自动化测试可能降低测试的效率;(2)测试首次运行时,可能发现大量错误,但当进行过多次测试后,发现错误的机率会相对较小,除非对软件进行了修改或在不同的环境下运行;(3)如果缺乏测试经验,测试的组织差、文档少或不一致,则自动化测试的效果比较差;(4)技术问题。作为第三方的技术产品,如果不具备解决问题的能力和技术支持或者产品适应环境变化的能力不强,将使得软件自动化工具的作用大大降低。 3.软件测试工具主要分为哪个大类?
解:根据测试方法不同,分为白盒测试工具和黑盒测试工具。
根据测试的对象和目的,分为单元测试工具、功能测试工具、负载测试工具、性能测试工具和测试管理工具等。
4.了解时下常用的自动化测试用具,并对这些工具进行针对性说明。 解:略。
5.简述软件测试管理过程。
解:首先由一位对整个系统设计熟悉的设计人员编写测试大纲,明确测试的内容和测试通过的准则,设计完整合理的测试用例,以便系统实现后进行全面测试。 然后在实现组将所开发的程序经验证后,提交测试组,由测试负责人组织测试,测试一般可按下列方式组织: (1)测试人员仔细阅读有关资料,包括规格说明、设计文档、使用说明书及在设计过程中形成的测试大纲、测试内容及测试的通过准则,全面熟悉系统,编写测试计划,设计测试用例,作好测试前的准备工作。(2)为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、确认测试和系统测试。 6.简述软件测试管理的主要功能。
解:软件测试管理的主要功能是:测试控制对象的编辑和管理;测试流程控制和管理;统计分析和决策支持
7.试选择一个小型的应用系统,做功能测试计划并设计测试用例。
18
解:略。
19