软件测试课后习题

软件测试课后习题
软件测试课后习题

百度文库- 让每个人平等地提升自我

目录

第1章软件测试概述 (1)

第2章软件测试方法与过程 (4)

第3章黑盒测试 (7)

第4章白盒测试方法 (13)

第5章软件测试管理及自动化测试基础 (18)

第6章WINRUNNER测试工具 (20)

第7章LOADRUNNER测试工具 (22)

第8章JUNIT (24)

第1章软件测试概述

1.简述软件测试的意义。

解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。而由于软件本身的特性,软件中的错误是不开避免的。不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。因此为了保证软件质量,必须对软件进行测试。软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。

2.什么是软件缺陷?它的表现形式有哪些?

解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。

它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。

3.简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又

最低?

解:软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。其中在需求分析阶段引入的缺陷最多,修复的成本又最低。

4.当用户登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于

是按了浏览器左上角的“退回”按钮,就又回到了退出前的网页,你认为该购物软件有缺陷吗?如果有,属于哪一类?

解:有缺陷。其所属类别与软件产品说明书的要求有关。

5.什么是软件测试?简述其目的与原则。

解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。

测试目的:(1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。(2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。(3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并

且提前确认解决这些问题和风险的途径。

测试过程中应注意和遵循的原则:(1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。(2)测试应当有重点。(3)事先定义好产品的质量标准。(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。(5)穷举测试是不可能的。(6)第三方进行测试会更客观,更有效。(7)软件测试计划是做好软件测试工作的前提。(8)测试用例是设计出来的,不是写出来的。(9)对发现错误较多的程序段,应进行更深入的测试。(10)重视文档,妥善保存一切测试过程文档。

6.件测试阶段是如何划分的?

解:软件测试的阶段划分为:规格说明书审查;系统和程序设计审查;单元测试;集成测试;确认测试;系统测试;验收测试。

7.简述软件开发的几个模式,并说明每种模式对软件测试的影响。

解:大棒模式简单,计划、进度安排和正规开发过程几乎没有,其开发过程是非工程化的。大棒模式的软件测试通常在开发任务完成后进行,很难回头修复存在的问题,测试工作只是向客户报告软件经过测试后发现的情况。

边写边改模式通常最初只有粗略的想法就进行简单的设计,然后开始较长的反复编写、测试和修复过程,在认为无法更精细地描述软件产品要求时就发布产品。该模式下,软件测试人员将和程序员一起陷入可能是长期的循环往复过程。

瀑布模式将软件生命周期的各项活动规定为按照固定顺序相连的若干个阶段性工作,形如瀑布流水,最终得到软件产品。软件测试在后期展开,使得开发中出现的问题直到开发后期才显露,失去了及早纠正的机会。

快速原型模式首先构造一个功能简单的原型系统,然后通过对原型系统逐步求精,不断扩充完善得到最终的软件系统。原型系统在扩充完善过程中不断被检查、测试和修改。

螺旋模式是瀑布模式与边写边改模式演化结合的形式,并加入了风险评估所建立的软件开发模式,其主要思想是在开始时不必详细定义所有细节,而是从小开始,定义重要功能,尽量实现,接受客户反馈,进入下一阶段并重复上述过程,直到获得最终产品。测试在每个阶段都要进行,并从最初就参与。

8.简述软件测试过程。

解:软件测试过程主要包括如下6个活动:测试计划;测试需求分析;测试设计;测试规程实现;测试执行;总结生成报告。

9.“软件测试能够保证软件的质量”这句话对吗?软件测试和软件质量之间是

什么关系?

解:不对。软件测试是保障软件质量的手段之一,但不是唯一手段。测试是产品高质量的必要非充分条件,软件测试不能决定软件质量。

10.判断以下说法是否正确。

(1)软件测试和软件调试是同一回事。

(2)软件测试是可以无穷尽的。

(3)测试是为了证明软件的正确性。

(4)测试过程中应重视测试的执行,可以轻视测试的设计。

(5)测试不能修复所有的软件故障。

(6)因为测试工作简单,对软件产品影响不大,所以可以把测试作为新员工的一个过渡工作,或安排不合格的开发人员做测试。

解:(1)(2)(3)(4)(6)错误,(5)正确。

11.简述软件开发进程与测试进程的关系。

解:软件测试是一个贯穿软件开发生命周期的活动,它可以是一个与开发并行的过程,也可以是在开发完成某个阶段任务之后的活动。

第2章软件测试方法与过程

1.对软件测试的复杂性进行归纳分析。

解:软件测试的复杂性在于:无法对程序进行完全的测试;测试无法保证被测程序中无遗留错误;不能修复所有的软件故障。

2.分别解释什么是静态测试、动态测试、黑盒测试、白盒测试、人工测试和自动化测试。

解:所谓静态测试是指不运行被测软件,仅通过分析或检查等其他手段达到检测的目的。

所谓动态测试是指通过运行被测软件,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能。

黑盒测试是指在对程序进行的功能抽象的基础上,将程序划分成功能单元,然后对每个功能单元生成测试数据进行测试。用这种方法进行测试时,被测程序被当作打不开的黑盒,因而无法了解其内部构造,因此又称为功能测试。

白盒测试又称为结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。

广义上,人工测试是人为测试和手工测试的统称。人为测试的主要方法有桌前检查,代码审查和走查。手工测试指的是在测试过程中,按测试计划一步一步执行程序,得出测试结果并进行分析的测试行为。

自动化测试指的是利用测试工具来执行测试,并进行测试结果分析的测试行为。

3.如果没有软件规格说明或需求文档,可以进行动态黑盒测试吗?为什么?解:不行。因为黑盒测试是基于软件规格说明的测试。

4.在单元测试中,所谓单元是如何划分的?

解:单元测试的对象通常是软件设计的最小逻辑单元,单元的划分在面向过程的结构化程序中一般是函数或子过程,在面向对象的程序中可以是类或类的成员函数。

5.简述单元测试的主要任务。

解:单元测试的主要任务是:模块接口测试;局部数据结构测试;路径测试;错误处理测试;边界测试。

6.如果开发时间紧迫,是否可以跳过单元测试而直接进行集成测试?为什么?

解:不可以。因为没有经过单元测试的模块会遗留大量的缺陷到集成测试阶段,而在集成测试阶段对这些缺陷定位困难,导致后续工作展开困难,修复缺陷成本成指数级增长。

7.什么是驱动模块和桩模块?为下面的函数构造一个驱动模块。

int divide(int a, int b)

{

int c;

if (b==0) {printf("除数不能为0"); return 0;}

c=a/b;

return c;

}

解:驱动模块是用以模拟被测模块的上级模块,它接收测试数据,传送数据给被测模块,启动被测模块,最后输出实测结果。

桩模块用以模拟被测模块工作过程中所调用的子模块。

函数驱动模块:

void main( )

{

int x,y,z;

scanf(“%d%d”,&x,&y);

z=divide(x,y);

printf(“%d”,z);

}

8.什么是回归测试?什么时候进行回归测试?

解:回归测试就是重新运行现有测试用例测试原有功能,以便确定变更是否达到了预期的目的,检查变更是否损害了原有的正常功能。每当软件发生变化时就应进行回归测试。

9.集成测试有哪些不同的集成方法?简述不同方法的特点。

解:集成测试通常有一次性集成、自顶向下集成、自底向上集成和混合集成4

种集成方法。

一次性集成方法需要的测试用例数目少,测试方法简单、易行。但是由于不可避免存在模块间接口、全局数据结构等方面的问题,所以一次运行成功的可能性不大;如果一次集成的模块数量多,集成测试后可能会出现大量的错误,给程序的错误定位与修改带来很大的麻烦;即使集成测试通过,也会遗漏很多错误进入系统测试。

自顶向下集成在测试的过程中,可以较早地验证主要的控制和判断点;一般不需要驱动程序,减少了测试驱动程序开发和维护的费用;可以和开发设计工作一起并行执行集成测试,能够灵活的适应目标环境;容易进行故障隔离和错误定位。但是在测试时需要为每个模块的下层模块提供桩模块,桩模块的开发和维护费用大;桩模块不能反映真实情况,重要数据不能及时回送到上层模块,导致测

试不充分;涉及复杂算法和真正I/O的底层模块最易出问题,在后期才遇到导致过多的回归测试。

自底向上集成可以尽早的验证底层模块的行为;提高了测试效率;一般不需要桩模块;容易对错误进行定位。但是直到最后一个模块加进去之后才能看到整个系统的框架;驱动模块的设计工作量大;不能及时发现高层模块设计上的错误。

混合集成具有自顶向下和自底向上两种集成策略的优点,但是在被集成之前,中间层不能尽早得到充分的测试。

10.系统测试主要包括哪些内容?

解:系统测试主要包括强度测试、性能测试、恢复测试、安全测试、可靠性测试、安装测试、容量测试和文档测试。

11.验收测试是由谁完成的?通常包含哪些过程?

解:验收测试是以用户为主的测试,软件开发人员和QA(质量保证)人员也应参加。通常包含α测试和β测试过程。

12.分析比较面向对象的软件测试与传统的软件测试的异同。

解:传统的单元测试的对象是软件设计的最小单位——模块。当考虑面向对象软件时,单元的概念发生了变化,此时最小的可测试单位是封装的类或对象,而不再是个体的模块。传统单元测试主要关注模块的算法实现和模块接口间数据的传递,而面向对象的单元测试主要考察封装在一个类中的方法和类的状态行为。

面向对象软件没有层次的控制结构,因此传统的自顶向下和自底向上集成策略就不再适合,它主要有以下两种集成策略:基于类间协作关系的横向测试;基于类间继承关系的纵向测试。

系统测试一般不考虑内部结构和中间结果,因此面向对象软件系统测试与传统的系统测试差别不大。

面向对象软件测试的整体目标和传统软件测试的目标是一致的,即以最小的工作量发现尽可能多的错误,但是面向对象测试的策略和战术有很大不同。测试的视角扩大到包括复审分析和设计模型,此外,测试的焦点从过程构件(模块)移向了类。

第3章黑盒测试

1.分析黑盒测试方法的特点。

解:黑盒测试又称为功能测试或数据驱动测试,主要针对软件界面、软件功能、外部数据库访问以及软件初始化等方面进行测试。

优点:1)比较简单,不需要了解程序内部的代码及实现;2)与软件的内部实现无关;3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;5)在做软件自动化测试时较为方便。

缺点:1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;2)自动化测试的复用性较低。

2.健壮等价类测试与标准等价类测试的主要区别是什么?

解:主要区别在于健壮等价类测试在标准等价类的基础上还要进行有效取值范围之外的输入(无效输入)的测试。

3.试用等价分类法测试党政管理系统中党员出生年月的输入设计是否符合要求,假设出生年月格式为yyyymmdd。

解:

输入数据无效等价类有效等价类

出生年月日①8位数字字符②有非数字字符

③少于8个数字符

④多于8个数字符

对应数值⑤在0101之间⑥<

⑦>

月份对应数值⑧在1-12之间⑨等于"00 "

⑩>12

日期对应值○111,3,5,7,8,10,12月在1-31之

○124,6,9,11月在1-30之间

○13闰年2月在1-29之间

○14非闰年2月在1-28之间○15等于"00 "

○16>31

○172,4,6,9,11月等于"31 " ○182月等于"30 "

○19非闰年2月等于"29"

4.找零钱最佳组合:假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内(P),求找给顾客之最少货币个(张)数?(货币面值50元(N50),10元(N10),5元(N5),1元(N1)四种。试根据边界值法设计测试用例。

解:1)分析输入的边界情况:

R > 100 0 < R < = 100 R <= 0

P > 100 R<= P <= 100 P < R

2)分析零钱最佳组合的输出情况:

