当前位置:文档之家› 软件测试技术复习题

软件测试技术复习题

软件测试技术复习题(1004)一、基本要求1、软件测试概述(1)软件可靠性问题、软件缺陷与故障、软件缺陷产生的原因(2)软件测试基本概念(3)软件开发过程(4)软件测试过程、软件开发与软件测试的关系(5)软件质量与软件质量管理的概念2、软件测试策略与过程(1)软件测试的复杂性概念(2)软件测试方法与策略:静态测试与动态测试、黑盒测试与白盒测试(3)软件测试过程:单元测试、集成测试、确认测试、系统测试、验收测试(4)面向对象的软件测试(5)软件调试的概念、软件测试与调试的关系3、功能(黑盒)测试及其用例设计(1)黑盒测试法的概念(2)三角形问题、NextDate 函数问题(3)等价类划分法(4)边界值分析法(5)因果图法(6)决策表法(7)黑盒测试应用案例4、结构(白盒)测试及其用例设计(1)白盒测试法的概念(2)控制流图、环形复杂度、图矩阵(3)覆盖测试:函数覆盖、条件覆盖、路径覆盖、面向对象的覆盖(4)路径测试:基本路径测试方法、循环测试方法(5)白盒测试应用案例5、软件测试实际应用(1)客户机/ 服务器系统的软件测试:客户机/服务器系统的结构测试、网站测试(2)面向对象的软件测试:面向对象的软件测试模型、基于类的测试(3)图形用户界面测试:窗体测试、菜单测试、数据项测试(4)实时系统性能测试(5)场景法应用案例6、软件测试管理(1)软件测试组织管理(2)软件测试计划和过程管理:制定测试计划、确定测试过程、测试结果分析(3)软件测试文档管理7、软件自动化测试(1)软件自动化测试基础:自动化测试概念、自动化测试脚本、自动化测试生存周期(2)软件自动化测试工具:白盒测试工具、黑盒测试工具二、基本概念1、软件测试是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查。

软件测试所涉及的关键问题包括四个方面:测试人员、测试内容、测试时间和测试方法。

2、软件测试过程中需要三类输入:软件配置、测试配置和测试工具。

软件测试所涉及的关键问题包括四个方面:测试人员、测试内容、(测试时间)和测试方法。

3、IEEE 将软件可靠性定义为:系统在特定环境下,在给定的时间内无故障运行的概率。

根据软件测试的定义,软件测试是为了发现错误而执行程序的过程。

4、基于Web 的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合适。

5、面向对象单元测试针对程序内部具体单一功能的模块进行测试。

从测试的角度来看,继承提供一种机制,通过这种机制,潜在的错误能够从一个类传递到它的派生类。

6、使用白盒测试工具所发现的故障可以定位到代码级。

7、等价类是输入域的某个子集合,而所有等价类的并集就是整个输入域。

因此,等价类的划分原则应该体现完备性和无冗余性。

8、基于Web 的系统测试重要的是,从最终用户的角度进行安全性和可用性测试9、有效的Web压力测试系统的关键条件中,量级指的是尽量使单独的操作进行高强度的使用,增加操作的量级。

10、对OOP的测试重点集中在类功能的实现和相应的面向对象程序架构上,主要表现之一为数据成员是否满足数据封装的要求。

11、面向对象技术的特点给测试带来的新问题具体表现有多态和动态绑定增加了系统运行中可能的执行路径,而且给面向对象软件带来了严重的不确定性。

对OOP勺测试重点集中在类功能的实现和相应的面向对象程序架构上。

12、测试大纲是软件测试的依据,包括测试项目、测试步骤、测试完成的标准。

13、动态测试工具需要实际运行被测系统,并设置断点,向代码生成的(可执行)文件中插入一些监测代码。

14、C/S 体系结构的软件测试通常是从单个客户端开始,然后再逐步集成客户端、服务器和网络系统进行集成测试,最后进行系统的整体测试。

15、静态测试分析主要集中在需求文档、设计文档以及程序结构方面。

16、对Web网站测试所采用的测试方法与策略除了黑盒测试、白盒测试、静态测试和动态测试都有可能用到外,还会包括面向对象测试技术的运用。

17、软件可靠性是对软件在设计、开发以及所预定的环境下具有能力的置信度的一个度量,是衡量软件质量的主要参数之一。

18、按照软件测试的策略和过程分类,软件测试可分为单元测试、集成测试、系统测试、验证测试和确认测试。

在软件测试中,对已测试过的模块进行组装,目的在于检验与软件设计相关的程序结构问题的测试称为集成测试。

19、实时系统测试的一般步骤:任务测试、行为测试、任务间测试和系统测试。

20、为了达到1 00 %的基于状态的上下文覆盖,例行程序必须在每个适当的上下文内被执行。

三、简答题1、应用条件/ 判定覆盖进行路径测试可能发现的错误。

针对判定和条件覆盖,测试用例可能发现如下错误:(1)不同数据类型的比较;(2)不正确的逻辑操作或优先级;(3)应当相等的地方由于精确度的错误而不能相等;(4)不正确的判定或不正确的变量;(5)不正确的或不存在的循环终止;(6)当遇到分支循环时不能退出;不适当地修改循环变量。

2、简述软件测试报告的内容。

软件测试报告是软件测试过程中最重要的文档,它的内容包括:(1)记录问题发生的环境(2)记录问题的再现步骤(3)记录问题性质的说明(4)记录问题的处理进程3、测试过程中必需的基本测试活动有哪些。

(1)拟定软件测试计划(2)编制软件测试大纲(3)设计和生成测试用例(4)实施测试(5)生成软件测试报告4、确定软件测试策略时的参考原则。

