当前位置:文档之家› 软件测试技术基础课后习题答案

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

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

第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个数字符

对应数值⑤在19090101-19900101之间⑥<19090101

⑦>19900101

月份对应数值⑧在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-

test4100101

test510099

test650100

test751100

test890100

test991100

test1095100

test1196100

test1299100

test13100100

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预期输出

DT1412非三角形

DT2142非三角形

DT3124非三角形

DT4???不可能

DT5???不可能

DT6???不可能

DT7345直角三角形

DT8???不可能

DT9354直角三角形

DT10534直角三角形

DT11234非直角三角形

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.对图所示程序段进行语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖方法进行测试用例设计。

图4.14 练习题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

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

{

.

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

设计测试用例:

6.对如图4.15所示的N-S

图4.15 练习题6解:(2+2*2)*2=12

软件测试工程师高级视频教程

软件测试工程师高级视频教程 什么是软件测试?为什么有这么多人选择学习软件测试?软件测试有超强的预判能力,拯救用户,拯救软件,避免未来软件被用户无情卸载的命运。2018年软件测试将延续近两年火爆的发展势头,千锋出品的软件测试工程师高级视频教程,将为广大软件测试爱好者的高效自学提供可能。 下面就来说说千锋教育软件测试教学团队全新录制的5章视频教程都涵盖哪些内容。 软件测试工程师高级视频教程:https://www.doczj.com/doc/2d5296133.html,/s/1dFm5wbR 软件测试工程师高级视频教程第一章:在本章中,老王详细向学生们介绍了软件测试的历史,软件测试的目的,软件测试的对象、软件测试概念等具体知识。

让学生一方面逐步熟悉软件测试的一些经典理论和思想,另一方面结合知识概念从根本的角度理解软件测试是什么,以及软件测试的重要性。 软件测试工程师高级视频教程第二章:本章课程主要是向学生讲解软件测试过程模型。但为了让学生们更好的理解这个知识点,我们需要先去了解什么是软件的生命周期,软件生命周期都包含哪些具体活动?什么是软件开发的过程,软件开发团队的工作过程模型都有哪些。只有充分了解了这些内容,我们在学习软件测试过程模型的时候,才会更好的掌握相关的知识与概念。 软件测试工程师高级视频教程第三章:本集视频主要介绍了从开发角度划分的5类测试方法 软件测试工程师高级视频教程第四章:本章主要讲解软件测试计划的内容。测试计划是一切软件测试活动开始前的准备工作,通过对测试计划的分析与编写,实际是让相关参与者提前了解未来软件测试过程中应该重点关注的各项内容。所以所有软件测试工程师必备的一项技能。 软件测试工程师高级视频教程第五章:本章的内容主要带领各位同学去一起关注了解关于需求的各项知识。需求是测试工程师工作过程中的行动纲领,需要测什么,为什么需要测都是与需求中的具体要求相关。同时,需求过程中引入缺陷的几率很大,而发现后修复其的成本却很低,所以了解需求,掌握需求分析方法,熟练编写测试需求也是软件测试工程师的重要技能之一。 目前软件测试人才的缺口在30万人以上,IT行业国内外巨头正在加紧争夺软件测试人才,华为一次抛出50名软件测试人员的招聘大单,而联想、用友、

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

一,判断 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分) 答:模块接口、局部数据结构、边界条件、独立的路径和错误处理。五,设计题

软件测试技术经典教程笔记(修).docx

第一章基础知识 1.1、软件 1)、软件=程序+文档 2)、分类 功能:系统+应用 架构:单机+C/S+B/S 用户:产品+项目 规模:小型+中型+大型 1.2、Bug 1)、类型一(广义上,软件生命周期,与用户需求不符的问题): 完全没有实现的功能 基本实现功能,但有功能上或性能上的问题 实现了用户不需要的功能 2)、类型二(测试执行阶段的问题) Defect---------Requirements&Design Error-----------Development Bug------------Testing Failure---------Post production 1.3、测试 1)、概念: 测试是为了检验实际的软件是否符合用户需求,所以不能为了发现错误而发现错误。使用人工或自动手段,来运行或测试某个系统的过程。 2)、测试环境:硬件+软件+网络 要求:真实(项目、产品)+干净+无毒+独立(测试与开发) 1.4、测试用例 测试用例=输入+输出+测试环境 便于团队交流,便于重复测试,便于跟踪统计,比纳与用户自测 开发生命周期 需求分析→概要设计→详细设计→编码→维护 测试生命周期 测试计划→测试设计→测试执行→测试评估 需求分析和测试计划完成后,根据《系统需求规格说明书》和软件原型(DEMO)写测试用例 1.5 其他 1)、测试人员素质要求:细心、耐心、信心、服务意识、团队合作意识、沟通能力 2)、如何成为优秀的测试工程师:1、不断学习充电2、阅读原版书籍3、阅读缺陷管理系 统中的缺陷报告4、阅读高手写的测试用例5、学习产品相关 的业务知识