N50 = 1 N50 = 0

4>N10>= 1 N10 = 0

N5 = 1 N5 = 0

4>N1>= 1 N1 = 0

3)分析规格中每一决策点之情形,以RR1,RR2,RR3表示计算要找50,10,5元货币数时的剩余金额。

R > 100 R <= 0

P > 100 P < R

RR1 >= 50 RR2 >= 10 RR3 >= 5

4)根据上述的输入/输出条件组合出可能的情况:

R > 100

R <= 0

0 < R <= 100, P > 100

0 < R <= 100, P < R

0 < R <= 100, R <= P <= 100, RR = 50

0 < R <= 100, R <= P <= 100, RR = 49

0 < R <= 100, R <= P <= 100, RR = 10

0 < R <= 100, R <= P <= 100, RR = 9

0 < R <= 100, R <= P <= 100, RR = 5

0 < R <= 100, R <= P <= 100, RR = 4

0 < R <= 100, R <= P <= 100, RR = 1

0 < R <= 100, R <= P <= 100, RR = 0

5)为满足以上各种情形,测试用例设计如下:

测试用例货品价格R付款金额P

test1101 -

test20 -

test3-1 -

test4100 101

test5100 99

test650 100

test751 100

test890 100

test991 100

test1095 100

test1196 100

test1299 100

test13100 100

5.试为三角形问题中的直角三角形开发一个决策表和相应的测试用例。注意,会有等腰直角三角形。

解:判断构成的是否为直角三角形的问题的决策表设计如下:

c1:a

c2:b

c3:c

c4:a2+b2=c2? - - - T T T T F F F F

c5: a2+c2=b2? - - - T T F F T T F F

c6: b2+c2=a2? - - - T F T F T F T F

a1:非三角形X X X

a2:直角三角形X X X

a3:非直角三角

X 形

a4:不可能X X X X

根据该决策表设计测试用例如下:

用例ID a b c 预期输出

DT1 4 1 2 非三角形

DT2 1 4 2 非三角形

DT3 1 2 4 非三角形

DT4 ? ? ? 不可能

DT5 ? ? ? 不可能

DT6 ? ? ? 不可能

DT7 3 4 5 直角三角形

DT8 ? ? ? 不可能

DT9 3 5 4 直角三角形

DT10 5 3 4 直角三角形

DT11 2 3 4 非直角三角形

6.现有一个学生标准化考试批阅试卷,产生成绩报告的程序。其规格说明如下:程序的输入文件由一些有80个字符的记录组成,所有记录分为3组,如图:

(1)标题:该组只有一个记录,其内容是成绩报告的名字。

(2)各题的标准答案:每个记录均在第80个字符处标以数字2。该组的记录:

第一个记录:第1~3个字符为试题数(1~999)。第10~59个字符是1~50

题的标准答案(每个合法字符表示一个答案)。

第二个记录:是第51~100题的标准答案。

…….

