软件测试工程师笔试题及答案(二)

测试人员考试试卷二(考试时间90分钟,满分100分)


一、 判断题(每题2分,正确的“√”,错误的“╳”) 


1 、 好的测试员不懈追求完美。(×) 


2、 测试程序仅仅按预期方式运行就行了。(×) 


3、 不存在质量很高但可靠性很差的产品。(×) 


4、 软件测试员可以对产品说明书进行白盒测试。(×) 


5、 静态白盒测试可以找出遗漏之处和问题。(√) 


6、 总是首先设计白盒测试用例。( ) 


7、 可以发布具有配置缺陷的软件产品。(×) 


8、 所有软件必须进行某种程度的兼容性测试。(√) 


9、 所有软件都有一个用户界面,因此必须测试易用性。(√) 


10、 测试组负责软件质量。(√) 


二、 简答题 


1、 软件的缺陷等级应如何划分?(3 分)


1.致命错误,可能导致本模块以及其他相关模块异常,死机等问题;   


2.严重错误,问题局限在本模块,导致模块功能失效或异常退出    


3.一般错误,模块功能部分失效;  
  
4.建议问题,由问题提出人对测试对象的改进意见;


2、 如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么?(5 分) 


任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。    


黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。


白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。   
 
软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规


格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:    


1、是否有不正确或遗漏的功能?    


2、在接口上,输入是否能正确的接受?能否输出正确的结果?    


3、是否有数据结构错误或外部信息(例如数据文件)访问错误?    


4、性能上是否能够满足要求?    


5、是否有初始化或终止性错误?    


软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测


试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主


要是想对程序模块进行如下检查:    


1、对程序模块的所有独立的执行路径至少测试一遍。    


2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。   


3、在循环的边界和运行的界限内执行循环体。   


4、测试内部数据结构的有效性,等等。    


以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不


能说明程序中没有错误。

3、 你认为一个优秀的测试工程师应该具备哪些素质?(3 分)


  (自主多答)


4、 产品测试到什么时候就算是足够了?(2 分) 


测试一直贯穿软件的整个生命周期,从需求、设计到编码、实现一直到软件的最终交付用户。并不等于软件的调试。只要用户满意。


5、 测试计划的目的是什么?(2 分) 


软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软


件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种


变更。


6、 为什么要进行软件测试?软件测试的目的是什么? (5 分) 


因为软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出


现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。


软件测试的目的:第一是确认软件的质量,其一方面是确认软件做了你所期望做的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个


事情(Do it right)。第二是提供信息,比如提供给开发人员或程序经理的回馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件软件产品本身,而且还


包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此,软件测试的第三个目的是保证整个软件开发过


程是高质量的。


7、软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?(5 分) 


大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步骤:
   
测试计划,测试设计,用例设计,执行结果,测试报告
   
初始测试集中在每个模块上,保证源代码的正确性,该阶段成为单元测试,主要用白盒测试方法。接下来是模块集成和集成以便组成完整的软件包。集成测试集中在证实


和程序构成问题上。 主要采用黑盒测试方法,辅之以白盒测试方法。软件集成后,需要完成确认和系统测试。确认测试提供软件满足所有功能、性能需求的最后保证。


确认测试仅仅应用黑盒测试方法。
  
 单元测试  
  
单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成


单位的正确性。
  
集成测试  
  
集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。
  
系统测试 
  
系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务


,它被称为测试的“先知者问题”。
   
验收测试  
   
验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集.
   
回归测试  
  
 回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。


8、 如何做一名合格的测试人员?(3 分) 
 (自主多答)


9、针对缺陷采取怎样的管理措施?(5 分) 


1. 要更好的管理缺陷,必须引入缺陷管理工具,商用的或者开源的都可。    


2. 根据缺陷的生命周期,考虑缺陷提交的管理、缺陷状态的管理和缺陷分析的管理。    


3. 所有发现的缺陷(不管是测试发现的还是走读代码发现的)都必须全部即时的、准确的提交到缺陷管理工具中,这是缺陷提交的管理。    


4. 缺陷提交后,需要即时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的状态, 帮助缺陷的尽快解决。缺陷解决后需要即时对缺陷的修复进行验证。这样


的目的有两个:一个是让缺陷尽快解决;二是方便后面缺陷的分析(保证缺陷相关的信息准确,如龄期等),这是缺陷状态的管理。 


5. 为了更好的改进开发过程和测试过程,需要对缺陷进行分析,总结如缺陷的类别、缺陷的龄期分布等信息,这是缺陷分析的管理。


三、 专业词语解释(每题2 分) 


α测试: 测试人员用用户提供的数据,而不是模拟数据进行测试;测试整个系统,以保 证其达到可以交付使用的状态。(内部人员)


β测试: 指将软件安装在一些潜在的客户处,由客户们根据实际使用情况将遇到的问题 报告出来的测试方法。


驱动模块: 驱动模块在大多数场合称为"主程序",它接收测试数据并将这些数据传递到被测试模块.单元测试一个函数单元时,被测单元本身是不能独立运行的,需要为其


传送数据,为此写驱动   驱动模块主要完成以下事情:    


1、接受测试输入;    


2、对输入进行判断;    


3、将输入传给被测单元,驱动被测单元执行;    


4、接受被测单元执行结果,并对结果进行判断;   


5、将判断结果作为用例执行结果输出测试报告。


桩模块:比如对函数A做单元测试时,被测的函数单元下还包括了一个函数B,为了更好的错误,定位错误,就要为函数B写桩,来模拟函数B的功能,保证其正确。 


白盒测试:根据软件内部的工作原理分析来进行测试,基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,


黑盒测试:指测试人员不关心程序具体如何实现的一种测试方法。 根据软件的规格对软件进行各种输入和观察软件的各种输出结果来发现软件的缺陷的测试,这类测试不


