一、简答题(45分)
1. 简要回答软件测试的目的和原则(至少列出5条原则)。(10分)
答:软件测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。测试是为了证明程序有错,而不是证明程序无错。一个成功的测试是发现了至今未发现的错误的测试。软件测试的原则包括:所有的测试都应追溯到用户的需求;尽早地和不断地进行软件测试;不可能完全的测试,因为输入量太大,执行路径太多;注意测试中的群集现象;避免测试自己的程序;设计周密的测试用例,等等。 2. 你认为一个优秀的测试工程师应该具备哪些基本素质和专业素质?并说明理由。(10分)
答:一个优秀的测试工程师应该具备的基本素质有:责任心、沟通能力、团队精神、自信心、耐心、怀疑精神、洞察力、幽默感等。(5分)应具备的专业素质有:有竞争力的测试人员要具有三方面的技能:计算机专业技能、测试专业技能、软件编程技能。
3. 什么是单元测试?什么是集成测试?什么是系统测试?他们的测试依据是什么?(15 分)
单元测试又称模块测试,是针对软件设计的最小单位——程序模块,进行正确性检验的测试工作。单元测试重点检查模块内部代码的问题。单元测试需要从程序的内部结构出发设计测试用例,因此其测试依据是详细设计说明书和程序源代码。
集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设 计要求组装成为子系统或系统,进行集成测试。集成测试重点检测与接口有关的各种故障。 集成测试的依据主要是概要设计和需求规格说明书。)
系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。系统测试重点验证系统是否达到规格说明书上要求的功能和性能。系统测试的依据主要是产品系统的需求规格说明书、各种规范、标准和协议等。
4. 黑盒测试(功能性测试)有哪几种方法?并简单描述各种方法的特点。(10分) 黑盒测试的方法主要有边界值分析法、等价类划分法、因果图法、决策表测试法等。
边界值分析利用输入变量的最小值、略大于最小值、输入值域内的任意值、略小于最大值和最大值来设计测试用例。
等价类划分法是把程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据当作测试用例。经过类别的划分后,每一类的代表性数据在测试中的作用都等价于这一类中的其他值。
因果图方法就是从程序规格说明书的描述中找出因(输入条件)和果(输出结果),将因果图转换为决策表,最后为决策表中的每一列设计一个测试用例。这种方法考虑到了输入情况各种组合以及各个输入情况之间的相互制约关系。
在所有的黑盒测试方法中,基于决策表的测试是最为严格、最具有逻辑性的。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。决策表法很适合测试这类问题。 二、设计题(55分)
1. 某公司招聘人员,其要求为:学历:本科及以上;专业:计算机、通信、自动化;年龄:22-30岁。请划分出各条件的有效等价类和无效等价类。(10分) 答:学历的等价类:A1={本科,硕士,博士},
A2={专科,高中,初中,小学,无}
专业的等价类:B1={计算机、通信、自动化}, B2={其他} 年龄的等价类:C1={22-30岁},C2={小于22岁},C3={大于30岁} 2. 某个软件的规格说明中包含了下面的要求:第一例字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文字的修改。但如果第一列字符不正确,则给出信息L,如果第二列字符非数字,则给出信息M。请用基于决策表的测试方法进行测试,并设计测试用例覆盖每一种情况。(15分)
答:输入条件:第一列字符:{A},{B},{其他};第二列字符:{数字},{其他} 动作:修改文件,给出L,给出M。
决策表如下表所示。 条件 动作 第一列 A 第二列 数字 修改文件 √ 给出L B 数字 √ 其他 数字 √ A 其他 B 其他 其他 其他 √ 给出M 测试用例 A6 B2 M1 √ A! √ B% √ V+ 3. 使用逻辑覆盖测试方法测试以下程序段。(15分)
void Do (int X,int A,int B) {
1 if ( (A<4)&&(B=5) ) 2 X=X/A;
3 if ( (A=2) || (X>1) ) 4 X=X+1; 5 }
说明:程序段中每行开头的数字( 1至5 )是对每条语句的编号。
(1)画出程序的控制流图(用题中给出的语句编号表示)。
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。 答:(1)程序段的控制流图如图1所示。
(2)设计的测试用例如下表所示:
语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 测试数据 X=4、A=2、B=5 X=4、A=2、B=5 X=1、A=5、B=0 X=3、A=5、B=0 X=1、A=2、B=5 X=4、A=2、B=5 X=1、A=5、B=0 执行路径 1→2→3→4→5 1→2→3→4→5 1→3→5 1→3→4→5 1→3→4→5 1→2→3→4→5 1→3→5 图1