(3)学生的答案:每个记录均在第80个字符处标以数字3。每个学生的答卷在若干个记录中给出。

学号:1~9个字符

1~50题的答案:10~59。当大于50题时,在第二、三、……个记录中给出。

学生人数不超过200,试题数不超过999。

程序的输出有4个报告:

a)按学号排列的成绩单,列出每个学生的成绩、名次。

b)按学生成绩排序的成绩单。

c)平均分数及标准偏差的报告

d)试题分析报告。按试题号排序,列出各题学生答对的百分比。

采用边界值分析方法,分析和设计测试用例。分别考虑输入条件和输出条件,以及边界条件。采用错误推测法补充设计一些测试用例。

解:输入条件及相应的测试用例如下:

输出条件及相应的测试用例表如下:

采用错误推测法还可补充设计一些测试用例:

?程序是否把空格作为回答

?在回答记录中混有标准答案记录

?除了标题记录外,还有一些的记录最后一个字符即不是2也不是3 ?有两个学生的学号相同

?试题数是负数

第4章白盒测试方法

1.简述白盒测试用例的设计方法,并进行分析总结。

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

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

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

2.分析归纳逻辑覆盖的各种策略,并比较每种覆盖的特点,分析在怎样的情况下采用何种覆盖方式。

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

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

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

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

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

路径覆盖的定义是选取足够多测试数据,使程序的每一条可能路径都至少执行一次。但在实际问题中,一个不太复杂的程序,其路径数都可能是一个庞大的数字,以致要在测试中覆盖所有的路径是不可能实现的。即使对于路径数有限的程序做到了路径覆盖,也不能保证被测程序的正确性。

3.对图所示程序段进行语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖方法进行测试用例设计。

图练习题3

解:语句覆盖:x=90,y=90

x=79,y=90

x=70,y=60

判定覆盖:同上

条件覆盖:同上

判定/条件覆盖:同上

条件组合覆盖:I x>=80,y>=80

II x>=80,y<80

III x<80,y>=80

IV x<80,y<80

V x>=90,y>=90,x+y>=140

VI x>=90,y<90,x+y>=140

VII x<90,y>=90,x+y>=140

VIII x<90,y<90,x+y>=140

IX x>=90,y>=90,x+y<140 不存在

X x>=90,y<90,x+y<140

XI x<90,y>=90,x+y<140

XII x<90,y<90,x+y<140

x=90,y=90

x=90,y=70

x=70,y=90

x=70,y=70

x=100,y=30

x=30,y=100

x=80,y=50

路径覆盖:同语句覆盖

4.请下述语句按照各种覆盖方法设计测试用例。

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

XII a<=2, b>=3, c>4,d>=5

XV a<=2, b>=3, c<=4,d<5

XII 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

{

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;

}

程序控制流图:

程序环路复杂度: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 10 test 2 0 2 0 test 3 2 0 102 test 4 1 3

20

6.对如图所示的N-S

图 练习题6

解:(2+2*2)*2=12

1

3 4,5 6,7 8 9,10 11 12 2 p

g

q

m n a b c h

Y N N

N

N Y Y Y

Y

N f

第5章软件测试管理及自动化测试基础

1.简述软件测试自动化的意义。

解:软件测试自动化的意义是:(1)提高测试效率;(2)降低对软件新版本进行回归测试的开销;(3)完成手工测试不能或难以完成的测试;(4)具有一致性和可重复性;(5)更好地利用资源;(6)降低风险,增加软件信任度。

2.在运用软件自动化测试时,应注意哪些缺点和事项?

解:应注意:(1)软件自动化测试可能降低测试的效率;(2)测试首次运行时,可能发现大量错误,但当进行过多次测试后,发现错误的机率会相对较小,除非对软件进行了修改或在不同的环境下运行;(3)如果缺乏测试经验,测试的组织差、文档少或不一致,则自动化测试的效果比较差;(4)技术问题。作为第三方的技术产品,如果不具备解决问题的能力和技术支持或者产品适应环境变化的能力不强,将使得软件自动化工具的作用大大降低。

3.软件测试工具主要分为哪个大类?

解:根据测试方法不同,分为白盒测试工具和黑盒测试工具。

根据测试的对象和目的,分为单元测试工具、功能测试工具、负载测试工具、性能测试工具和测试管理工具等。

4.了解时下常用的自动化测试用具,并对这些工具进行针对性说明。

解:略。

5.简述软件测试管理过程。

解:首先由一位对整个系统设计熟悉的设计人员编写测试大纲,明确测试的内容和测试通过的准则,设计完整合理的测试用例,以便系统实现后进行全面测试。

然后在实现组将所开发的程序经验证后,提交测试组,由测试负责人组织测试,测试一般可按下列方式组织: (1)测试人员仔细阅读有关资料,包括规格说明、设计文档、使用说明书及在设计过程中形成的测试大纲、测试内容及测试的通过准则,全面熟悉系统,编写测试计划,设计测试用例,作好测试前的准备工作。(2)为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、确认测试和系统测试。

6.简述软件测试管理的主要功能。

解:软件测试管理的主要功能是:测试控制对象的编辑和管理;测试流程控制和管理;统计分析和决策支持

7.试选择一个小型的应用系统,做功能测试计划并设计测试用例。

解:略。

最新软件测试期末考试试题及答案

一,判断 1 √ 2.× 3.√ 4.× 5. × 6. ×7. ×8. ×9.√10. ×二,选择 1. D 2. D 3. B 4. B 5. B 6. A 7. D 8. B 9. C 10. A 三填空 1. 测试计划、测试用例 2. 稳定性测试、负载测试、压力测试 3. 非增量是集成测试自顶向下增量式测试、自底向上增量式测试 4. 回归 5. 软件需求 四简答题(30分) 1.试描述软件测试的定义?(3分) 答:利用手工或者自动化的方式,按照测试方案对系统执行测试用例的过程叫做软件测试。 2.什么是软件缺陷?(4分) 答:满足以下条件的问题都叫缺陷: 软件未达到产品说明书中已标明的功能 软件出现了产品说明书中指明不会出现的错误 软件功能超出了产品说明书指明的范围 软件未达到产品说明书虽未指出但应达到的目标 软件测试员认为软件难以理解,不易使用,运行速度缓慢,或者最终用户认为该软件使用效果不好。 3.常见的黑盒测试用例的设计方法?并分别简单介绍一下各自的思想。(8分)答:等价类划分:等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。 边界值分析:对输入输出的边界值进行测试的一种黑盒测试方法。 决策表法:决策表是分析和表达多逻辑条件下执行不同操作的情况的工具 因果图分析法:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对

性的设计测试用例的方法。 4. 列举常见的系统测试方法。答出来5个即可。(5分) 答:恢复测试 安全测试 强度测试 性能测试 正确性测试 可靠性测试 兼容性测试 Web测试 5.文档测试主要测试哪些内容?答出来5点即可(5分) 答:(1)检查产品说明书属性 (2)检查是否完整 (3)检查是否准确 (4)检查是否精确 (5)检查是否一致 (6)检查是否贴切 (7)检查是否合理 (8)检查代码无关 (9)检查可测试性 6. 单元测试主要测试那几方面的问题?(5分) 答:模块接口、局部数据结构、边界条件、独立的路径和错误处理。五,设计题

软件测试习题