1.6 软件测试的基本规则 1) Zero Bug 与Good Enough Good Enough原则:不充分测试是不负责任,过分的测试是一种资源浪费。 参考:*遗留bug不超过10个,严重的不超过5个 *测试用例执行率为100%,通过率为95% *单元测试,关键模块语句覆盖率达到100%,分支覆盖率达到85% 2) 不要视图穷举法 3) 开发人员不能既是运动员又是裁判员 4) 软件测试要尽早执行 一般情况下,软件80%的缺陷集中在20%的模块中。 7) 缺陷具有免疫性 缺陷具有免疫性,需要根据新版本修改维护测试用例,另外,有一个值得注意的经验:没修复3-4个bug,可能会产生一个新bug。 第二章测试分类 2.1、是否运行程序 Static Testing------------代码规范、界面、文档 Dynamic Testing--------运行程序 2.2、根据阶段分类 Unit Testing(单元测试)----------10% 最小模块,依据源程序和《详细设计》 白盒测试人员||开发人员 编译代码→静态测试→动态测试 桩模块(Stub)、驱动模块(Driver) Integration Testing(集成测试)----------20% 模块间的接口,依据单元测试的模块和《概要设计》 白盒测试人员||开发人员 一般单元和集成同步进行 System Testing(系统测试)----------40% 整个系统(功能、性能、软硬件环境),依据《需求规格说明书》 黑盒测试工程师 Acceptance Testing(验收测试)----------20% 整个系统(功能、性能、软硬件环境),依据《需求规格说明书》和验收标准

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

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)

软件测试考试题目答案

注意:判断题第六题不用做。 测试题目 试题(一),满分120分 一、判断题(每题1分,正确的在括号内打T,错误的打F,输入其它任何符号或者不输入都视为0分,总共21分) 1.软件测试的目的是尽可能多的找出软件的缺陷。(T) 2.Beta 测试是验收测试的一种。(T) 3.验收测试是由最终用户来实施的。(F) 4.项目立项前测试人员不需要提交任何工件。(F) 5.单元测试能发现约80%的软件缺陷。(T) 6.代码评审是检查源代码是否达到模块设计的要求。(F) 7.自底向上集成需要测试员编写驱动程序。(T) 8.负载测试是验证要检验的系统的能力最高能达到什么程度。(T?) 9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(F) 10.代码评审员一般由测试员担任。(F)开发人员 11.我们可以人为的使得软件不存在配置问题。(F) 12.集成测试计划在需求分析阶段末提交。(F)项目计划 13、好的测试员不懈追求完美。( T) 14、测试程序仅仅按预期方式运行就行了。(F ) 15、静态检查就是看代码。( F) 16、软件测试员可以对产品说明书进行白盒测试。( F) 17、静态白盒测试可以找出遗漏之处和问题。( T) 18、理论上白盒测试可以发现软件所有的缺陷。(F) 19、可以发布具有配置缺陷的软件产品。(T) 20、软件必须进行某种程度的兼容性测试。( T) 21、所有软件都有一个用户界面,因此必须测试易用性。(F ) 二、填空题(第五题4分,其它每空1分,共20分) 1、软件=程序+数据+文档+服务。 2.设计系统测试计划需要参考的项目文档有。 3、代码评审主要做_代码审查_工作。 4、软件测试主要分为_单元,集成,系统,验收、四类测试。 5、测试人员A在测试中发现系统20个缺陷,测试人员B在系统中发现了30 缺陷,他们有5个缺陷是一样的,从理论上分析,系统大概存在120个缺陷? 6、网络通讯三个要素,包括协议、IP、端口。 7、在32位的系统中,int a,char b分别占用4、1字节。 三、专业词语解释(每题2 分,16分) 1、β测试: 2、桩模块:

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

太原理工大学软件测试技术 适用专业:软件工程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. 测试错误提示信息不属于文档测试范围。( ×)

软件测试笔试题