(1)在任何情况下都必须采用边界值分析法。

这种方法设计出的测试用例发现程序错误的能力最强。

(2)必要时采用等价类划分法补充测试用例。

(3)采用错误推断法再追加测试用例。

(4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。

如果没有达到要求的覆盖标准,则应当再补充更多的测试用例。

(5)如果程序的功能说明中含有输入条件的组合情况,则应一开始就选用因果图法。

5、简述软件自动化测试中的脚本技术脚本是一组测试工具执行的指令集合,也是计算机程序的一种形式。

脚本可以通过录制测试的操作产生,然后再做修改,这样可以减少脚本编程的工作量。

当然,也可以直接用脚本语言编写脚本。

脚本技术可以分为以下几类:线性脚本——是录制手工执行的测试用例得到的脚本。

结构化脚本——类似于结构化程序设计,具有各种逻辑结构(顺序、分支、循环)而且具有函数调用功能。

共享脚本——是指某个脚本可被多个测试用例使用,即脚本语言允许一个脚本调用另一个脚本。

数据驱动脚本——将测试输入存储在独立的数据文件中。

关键字驱动脚本——是数据驱动脚本的逻辑扩展。

6、在单元测试时,如果模块不是独立的程序,需要设置一些辅助测试模块。

简述两种辅助测试模块的作用。

驱动模块:用来模拟被测试模块的上一级模块,相当于被测模块的主程序。

它接收数据,将相关数据传送给被测模块,启动被测模块,并打印出相应的结果。

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

它们一般只进行很少的数据处理。

7、简述由面向对象技术的特点给测试带来的新问题。

封装把数据及对数据的操作封装在一起,限制了对象属性对外的透明性和外界对它的操作权限,在某种程度上避免了对数据的非法操作,有效防止了故障的扩散。

但同时,封装机制也给测试数据的生成、测试路径的选取以及测试结构的分析带来了困难。

继承实现了共享父类中定义的数据和操作,同时也可定义新的特征。

子类是在新的环境中存在,所以父类的正确性不能保证子类的正确性。

继承使代码的重用率得到了提高,但同时也使故障的传播几率增加。

多态和动态绑定增加了系统运行中可能的执行路径,而且给面向对象软件带来了严重的不确定性,给测试覆盖率的活动带来新的困难。

8、Web压力测试的意义及有效的压力测试系统的关键条件。

(1)Web压力测试的意义压力测试是系统测试的一部分,通过应用很大的工作负载来使软件超负荷运转,其目的是要弄清楚被测试的Web服务是不是不仅能做预期应能做的事,而且在被施加了某些高强度压力的情况下仍能继续正常运行。

如果压力测试通过对软件保持高强度的使用(不超过性能统计数字确定的限制)能够有效执行,那么它就经常能够发现许多其它测试无法发现的隐蔽错误。

(2)有效的压力测试系统的关键条件①重复:就是一遍又一遍地执行某个操作或功能。

②并发:就是在同一时间内执行多个操作。

③量级:尽量使单独的操作进行高强度的使用,增加操作的量级。

④随机变化:随机使用前面条件中的无数变化形式,就能够在每次测试运行时应用许多不同的代码路径。

9、如何根据等价类的划分确定测试用例。

(1)首先为等价类表中的每一个等价类分别规定一个唯一的编号。

(2)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。

重复这个步骤,直到所有的有效等价类均被测试用例所覆盖。

(3)设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类。

重复这一步骤,直到所有的无效等价类均被测试用例所覆盖。

10、简述软件自动化测试中的“捕获-回放”技术(1)捕获:将用户每一步操作都记录下来。

这种记录的方式有两种:程序用户界面的像素坐标或程序显示对象(窗口、按钮、滚动条等)的位置,以及相对应的操作、状态变化或是属性变化。

所有的记录转换为一种脚本语言所描述的过程,以模拟用户的操作。

(2)回放:将脚本语言所描述的过程转换为屏幕上的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较。

这可以大大减轻黑盒测试的工作量,在迭代开发的过程中,能够很好地进行回归测试。

四、分析题1、阅读下面的问题说明:现在的软件系统几乎都是用事件触发来控制程序流程的。

事件触发时的情景便形成了场景,而同一事件不用的触发顺序和处理结果就形成了事件流。

事件流分为基本流和备选流,基本流是经过测试用例的从开始到结束的最简单、无差错的路径,备选流可以从基本流开始,也可以从另外的备选流开始,在某个特定条件下执行。

根据问题的描述确定程序的基本流和备选流,然后由基本流和备选流形成不同的场景,对每一个场景生成相应的测试用例。

这就是应用场景法进行测试用例设计的基本思想。

下面是对某ATM机应用系统的存款操作的基本流和备选流的描述。

备选流:试求:(1)设计场景(基本流用字母A表示,备选流用题干中描述的相应字母表示)。

场景格式示例如下:(2) 设计测试用例场景矩阵测试用例矩阵格式示例如下:(3) 假设本系统开发人员在开发过程中通过测试发现了20个错误,独立的测试组通过上述测试用例发现了80个软件错误,系统在上线后,用户反馈了10个错误,请计算缺陷探测率(DDP)。

(1)设计场景(2)设计测试用例场景矩阵(3)计算缺陷探测率(DDP)DDP=Bugstester (Bugstester+ Bugscustomer ) = (20+80) ( 20+80+10) =90% () 其中,Bugstester为测试者发现的错误数;Bugscustomer为客户发现并反馈技术支持人员进行修复的错误数。

相关主题