一、选择题 1.软件测试的目的是(B )。 A)试验性运行软件B)发现软件错误C)证明软件正确D)找出软件中全部错误2.软件测试中白盒法是通过分析程序的( B )来设计测试用例的。 A)应用范围B)内部逻辑C)功能D)输入数据 3.黑盒法是根据程序的( C )来设计测试用例的。 A)应用范围B)内部逻辑C)功能D)输入数据 4.为了提高软件测试的效率,应该( D )。 A)随机地选取测试数据B)取一切可能的输入数据作为测试数据 C)在完成编码以后制定软件的测试计划D)选择发现错误可能性最大的数据作为测试用例5.与设计测试用例无关的文档是(A )。 A)项目开发计划B)需求规格说明书C)设计说明书D)源程序 6.测试的关键问题是(B )。 A)如何组织软件评审B)如何选择测试用例 C)如何验证程序的正确性D)如何采用综合策略 7.软件测试用例主要由输入数据和( C )两部分组成。 A)测试计划B)测试规则C)预期输出结果D)以往测试记录分析 8.成功的测试是指运行测试用例后( B )。 A)未发现程序错误B)发现了程序错误C)证明程序正确性D)改正了程序错误9.下列几种逻辑覆盖标准中,查错能力最强的是( D )。 A)语句覆盖B)判定覆盖C)条件覆盖D)条件组合覆盖 10.在黑盒测试中,着重检查输入条件组合的方法是( D )。 A)等价类划分法B)边界值分析法C)错误推测法D)因果图法 11.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是(A )。A)系统功能B)局部数据结构C)重要的执行路径D)错误处理 12.软件测试过程中的集成测试主要是为了发现( B )阶段的错误。 A)需求分析B)概要设计C)详细设计D)编码 13.不属于白盒测试的技术是(D )。 A)路径覆盖B)判定覆盖C)循环覆盖D)边界值分析 14.集成测试时,能较早发现高层模块接口错误的测试方法为( A )。

软件测试复习题_带答案

软件测试复习题 一、判断 (01)测试是为了验证软件已正确地实现了用户的要求。错 (02)白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。对(03)白盒测试不仅与程序的内部结构有关,还要考虑程序的功能要求。错 (04)黑盒测试的测试用例是根据程序内部逻辑设计的。错 (05)黑盒测试的测试用例是根据应用程序的功能需求设计的。对 (06)为了快速完成集成测试,采用一次性集成方式是适宜的。错 (07)在软件开发过程中,若能推迟暴露其中的错误,则为修复和改进错误所花费的代价就会降低。错 (05)在软件开发过程中,若能尽早暴露其中的错误,则为修复和改进错误所花费的代价就会降低。对 (09)单元测试通常由开发人员进行。对 (10)压力测试通常需要辅助工具的支持。对 (11)压力测试不需要辅助工具的支持。错 (12)测试人员说:“没有可运行的程序,我无法进行测试工作”。错 (13)软件测试员可以对产品说明书进行白盒测试。错 (14)软件测试员无法对产品说明书进行白盒测试。对 (15)在设计测试用例时,应包括合理的输入条件和不合理的输入条件。对 二、选择 1、用黑盒技术设计测试用例的方法之一为( a ) A)因果图 B)逻辑覆盖 C)循环覆盖 D)基本路径测试 2、软件测试的目的是( b) A)避免软件开发中出现的错误 B)发现软件开发中出现的错误 C)尽可能发现并排除软件中潜藏的错误,提高软件的可靠性 D)修改软件中出现的错误 3、下列软件属性中,软件产品首要满足的应该是( a ) A)功能需求B)性能需求C)可扩展性和灵活性D)容错纠错能力 4、坚持在软件的各个阶段实施下列哪种质量保障措施,才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期( a)。 A)技术评审 B)程序测试 C)改正程序错误D)管理评审 5、以程序的内部结构为基础的测试用例技术属于( d )。

软件测试基础期末试卷及参考答案

1、判定覆盖设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支_至少被执行一次。 2、黑盒测试的具体技术方法 ____________、 __________、 __________、____________。 等价类划分法,边界值分析法,决策表法,因果图法 3、黑盒测试又称之为___________测试。 功能 4、等价类划分有两种不同的情况:____________和____________。 有效等价类,无效等价类 5、根据覆盖目标的不同,逻辑覆盖又可分为:________________,_____________,_______________,__________________,条件组合覆盖,判断/条件覆盖。 语句覆盖,判定覆盖,条件覆盖,路径覆盖 6、根据软件生命周期中的定义,可以把自动化测试工具划分3大类____________,____________和 ____________。 白盒测试工具、黑盒测试工具、测试管理工具 7、软件测试是为发现程序中的______________而执行程序的______________。 错误,过程 8、测试用例是由______________和预期的______________两部分组成。 测试输入数据,输出数据 9、白盒测试又称为______________,可以分为______________和______________两大类。 结构测试,静态测试,动态测试 10、软件是包括____________﹑____________﹑____________的完整集合。 程序,数据,相关文档 11、边界值分析法属于____________。 黑盒测试 12、单元测试是以____________说明书为指导,测试源程序代码。 详细设计 13、集成测试以____________说明书指导,测试软件结构。 概要设计 14、确认测试以____________说明书为指导。 需求分析 15、软件开发的基本过程____________,_____________,_______________,_____________, _____________,______________。 需求分析、概要设计、详细设计,编码,测试、维护 16、代码复审属于____________,不实际运行程序。 静态测试 17、集成测试把模块组成成系统的测试方式:_____________和______________。 一次性集成测试,增量式集成测试 18、黑盒测试有两种基本方法,即:_____________和______________。 通过测试,失败测试 二、选择题(每题3分,共10题,分数为30分) 1. 下列哪一项不是白盒测试(C) A.单元测试 B.集成测试 C.系统测试 D.回归测试 2. 属于黑盒测试的方法(C) A.基于基本路径 B.控制流 C.基于用户需求测试 D.逻辑覆盖 3.在Assert类中断言对象为NULL是_____。(C) 4.___________的目的是对最终软件系统进行全面的测试确保最终软件系统产品满足需求。(A)

软件测试技术习题参考答案

第1章软件测试概述 1、简述软件缺陷的含义。 答:软件缺陷是软件开发过程中潜在的缺陷,这些缺陷可能在软件运行后出现,因而使软件的性能和可靠性等方面与系统的设计需求不符。 2、说明软件缺陷、软件错误和软件失败的关系。 答:缺陷、缺点、偏差统称为缺陷,是软件故障的根源;错误、谬误、问题、异常、矛盾等统称为错误,软件错误出现的原因是软件缺陷所致;失败、事故、灾难统称失败,失败的直接原因是软件系统存在软件错误。 14、“软件测试是有风险的工作”,试解释这种说法的含义。 答:软件不测试,就会有风险;软件测试,同样也会有风险。因为,软件是个复杂的系统,其复杂性体现在软件实现的内容复杂性、开发过程的复杂性和组织工作的复杂性等方面。而软件测试的目的是为了发现故障,并加以排除。对一个复杂的软件系统来说,故障的排除往往可能又带来新的软件缺陷。所以,软件测试又会带来一定的风险。 第2章软件测试基础 2、条件覆盖是否高于判断覆盖的逻辑覆盖程度如果不是,请给出反例加以说明。答:条件覆盖是高于判断覆盖的逻辑覆盖程度。 a、用条件覆盖所设计的测试用例可使得程序中的每一个判断的每一个条件的可能取值至少执行一次。 b、用判断覆盖所设计的测试用例可使被测程序中的每个判断的真分支和假分支至少经历一次。 每个判断语句可能包含多个条件(比如,if(A>3 && B<7)……)。条件覆盖针对判断语句的每一个条件的所有可能取值编写测试用例;判断覆盖只针对每一个判断语句整体的所有可能取值编写测试用例。所以,条件覆盖的逻辑覆盖程度高于判断覆盖。 4、已知某种计算机程序设计语言的标识符语法规则规定“标示符是由非数字开头的,有效字符数为32个,最大字符数为128个的任意符号串”。试用等价类划分法设计测试用例。 答:(1)等价类划分