软件测试笔试题 01. 为什么要在一个团队中开展软件测试工作? 02. 您是否了解以往所工作的企业的软件测试过程?如果了解,请试述在这个过程中都有哪些工作要做?分别由哪些不同的角色来完成这些工作? 03. 您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?(对于软件测试部分,可以简述) 04. 您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?

05. 您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试) 06. 请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。 07. 测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的? 08. 您认为做好测试计划工作的关键是什么? 09. 您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 10. 您认为做好测试用例设计工作的关键是什么?

11. 请以您以往的实际工作为例,详细的描述一次测试用例设计的完整的过程。 12. 您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容。 13. 您以往是否曾经从事过性能测试工作?如果有,请尽可能的详细描述您以往的性能测试工作的完整过程。 14. 您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。 15. 您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?

最全软件测试基础教程(2011版)

软件测试基础教程 测试的基本概念 测试是软件生存周期中十分重要的一个过程,是产品发布、提交给最终用户前的稳定化阶段。 1、测试的分类: 从测试方法的角度可以分为手工测试和自动化测试。 手工测试:不使用任何测试工具,根据事先设计好的测试用例来运行系统,测试各功能模块。 自动化测试:利用测试工具,通过编写测试脚本和输入测试数据,自动运行测试程序。目前最常用的自动化测试工具是基于GUI的自动化测试工具,基本原理都是录制、回放技术。 从整体的角度可以分为单元测试、集成测试、系统测试、确认测试。 单元测试:是针对软件设计的最小单位—程序模块,进行正确性检验的测试工作。一般包括逻辑检查、结构检查、接口检查、出错处理、代码注释、输入校验、边界值检查。 单元测试的依据是系统的详细设计;一般由项目组开发人员自己完成。 集成测试:在单元测试的基础上,将所有模块按照设计要求组装进行测试。一般包括逻辑关系检查、数据关系检查、业务关系检查、模块间接口检查、外部接口检查。 系统测试:系统测试是在所有单元、集成测试后,对系统的功能及性能的总体测试。 确认测试:模拟用户运行的业务环境,运用黑盒测试方法,验证软件系统是否满足用户需求或软件需求说明书中指明的软件特性(功能、非功能)上的。 从测试原理上分为:白盒测试、黑盒测试和灰盒测试。 白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。 黑盒测试:是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。在测试时,把程序看作一个不能打开的黑盆子, 在完全不考虑程序内部结构和内部

软件测试试题及答案分析

单选 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分,共10分) 1. 测试是证明软件正确的方法。(╳) 2. 负载测试是验证要检验的系统的能力最高能达到什么程度。(√) 3. 测试中应该对有效和无效、期望和不期望的输入都要测试。(√) 4. 对于连锁型分支结构,若有n个判定语句,则有2n条路径。(√) 5. 验收测试是由最终用户来实施的。(√) 6. GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁。(√) 7. 测试人员要坚持原则,缺陷未修复完坚决不予通过。(√) 8. 黑盒测试也称为结构测试。(╳) 9. 代码评审员一般由测试员担任。(╳) 10. 集成测试计划在需求分析阶段末提交。(╳) 二、不定项选择题(每题可能有一个或多个选项应选,每题2分,共20分。多选不得分,少选仅得1分。) 1.软件验收测试的合格通过准则是:(AD ) A.软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。 B.所有测试项没有残余一级、二级和三级错误。 C.立项审批表、需求分析文档、设计文档和编码实现一致。 D.验收测试工件齐全。 2.软件测试计划评审会需要哪些人员参加?(ABCD ) A.项目经理 B.SQA 负责人 C.配置负责人 D.测试组 3.下列关于alpha 测试的描述中正确的是:(A D ) A.alpha 测试需要用户代表参加 B.alpha 测试不需要用户代表参加 C.alpha 测试是系统测试的一种 D.alpha 测试是验收测试的一种 4.测试设计员的职责有:(BC ) A.制定测试计划 B.设计测试用例 C.设计测试过程、脚本 D.评估测试活动 5.软件实施活动的进入准则是:(ABC ) A.需求工件已经被基线化 B.详细设计工件已经被基线化 C.构架工件已经被基线化 D.项目阶段成果已经被基线化 6、典型的瀑布模型的四个阶段是:(ABCD ) A、分析 B、设计 C、编码 D、测试 E、需求调研 F、实施 7.下面的哪一项测试步骤中需要进行局部数据结构测试:( A ) A、单元测试