考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。


静态测试:在不运行程序的情况下,对软件进行测试的方法称为静态测试,如源代码走 查、文档测试等都属于静态测试。 


四、 选择题(每题2分) 


1.下面哪些属于动态分析(ABCD) 


A. 代码覆盖率 


B. 模块功能检查 


C. 系统压力测试 


D. 程序数据流分析 


2.下面哪些属于静态分析(ABC) 


A、 代码规则检查 


B、 序结构分析 


C、 序复杂度分析 


D、 内存泄漏 


五、 设计题(10分) 


在三角形计算中,要求三角型的三个边长:A、B 和C。当三边不可能构成三角形时提示错误,可构成三角


形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。画出程


序流程图、控制流程图、找出基本测试路径 ,对此设计一个测试用例。 


一、等价类划分:三角形三条边A、B、C的数据类型不同


二、边界值分析:由于三角形的边长可以是正整数或正小数,所以就不对长度进行测试,那么边界值分析就不用了
    
  三、因果图法:三角形的三条边数据输入组合
         
 我们看一下三角形的流程图:
                
    
 我们再分析一下三角形的等价类:
     
 有效等价类:
                        输入3个正整数或正小数:
                          1、两数之和大于第三数,如A<B+C;B<C+A;C<A+B
                          2、两数之和不大于第三数
                          3、两数相等,如A=B或B=C或C=A
                          4、三数相等,如A=B=C
                          5、三数不相等,如A!=B,B!=C,C!=A
    无效等价类:
                           1、空
                           2、负整数
                           3、非数字                           
                           4、少于三个数
三角形测试用例类别


输入条件 有效等价类 无效等价类


是否是三角形 


(A>0)   (1)
(B>0)   (2)
(C>0)   (3)
(A+B>C)   (4)
(B+C>A)   (5)
(C+A>B)   (6) (A<=0)   (7)
(B<=0)   (8)
(C<=0)   (9)
(A+B<=C)   (10)
(B+C<=A)   (11)
(C+A<=B)   (12)


是否是等腰三角形 


(A=B)   (13)     
(B=C)   (14)
(C=A)   (15) (A!=B)and(B!=C)and(C!=A)      (16)


是否是等腰直角三角形 (A=B)and(A2+B2=C2)   (17)


(B=C)and(B2+C2=A2)   (18)   
(C=A)and(C2+A2=B2)    (19) (A!=B)and(B!=C)and(C!=A)     (20)


是否是等边三角形 (A=B)and(B=C)and(C=A)     (21) (A!=B)      (22)


(B!=C)     (23)
(C!=A)     (24)


三角形测试用例:


序号 [A,B,C] 覆盖等价类 输出


1 [3,4,5] (1)(2)(3)(4)(5)(6) 是三角形
2 [0,1,2] (7) 非三角形
3 [1,0,2] (8) 非三角形
4 [1,2,0] (9) 非三角形
5 [1,2,3] (10) 非三角形
6 [1,3,2] (11) 非三角形
7 [3,1,2] (12) 非三角形
8 [3,3,4] (1)(2)(3)(4)(5)(6)(13) 等腰三角形
9 [3,4,4] (1)(2)(3)(4)(5)(6)(14) 等腰三角形
10 [3,4,3] (1)(2)(3)(4)(5)(6)(15) 等腰三角形
11 [2√2,2√2,4] (1)(2)(3)(4)(5)(6)(17) 等腰直角三角形
12 [4,2√2,2√2] (1)(2)(3)(4)(5)(6)(18) 等腰直角三角形
13 [2√2,4,2√2] (1)(2)(3)(4)(5)(6)(19) 等腰直角三角形
14 [3,4,5] (1)(2)(3)(4)(5)(6)(16)(20)(22)(23)(24) 是三角形
15 [3,3,3] (1)(2)(3)(4)(5)(6)(16)(21) 等边三角形
16 [,,,] 无效等价类 错误提示
17 [-3,4,5] 无效等价类 错误提示
18 [a,3,@] 无效等价类 错误提示
19 [3,4] 无效等价类 错误提示


六、 论述题 


1、 试叙述对一个软件项目测试的全过程。(10 分)


随意选取一个简单物品,假定是一个喝水的带广告图案的花纸杯,让应聘人对它设计出尽可能多的测试用例。   


测试项目:杯子  


需求测试:查看杯子使用说明书   


界面测试:查看杯子外观   


功能度:用水杯装水看漏不漏;水能不能被喝到   


安全性:杯子有没有毒或细菌   


可靠性:杯子从不同高度落下的损坏程度   


可移植性:杯子再不同的地方、温度等环境下是否都可以正常使用兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
 
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用


用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
 
疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等


压力测试:用根针并在针上面不断加重量,看压强多大时会穿透   


跌落测试: 杯子加包装(有填充物),在多高的情况摔下不破损   


震动测试: 杯子加包装(有填充物),六面震动,检查产品是否能应对恶劣的铁路\公路\航空运输  


测试数据:测试数据具体编写此处略(最讨厌写测试数据了)。其中应用到:场景法、等价类划分法、因果图法、错误推测法、边界值法等方法  


期望输出:该期望输出需查阅国标、行标以及使用用户的需求   


说明书测试: 检查说明书书写准确性 


2、 简述你对测试工作的认识过程、在以后的工作的一些建议。(6 分)
(自主答) 


3 、 述静态测试和动态测试的区别?(5 分) 


静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序


做结构分析、流程图分析、符号执行来找错。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递


归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。 动态测试方法是指通过运行被测程序,检查运行


结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果

猜你喜欢

转载自blog.csdn.net/tiamo_hl/article/details/71405053