软件测试练习题及答案

练习题 一、判断 (01)测试是为了验证软件已正确地实现了用户的要求。错 (02)白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。对 (03)白盒测试不仅与程序的内部结构有关,还要考虑程序的功能要求。错 (04)程序员兼任测试员可以提高工作效率。错 (05)黑盒测试的测试用例是根据应用程序的功能需求设计的。对 (06)当软件代码开发结束时,软件测试过程才开始。错 (07)据有关数据统计,代码中60%以上的缺陷可以通过代码审查发现出来。对(08)无效等价类是无效的输入数据构成的集合,因此无需考虑无效的等价类划分。错(09)软件本地化就是将一个软件产品按特定国家或语言市场的需要翻译过来。错(10)在压力测试中通常采用的是黑盒测试方法。对 (11)软件测试员无法对产品说明书进行白盒测试。对 (12)功能测试工具主要适合于回归测试。对 (13)测试人员说:“没有可运行的程序,我无法进行测试工作”。错 (14)自底向上集成需要测试员编写驱动程序。对 (15)测试是可以穷尽的。错 (16)自动化测试相比手工测试而言,能发现更多的错误。错 (17)软件测试自动化可以提高测试效率,可以代替手工测试。错 (18)语句覆盖法的基本思想是设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。对 (19)Beta测试是验收测试的一种。对 (20)软件开发全过程的测试工作都可以实现自动化。错 (21)软件只要经过严格严谨的内部测试之后,可以做到没有缺陷。错 (22)结构性测试是根据软件的规格说明来设计测试用例。错 (23)软件测试工具可以代替软件测试员。错 (24)通过软件测试,可以证明程序的正确性。错 (25)在单元测试中,驱动程序模拟被测模块工作过程中所调用的下层模块。错(26)软件缺陷可能会被修复,可能会被保留或者标识出来。对 (27)测试用例是由测试输入数据和对应的实际输出结果这两部分组成。错(28)单元测试通常由开发人员进行。对 (29)现在人们普遍认为软件测试不应该贯穿整个软件生命周期,而应在编程完毕之后再进行,这样可以降低成本。错 (30)文档的错误不是软件缺陷。错 (31)Junit只是单元测试工具,并不能进行现回归测试。错 (32)判定表法是一种白盒测试方法。错 (33)白盒测试不考虑程序内部结构。错 (34)在单元测试中,桩程序模拟被测模块工作过程中所调用的下层模块。对

软件测试方法和技术重点和试题与答案

太原理工大学软件测试技术 适用专业:软件工程2011级考试日期:2014.1 时间:120 分钟 一、判断题 1. 测试是调试的一个部分(╳) 2. 软件测试的目的是尽可能多的找出软件的缺陷。(√ ) 3. 程序中隐藏错误的概率与其已发现的错误数成正比(√ ) 4. Beta 测试是验收测试的一种。(√ ) 5. 测试人员要坚持原则,缺陷未修复完坚决不予通过。(√ ) 6. 项目立项前测试人员不需要提交任何工件。(╳) 7. 单元测试能发现约80%的软件缺陷。(√ ) 8. 测试的目的是发现软件中的错误。(√ ) 9. 代码评审是检查源代码是否达到模块设计的要求。(√ ) 10. 自底向上集成需要测试员编写驱动程序。(√ ) 11. 测试是证明软件正确的方法。(╳) 12. 负载测试是验证要检验的系统的能力最高能达到什么程度。(√ ) 13. 测试中应该对有效和无效、期望和不期望的输入都要测试。(√ )验收测试是由最终用户来实施的。(√ ) 14. 测试人员要坚持原则,缺陷未修复完坚决不予通过。(√ )黑盒测试也称为结构测试。(╳)集成测试计划在需求分析阶段末提交。(╳) 15. 软件测试的目的是尽可能多的找出软件的缺陷。(√) 16. 自底向上集成需要测试员编写驱动程序。(√) 17. 负载测试是验证要检验的系统的能力最高能达到什么程度。(╳) 18. 测试程序仅仅按预期方式运行就行了。(╳) 19. 不存在质量很高但可靠性很差的产品。(╳) 20. 软件测试员可以对产品说明书进行白盒测试。(╳) 21. 静态白盒测试可以找出遗漏之处和问题。(√) 22. 总是首先设计白盒测试用例。(╳) 23. 可以发布具有配置缺陷的软件产品。(√) 24. 所有软件必须进行某种程度的兼容性测试。(√) 25. 所有软件都有一个用户界面,因此必须测试易用性。(╳) 26. 测试组负责软件质量。(╳) 27. 按照测试实施组织划分,可将软件测试分为开发方测试、用户测试和第三方测试。(√) 28. 好的测试员不懈追求完美。(×) 29. 测试程序仅仅按预期方式运行就行了。( ×) 30. 在没有产品说明书和需求文档的条件下可以进行动态黑盒测试。( √) 31. 静态白盒测试可以找出遗漏之处和问题。( √) 32. 测试错误提示信息不属于文档测试范围。( ×)

软件测试方法和技术练习题与答案