软件测试技术基础课后习题答案[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.测试是调试的一个部分(╳) 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.测试错误提示信息不属于文档测试范围。(×) 33.代码评审是检查源代码是否达到模块设计的要求。(√) 34.总是首先设计黑盒测试用例。(√) 35.软件测试是有风险的行为,并非所有的软件缺陷都能够被修复。(∨) 36.软件质量保证和软件测试是同一层次的概念。(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)在单元测试中,桩程序模拟被测模块工作过程中所调用的下层模块。对

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

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、是否有不正确或遗漏的功能? 2、在接口上,输入是否能正确的接受?能否输出正确的结果? 3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

4、性能上是否能够满足要求? 5、是否有初始化或终止性错误? 软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查: 1、对程序模块的所有独立的执行路径至少测试一遍。 2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。 3、在循环的边界和运行的界限内执行循环体。 4、测试内部数据结构的有效性,等等。

软件测试笔试题

软件测试笔试题 软件测试题目 一、判断题(每题2分,20) 1、软件测试就是为了验证软件功能实现的是否正确,是否完成既定目标的活动,所以软件测试在软件工程的后期才开始具体的工作。(初级)(×) 2、发现错误多的模块,残留在模块中的错误也多。( √) (初级) 3、测试人员在测试过程中发现一处问题,如果问题影响不大,而自己又可以修改,应立即将此问题正确修改,以加快、提高开发的进程。(×)(初级) 4、单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。(√)(中级) 5、功能测试是系统测试的主要内容,检查系统的功能、性能是否与需求规格说明相同。(√)(中级) 6、软件质量管理即QM由QA和QC构成,软件测试属于QC的核心工作内容。(√)(高级) 7、软件测试只能发现错误,但不能保证测试后的软件没有错误。(√) 8、软件就是程序。(X) 9、测试只要做到语句覆盖和分支覆盖,就可以发现程序中的所有错误。(X) 10、I18N测试是指对产品做出具有国际性的规划,而L10N测试则是指对软件做出符合本地需求更改工作。(√)【高级】 二、选择题(每题2分20 ) 1、进行软件质量管理的重要性有:(ABCD)【中级】 A、维护降低成本 B、法律上的要求 C、市场竞争的需要 D、质量标准化的趋势 E、软件工程的需要 F、CMM过程的一部分 G、方便与客户进一步沟通为后期的实施打好基础

2、以测试的形态分测试可以分为:(ABC)【中级】 A、建构性测试 B、系统测试 C、专项测试 D、单元测试 E、组件测试 F、集成测试 3、选出属于黑盒测试方法的选项(ABC)【初级】 A、测试用例覆盖 B、输入覆盖 C、输出覆盖 D、分支覆盖 E、语句覆盖 F、条件覆盖 4、编写测试计划的目的是:(ABC)【中级】 A、使测试工作顺利进行 B、使项目参与人员沟通更舒畅 C、使测试工作更加系统化 D、软件工程以及软件过程的需要 E、软件过程规范化的要求 F、控制软件质量 5、依存关系有4种分别是:(ABCD)【高级】 A、开始-结束 B、开始-开始 C、结束-开始 D、结束-结束 E、开始-实施-结束 F、结束-审核-开始 6、软件质量管理(QM)应有质量保证(QA)和质量控制(QC)组成,下面的选项属于QC得是:(ABC)【高级】 A、测试 B、跟踪 C、监督 D、制定计划 E、需求审查 F、程序代码审查 7、实施缺陷跟踪的目的是:(ABCD)【中级】 A、软件质量无法控制 B、问题无法量化 C、重复问题接连产生 D、解决问题的知识无法保留 E、确保缺陷得到解决 F、使问题形成完整的闭环处理 8、使用软件测试工具的目的:(ABC)【中级】

软件测试技术基础教程(第2版)-习题答案

软件测试技术基础教程(第2版)-习题答案

第一章软件测试理论 一、选择题 1、C 2、A 3、D 4、B 5、D 6、 D 7、B 8、B 二、简答题 1. 参考答案: 软件测试是伴随着软件的产生而产生的。在软件行业发展初期,没有系统意义上的软件测试,更多的是一种类似调试的测试,测试用例的设计和选取也都是根据测试人员的经验随机进行的,大多数测试的目的是为了证明系统可以正常运行。 到了20世纪70年代以后,很多测试理论和测试方法应运而生,逐渐形成了一套完整的体系。在产业界,从20世纪70年代后期到20世纪80年代中期,很多软件企业成立了QA或者SQA部门。后来QA的职能转变为流程监控(包括监控测试流程),而测试(Testing)则从QA中分离出来成为独立的组织职能。 到了20世纪80年代初期,一些软件测试的基础理论和实用技术开始形成,软件测试作为软件

质量保证(SQA)的主要职能,包含软件质量评价的内容。软件测试已有了行业标准(IEEE/ANSI )。 在我国,软件测试目前还没有形成一个真正的产业,尚处于起步阶段。 但是,在国内,现在在软件测试行业中各种软件测试的方法、技术和标准都还在探索阶段。 总之,国内软件测试行业与一些发达国家相比还存在一定的差距。 2. 参考答案: 软件缺陷造成的修复费用随着时间的推移呈指数级地增长,如下图所示。 3. 参考答案: 软件测试的复杂性体现在:

?不可能对程序实现完全测试。 ?杀虫剂现象,即为了克服被测试软件的免疫力,软件测试员必须不断编写新的测试程 序,对程序的各个部分进行不断测试,以避 免被测试软件对单一的测试程序具有免疫 力而使软件缺陷不被发现。 ?软件测试的代价不容易掌握,因为随着测试量的增加,测试成本将呈几何数级上升,而 软件缺陷数量降低到某一数值之后将没有 明显的变化,寻求最优测试点,掌握好测试 工作量是至关重要的。 ?在实际操作过程中,测试人员要进行正确的判断,合理的取舍,根据风险分析来决定哪 些故障需要修复,哪些故障可以不修复,即 并不是所有的软件缺陷都需要被修复。 4. 参考答案: 软件测试是软件生命期中费用消耗最大的环节。测试费用除了测试的直接消耗外,还包括其他的相关费用。影响测试费用的主要因素有:(1)软件的功能,软件产品需要达到的标

《软件测试技术基础教程》习题解答

第一章软件测试理论 一、选择题 1. 软件测试的目的是 C 。 A.表明软件的正确性B.评价软件质量 C.尽可能发现软件中的错误D.判定软件是否合格 2. 下面关于软件测试的说法, A 是错误的。 A.软件测试是程序测试 B.软件测试贯穿于软件定义和开发的整个期间 C.需求规格说明、设计规格说明都是软件测试的对象 D.程序是软件测试的对象 3. 某软件公司在招聘软件评测师时,应聘者甲向公司做如下保证: ①经过自己测试的软件今后不会再出现问题; ②在工作中对所有程序员一视同仁,不会因为在某个程序员编写的程序中发现的问题多,就重点审查该程序,以免不利于团结; ③承诺不需要其他人员,自己就可以独立进行测试工作; ④发扬咬定青山不放松的精神,不把所有问题都找出来,决不罢休; 你认为应聘者甲的保证 B 。 A.①、④是正确的B.②是正确的 C.都是正确的D.都不正确 4. 软件测试的对象包括 B 。 A.目标程序和相关文档B.源程序、目标程序、数据及相关文档C.目标程序、操作系统和平台软件D.源程序和目标程序 5. 导致软件缺陷的原因有很多,①-④是可能的原因,其中最主要的原因包括 D 。 ①软件需求说明书编写的不全面,不完整,不准确,而且经常更改②软件设计说明书③软件操作人员的水平④开发人员不能很好的理解需求说明书和沟通不足 A.①、②、③B.①、③C.②、③D.①、④ 二、简答题 1.简述软件测试发展的历史及软件测试的现状。 参考答案: 软件测试是伴随着软件的产生而产生的。在软件行业发展初期,没有系统意义上的软件测试,更多的是一种类似调试的测试,测试用例的设计和选取也都是根据测试人员的经验随机进行的,大多数测试的目的是为了证明系统可以正常运行。 到了20世纪70年代以后,很多测试理论和测试方法应运而生,逐渐形成了一套完整的体系。在产业界,从20世纪70年代后期到20世纪80年代中期,很多软件企业成立了QA 或者SQA部门。后来QA的职能转变为流程监控(包括监控测试流程),而测试(Testing)则从QA中分离出来成为独立的组织职能。 到了20世纪80年代初期,一些软件测试的基础理论和实用技术开始形成,软件测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容。软件测试已有了行业标准(IEEE/ANSI )。 在我国,软件测试目前还没有形成一个真正的产业,尚处于起步阶段。 但是,在国内,现在在软件测试行业中各种软件测试的方法、技术和标准都还在探索阶段。

相关主题
文本预览
相关文档 最新文档