一、判断题 1.测试是调试的一个部分(╳) 2.软件测试的目的是尽可能多的找出软件的缺陷。(√) 3.程序中隐藏错误的概率与其已发现的错误数成正比(√) 测试是验收测试的一种。(√) 5.测试人员要坚持原则,缺陷未修复完坚决不予通过。(√) 6.项目立项前测试人员不需要提交任何工件。(╳) 7.单元测试能发现约80%的软件缺陷。(√) 8.测试的目的是发现软件中的错误。(√) 9.代码评审是检查源代码是否达到模块设计的要求。(√) 10.自底向上集成需要测试员编写驱动程序。(√) 11.测试是证明软件正确的方法。(╳) 12.负载测试是验证要检验的系统的能力最高能达到什么程度。(√) 13.测试中应该对有效和无效、期望和不期望的输入都要测试。(√)验收测试是由最终用户来实施的。(√) 14.测试人员要坚持原则,缺陷未修复完坚决不予通过。(√) 黑盒测试也称为结构测试。(╳) 集成测试计划在需求分析阶段末提交。(╳)15.软件测试的目的是尽可能多的找出软件的缺陷。(√) 16.自底向上集成需要测试员编写驱动程序。(√) 17.负载测试是验证要检验的系统的能力最高能达到什么程度。(╳) 18.测试程序仅仅按预期方式运行就行了。(╳) 19.不存在质量很高但可靠性很差的产品。(╳) 20.软件测试员可以对产品说明书进行白盒测试。(╳) 21.静态白盒测试可以找出遗漏之处和问题。(√) 22.总是首先设计白盒测试用例。(╳) 23.可以发布具有配置缺陷的软件产品。(√)24.所有软件必须进行某种程度的兼容性测试。(√) 25.所有软件都有一个用户界面,因此必须测试易用性。(╳) 26.测试组负责软件质量。(╳) 27.按照测试实施组织划分,可将软件测试分为开发方测试、用户测试和第三方测试。(√) 28.好的测试员不懈追求完美。(×) 29.测试程序仅仅按预期方式运行就行了。(×) 30.在没有产品说明书和需求文档的条件下可以进行动态黑盒测试。(√) 31.静态白盒测试可以找出遗漏之处和问题。(√) 32.测试错误提示信息不属于文档测试范围。(×) 33.代码评审是检查源代码是否达到模块设计的要求。(√) 34.总是首先设计黑盒测试用例。(√) 35.软件测试是有风险的行为,并非所有的软件缺陷都能够被修复。(∨) 36.软件质量保证和软件测试是同一层次的概念。(x) 37.程序员兼任测试员可以提高工作效率。(x) 38.在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。(∨) 39.传统测试是在开发的后期才介入,现在测试活动已经扩展到了整个生命周期。(∨)40.传统测试以发现错误为目的,现在测试已经扩展到了错误预防的范畴。∨ 41.软件测试的生命周期包括测试计划、测试设计、测试执行、缺陷跟踪、测试评估。(∨)42.软件生存周期是从软件开始开发到开发结束的整个时期。(x) 43.测试用例的数目越多,测试的效果越好。(x) 44.只要能够达到100%的逻辑覆盖率,就可以保证程序的正确性。(x) 45.单元测试属于动态测试。(∨) 46.验收测试是以最终用户为主的测试。(∨) 47.没有发现错误的测试是没有价值的。(∨) 48.可以把不合格的开发人员安排做测试。(x)

软件测试练习题及答案

一、判断 (01)测试是为了验证软件已正确地实现了用户的要求。错 (02)白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。对 (03)白盒测试不仅与程序的内部结构有关,还要考虑程序的功能要求。错 (04)程序员兼任测试员可以提高工作效率。错 (05)黑盒测试的测试用例是根据应用程序的功能需求设计的。对 (06)当软件代码开发结束时,软件测试过程才开始。错 (07)据有关数据统计,代码中60%以上的缺陷可以通过代码审查发现出来。对(08)无效等价类是无效的输入数据构成的集合,因此无需考虑无效的等价类划分。错(09)软件本地化就是将一个软件产品按特定国家或语言市场的需要翻译过来。错(10)在压力测试中通常采用的是黑盒测试方法。对 (11)软件测试员无法对产品说明书进行白盒测试。对 (12)功能测试工具主要适合于回归测试。对 (13)测试人员说:“没有可运行的程序,我无法进行测试工作”。错 (14)自底向上集成需要测试员编写驱动程序。对 (15)测试是可以穷尽的。错 (16)自动化测试相比手工测试而言,能发现更多的错误。错 (17)软件测试自动化可以提高测试效率,可以代替手工测试。错 (18)语句覆盖法的基本思想是设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。对 (19)Beta测试是验收测试的一种。对 (20)软件开发全过程的测试工作都可以实现自动化。错 (21)软件只要经过严格严谨的内部测试之后,可以做到没有缺陷。错 (22)结构性测试是根据软件的规格说明来设计测试用例。错 (23)软件测试工具可以代替软件测试员。错 (24)通过软件测试,可以证明程序的正确性。错 (25)在单元测试中,驱动程序模拟被测模块工作过程中所调用的下层模块。错(26)软件缺陷可能会被修复,可能会被保留或者标识出来。对 (27)测试用例是由测试输入数据和对应的实际输出结果这两部分组成。错(28)单元测试通常由开发人员进行。对 (29)现在人们普遍认为软件测试不应该贯穿整个软件生命周期,而应在编程完毕之后再进行,这样可以降低成本。错 (30)文档的错误不是软件缺陷。错 (31)Junit只是单元测试工具,并不能进行现回归测试。错 (32)判定表法是一种白盒测试方法。错 (33)白盒测试不考虑程序内部结构。错 (34)在单元测试中,桩程序模拟被测模块工作过程中所调用的下层模块。对(35)在测试中发现缺陷多的地方,还有更多的缺陷将会被发现。对

软件测试技术基础课后习题答案[1]

第1章软件测试概述 1.简述软件测试的意义。 解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。而由于软件本身的特性,软件中的错误是不开避免的。不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。因此为了保证软件质量,必须对软件进行测试。软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。 2.什么是软件缺陷?它的表现形式有哪些? 解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。 它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。 3.简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又最低? 解:软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。其中在需求分析阶段引入的缺陷最多,修复的成本又最低。 4.当用户登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于是按了浏览器左上角的“退回”按钮, 就又回到了退出前的网页,你认为该购物软件有缺陷吗?如果有,属于哪一类? 解:有缺陷。其所属类别与软件产品说明书的要求有关。 5.什么是软件测试?简述其目的与原则。 解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。 测试目的:(1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。(2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。(3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并且提前确认解决这些问题和风险的途径。 测试过程中应注意和遵循的原则:(1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。(2)测试应当有重点。(3)事先定义好产品的质量标准。(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。(5)穷举测试是不可能的。(6)第三方进行测试会更客观,更有效。(7)软件测试计划是做好软件测试工作的前提。(8)测试用例是设计出来的,不是写出来的。(9)对发现错误较多的程序段,应进行更深入的测试。(10)重视文档,妥善保存一切测试过程文档。 6.件测试阶段是如何划分的? 解:软件测试的阶段划分为:规格说明书审查;系统和程序设计审查;单元测试;集成测试;确认测试;系统测试;验

软件测试试题及答案分析

单选 1. 属于黑盒测试的方法?( C) A.基于基本路径 B.控制流 C.基于用户需求测试 D.逻辑覆盖 2.在Assert类中断言对象为NULL是_____。(D) A.assertEquals B.assertTrue C.fail D.assertNull 3.___________的目的是对最终软件系统进行全面的测试确保最终软件系统产品满足需求(A) A.系统测试B.集成测试 C.单元测试D.功能测试 4.有一组测试用例使得每一个被测试用例的分支覆盖至少被执行一次,它满足的覆盖标准___________。(B) A. 语句覆盖 B.判定覆盖 C.条件覆盖 D.路径覆盖 5.软件测试的目的是___________。(C) A.表明软件的正确性B.评价软件质量 C.尽可能发现软件中的错误D.判定软件是否合格 6.关于白盒测试与黑盒测试的最主要区别,正确的是___________。(A) A.白盒测试侧重于程序结构,黑盒测试侧重于功能 B.白盒测试可以使用测试工具,黑盒测试不能使用工具 C.白盒测试需要程序参与,黑盒测试不需要 D.黑盒测试比白盒测试应用更广泛 7.软件测试类型按开发阶段划分___________。(B) A.需要测试﹑单元测试﹑集成测试 B.单元测试﹑集成测试﹑确认测试﹑系统测试﹑验收测试 C.单元测试﹑集成测试﹑确认测试 D.调试﹑单元测试﹑功能测试 8.在Junit中,testXXX()方法就是一个测试用例,测试方法是______。(B) A.private void testXXX() B.public void testXXX() C.public float testXXX() D.public int testXXX() 9.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?(A)A.单元测试B.集成测试 C.目的测试D.确认测试 10.增量式集成测试有3种方式:自顶向下增量测试方法,和混合增量测试方式。(D ) A.自中向下增量测试方法B.多次性测试 C.维护D.自底向上增量测试方法 1)以下不属于软件测试的原则有(D )。 A.程序最好别让由编写该程序的程序员自己来测试

软件测试课后习题

第一章软件测试概述 1. 名词解释 软件缺陷: 即计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵。缺陷会导致软件产品在某种程度上不能满足用户的需要。 软件缺陷的准确定义,通常有以下5 条描述: (1)软件未实现产品说明书要求的功能。 (2)软件出现了产品说明书指明不会出现的错误。 (3)软件超出实现了产品说明书提到的功能。 (4)软件实现了产品说明书虽未明确指出但应该实现的目标。 (5)软件难以理解,不易使用,运行缓慢或者终端用户认为不好 软件测试: 软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。通常对软件测试的定义有如下描述:软件测试是为了发现错误而执行程序的过程。 静态测试:静态测试就是通过对被测程序的静态审查,发现代码中潜在的错误。 动态测试:动态测试的对象必须是能够由计算机真正运行的被测试的程序 黑盒测试: 黑盒测试是一种从用户观点出发的测试,又称为功能测试,数据驱动测试和基于规格说明的测试。 白盒测试: 白盒测试基于产品的内部结构来进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分利用。 单元测试: 单元测试是针对每个单元的测试,是软件测试的最小单位。 集成测试: 集成测试是对已测试过的模块进行组装,进行集成测试的目的主要在于检验与软件设计相关的程序结构问题。 确认测试: 是检验所开发的软件能否满足所有功能和性能需求的最后手段,通常采用黑盒测试方法。系统测试: 系统测试的主要任务是检测被测软件与系统的其他部分的协调性。 验收测试: 验收测试是软件产品质量的最后一关。这一环节,测试主要从用户的角度着手,其参与者 主要是用户和少量的程序开发人员。 2. 简述软件测试发展的历史及软件测试的现状

软件测试课后作业—答案

作业1: 某程序实现如下功能:输入三个整数A、B、C,输出以A、B、C为三边的三角形面积(1

作业3: 需求分析题,设计测试用例: 银行系统:有两个普通窗口A,B和一个VIP窗口,每个窗口只能发放10个号。 A.没有持有VIP的客户只能在普通窗口A,B办理业务。 B.VIP客户优先安排在VIP窗口办理业务,如果VIP窗口不能再发放号码,则 到普通窗口A办理。 C.对公业务只能在普通窗口A办理(办理业务的时间是星期一到星期六)。 D.其他业务在普通窗口A,B办理。 E.在分配时优先考虑人数最少的窗口

作业4: 编写163邮箱注册模块的测试用例(假设没有重复的用户名),条件如图所示。 测试用例如下:

请为下面的程序设计用例: 该程序有三个输入变量month、day、year(month、day、year均为整数值,并且满足:1≦month≦12和1≦day≦31),分别作为输入日期的月份、日期、年份,通过程序可以输出该输入日期在日历上后面的隔一天的日期。例如,输入为2004年11月29日,则程序输出为2004年12月1日。 设计如下: (1)Month的有效等价类 M1{month=4、6、9、11}M2 {month=1、3、5、7、8、10} M3{month=12}M4{month=2} Day的有效等价类 D1 {1≦day≦26}D2 {day=27} D3 {day=28}D4 {day=29} D5 {day=30} D6 {day=31} Year的有效等价类 Y1 {year是闰年}Y2 {year不是闰年} (2)根据各种有效的输入情况,程序中可能采取的操作有以下7种: a1{day+2}a2 {day=2} a3 {day=1}a4 {month+1} a5 {month=1}a6 {year+1} a7 {不可能}

软件测试练习题(上课用)

一、选择题 1.软件测试的目的是()。 A)试验性运行软件B)发现软件错误C)证明软件正确D)找出软件中全部错误2.软件测试中白盒法是通过分析程序的()来设计测试用例的。 A)应用范围B)内部逻辑C)功能D)输入数据 3.黑盒法是根据程序的()来设计测试用例的。 A)应用范围B)内部逻辑C)功能D)输入数据 4.为了提高软件测试的效率,应该()。 A)随机地选取测试数据B)取一切可能的输入数据作为测试数据 C)在完成编码以后制定软件的测试计划D)选择发现错误可能性最大的数据作为测试用例5.与设计测试用例无关的文档是()。 A)项目开发计划B)需求规格说明书C)设计说明书D)源程序 6.测试的关键问题是()。 A)如何组织软件评审B)如何选择测试用例 C)如何验证程序的正确性D)如何采用综合策略 7.软件测试用例主要由输入数据和()两部分组成。 A)测试计划B)测试规则C)预期输出结果D)以往测试记录分析 8.成功的测试是指运行测试用例后()。 A)未发现程序错误B)发现了程序错误C)证明程序正确性D)改正了程序错误9.下列几种逻辑覆盖标准中,查错能力最强的是()。 A)语句覆盖B)判定覆盖C)条件覆盖D)条件组合覆盖 10.在黑盒测试中,着重检查输入条件组合的方法是()。 A)等价类划分法B)边界值分析法C)错误推测法D)因果图法 11.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是()。A)系统功能B)局部数据结构C)重要的执行路径D)错误处理 13.不属于白盒测试的技术是()。 A)路径覆盖B)判定覆盖C)循环覆盖D)边界值分析 16.使用白盒测试方法时,确定测试数据应根据()和指定的覆盖标准。 A)程序内部逻辑B)程序的复杂度C)使用说明书D)程序的功能 17.程序的三种基本结构是()。 A)子过程、程序、分程序B)顺序、选择、循环 C)递归、堆栈、队列D)调用、返回、转移 19.软件调试的目的是() A)找出错误所在并改正之B)排除存在错误的可能性 C)对错误性质进行分类D)统计出错的次数 20.程序三种基本结构的共同特点是() A)不能嵌套使用B)只能用来写简单程序 C)已经用硬件实现D)只有一个入口和一个出口 21.下面说法正确的是( )。 A)经过测试没有发现错误说明程序正确B)测试的目标是为了证明程序没有错误C)成功的测试是发现了迄今尚未发现的错误的测试D)成功的测试是没有发现错误的测试22.覆盖准则最强的是( )。 A)语句覆盖B)判定覆盖 C)条件覆盖D)路径覆盖

软件测试笔试题及答案修订

1、TCP是互联网中的(1)协议,使用(2)次握手协议建立连接。当主动发出SYN连接请求后,等待对方回答(3)。这种连接的方法可以防止(4),TCP使用的流量控制协议是(5)。 (1)A.传输层B.网络层C会话层D.应用层 (2)(3),,,,ACK (4)A.出现半连接B.无法连接C.假冒的连接D.产生错误的连接 (5)A.固定大小的滑动窗口协议B.可变大小的滑动窗口协议C.后退N帧ARQ协议D.选择重发ARQ 协议 2、下列叙述中,与提高软件可移植性相关的是。 A.选择时间效率高的算法 B.尽可能减少注释 C.选择空间效率高的算法 D.尽量用高级语言编写系统中对效率要求不高的部分 D软件可移植性是指与软件可从某一环境移植到另一环境的能力有关的一组属性。高级语言具有较好的可移植性,所以可以尽量用高级语言编写系统中对效率要求不高的部分。减少注释、选择时间/空间效率高的算法都不能提高软件的可移植性。 3、用边界值分析法,假定1

软件测试复习题含答案

一、选择题 1、配置测试() (A) 是指检查软件之间是否正确交互和共享信息 (B) 是交互适应性、实用性和有效性的集中体现 (C) 是指使用各种硬件来测试软件操作的过程 (D) 检查缺陷是否有效改正 2、下列各项中______不是一个测试计划所应包含的内容() (A)测试资源、进度安排(B)测试预期输出 (C)测试范围 (D)测试策略 3、下列不属于正式审查的方式是________ () (A)同事审查 (B) 公开陈述 (C) 检验 (D) 编码标准和规范 4、在没有产品说明书时使用____:() (A)探索测试 (B) 功能测试 (C) 动态测试 (D) 静态测试 5、调试是________。() (A)发现与预先定义的规格和标准不符合的问题 (B)发现软件错误征兆的过程 (C)有计划的、可重复的过程 (D)消除软件错误的过程 6、在软件底层进行的测试称为________。() (A) 系统测试 (B) 集成测试 (C) 单元测试 (D) 功能测试 7、在确定黑盒测试策略时,优先选用的方法是________。() (A) 边界值分析法 (B) 等价类划分 (C) 错误推断法 (D) 决策表方法

8、下列_________不属于软件缺陷() (A) 测试人员主观认为不合理的地方 (B) 软件未达到产品说明书标明的功能 (C)软件出现了产品说明书指明不会出现的错误 (D)软件功能超出产品说明书指明范围 9、产品发布后修复软件缺陷比项目开发早期这样做的费用要高() (A)1~2倍 (B)10~20倍 (C)50倍 (D)100倍或更高 10、_____把黑盒子测试和白盒子测试的界限打乱了。() (A) 灰盒子测试(B)动态测试 (C)静态测试(D)失败测试 11、软件测试的目的是________。() (A)发现程序中的所有错误 (B)尽可能多地发现程序中的错误 (C)证明程序是正确的 (D)调试程序 12、下列_______不属于测试原则的内容() (A)软件测试是有风险的行为 (B)完全测试程序是不可能的 (C)测试无法显示潜伏的软件缺陷 (D)找到的缺陷越多软件的缺陷就越少 13、导致软件缺陷的最大原因是________。() (A)编制说明书 (B)设计 (C)编码 (D)测试 14、修复软件缺陷费用最高的是________阶段() (A)编制说明书 (B)设计 (C)编码 (D)发布 15、白盒测试是根据程序的_________来设计测试用例,黑盒测试是根据软件的规格说明来设计测试用例。() (A)功能 (B)性能 (C)内部逻辑 (D)内部数据

软件测试基础习题及答案范文

1、软件测试的定义? 软件测试是一个过程或者一系列过程,用来确认计算和代码完成了其应该完成的功能,并且不执行其不应该有的操作。 2、软件测试的目标是什么? 是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,降低软件发布后由于潜在的软件错误和缺陷造成的隐患所带来的商业风险。 3、简单描述一下软件测试的原则? 所有的软件测试都应追溯到用户需求 应当把“尽早地和不断地进行软件测试”作为测试者的座右铭 Good Enough原则 质量第一 充分注意测试中的群集现象 程序员应避免检查自己的程序 有据可依 尽量避免软件测试的随意性,要有预期结果 重视回归测试 妥善保存一切测试过程文档 4、软件测试中验证和确认的区别? Verfication 验证: 是保证软件正确实现特定功能的一系列活动和过程。 目的是保证软件生命周期中的每一个阶段的成果满足上一个阶段设定的目标。 Validation 确认: 是保证软件满足用户需求的一系列的活动和过程。 目的是在软件开发后保证与用户需求符合 5、软件测试按照测试的基本策略可分为哪两种并加以详细说明? 白盒测试: 白盒测试也称结构测试或逻辑驱动测试,是指基于一个应用代码的内部逻辑知识,即基于覆盖全部代码、分支、路径、条件的测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。

黑盒测试: 黑盒测试是指不基于内部设计和代码的任何知识,而基于需求和功能性的测试,黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。 6、整个软件生命周期中,需要进行哪几项测试? 单元测试、集成测试、系统测试、验收测试 单元测试 单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。因为单元测试需要知道内部程序设计和编码的细节知识,一般应由程序员而非测试员来完成,往往需要开发测试驱动模块和桩模块来辅助完成单元测试。因此应用系统有一个设计很好的体系结构就显得尤为重要。 一个软件单元的正确性是相对于该单元的规约而言的。因此,单元测试以被测试单位的规约为基准。单元测试的主要方法有控制流测试、数据流测试、排错测试、分域测试等等。 集成测试 集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶向下和自底向上两种。 系统测试 系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。软件系统测试方法很多,主要有功能测试、性能测试、随机测试等等。 验收测试 验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集。所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至是在软件安装使用的现场。这是软件在投入使用之前的最后测试。

软件测试习题集及答案详细版

精品文档 第一章 1.什么是软件测试?软件测试的目的和作用是什么? 答: 软件测试是在受控制的条件下对系统或应用程序进行操作并评价操作的结果。 软件测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。测试是为了证明程序有错,而不是证明程序无错。一个成功的测试是发现了至今未发现的错误的测试。 软件测试的原则包括:所有的测试都应追溯到用户的需求;尽早地和不断地进行软件测试;不可能完全的测试,因为输入量太大,执行路径太多;注意测试中的群集现象;避免测试自己的程序;设计周密的测试用例。 2.软件缺陷产生的原因? 答:A.软件需求说明书编写的不全面,不完整,不准确,而且经常更改B.软件设计说明书C.软件操作人员的水平D.开发人员不能很好的理解需求明书和沟通不足 3.软件测试的意义? 意义: 1.对产品质量完成全面的评估,为软件产品发布(如验收测试)、软件系统部署(如性能规划测试)、软件产品鉴定(第三方独立测试)委托方和被委托方纠纷仲裁(第三方独立测试)和其它决策提供信息; 2.通过持续的测试(包括需求评审、设计评审、代码评审等)可以对产品质量提供持续的、快速的反馈,从而在整个开发过程中不断地、及时地改进产品的质量,并减少各种返工,降低软件开发的成本; 3.通过测试发现所要交付产品的缺陷,特别是尽可能地发现各种严重的缺陷,降低或消除产品质量风险,提高客户的满意度,扩大市场份额,提高客户的忠诚度。 4.通过对缺陷进行分析,找出缺陷发生的根本原因(软件过程中的问题,包括错误的行为方式)或总结出软件产品的缺陷模式,避免将来犯同样的错误或产生类似的产品问题,达到缺陷预防的目的 4.软件测试与软件开发的关系? 答:软件开发是一个系统的工程。包括需求分析,设计,编码,测试,维护等等几个环节。测试是整个软件开发流程中的一个环节。 5.简述软件测试过程v模型和w模型的主要区别: V模型是软件开发完了之后才开始测试活动。 而W模型则是软件测试活动伴随着软件开发活动。和软件开发同时开展。 W模型更加敏捷,对于软件的交付期和品质的保证能力更强。 精品文档. 精品文档第二章 6.测试计划的目的是什么?答:软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试

相关文档
最新文档