美文网首页
软件产品测试历年真题及答案

软件产品测试历年真题及答案

作者: 东也_ | 来源:发表于2021-10-14 18:16 被阅读0次

    试卷一

    一、单项选择题

    1.软件测试的目的 [是C]
    A.避免软件开发中出现的错误
    B.排除软件中潜在的错误
    C.发现软件开发中出现的错误
    D.修改软件中出现的错误
    2.下列BUG中最危险的 [是B]
    A.需求阶段的BUG
    B.配置阶段的BUG C.设计阶段的BUG D.分析阶段的BUG
    3.以程序的内部结构为基础的测试用例技术属于C
    A.灰盒测试 B.数据测试 C.白盒测试 D.黑盒测试
    4.配置测试是指C
    A.检查软件之间是否正确交互和共享信息
    B.交互适应性、实用性和有效性的集中体现
    C.使用各种硬件来测试软件操作的过程
    D.检查缺陷是否有效改正
    5.在边界值分析中,下列数据通常不用来做数据测试的 [是B]
    A.正好等于边界的值 B.等价类中的等价值 C.刚刚大于边界的值
    D.刚刚小于边界的值
    6.下列属于静态测试工具的 [是A]
    A.Logiscope B.TeamTest C.
    Robot D.WebLoad
    7.下列不属于黑盒测试的 [是A]
    A.基本路径测试法 B.等价类测试法 C.边界值分析法
    D.基于场景的测试方法
    8.在软件测试工具中,下面不属于动态测试工具类型的 [是A]
    A.错误检查 B.内存分析 C.覆盖测试
    D.接口测试
    9.软件设计阶段的测试主要采取的方式 [是A]
    A.评审 B.白盒测试 C.黑盒测试 D.动态测试
    10.在某大学学籍管理信息系统中,假设学生年龄的输入范围为16—40,则根据黑盒测试中的等价类划分技术,可划分为B
    A.2个有效等价类,2个无效等价类
    B.1个有效等价类,2个无效等价类
    C.2个有效等价类,1个无效等价类
    D.1个有效等价类,1个无效等价类
    11.调试 [是D]
    A.发现与预先定义的规格和标准不符合的问题
    B.发现软件错误征兆的过程 C.有计划的、可重复的过程 D.消除软件错误的过程
    12.下列不属于白盒测试的 [是C]
    A.单元测试 B.集成测试 C.系统测试
    D.回归测试
    13.主要测试系统在出现故障时,是否能够自动恢复或忽略故障继续运行的测试称为A
    A.健壮性测试 B.压力测试 C.GUI测试 D.兼容性测试
    14.如果一个判定中的复合条件表达式为(A>1)or(B<=3
    ),则为了达到100%的条件覆盖率,至少需要设计多少个测试用例B
    A.1 B.2 C.3 D.4
    15.下列测试方法根据输出对输入的依赖关系设计测试用例的 [是C]
    A.路径测试 B.等价类 C.因果图 D.归纳测试
    16.创建一个基于Junit的单元测试类,该类必须扩展于C
    A.TestSuite B.Assert C.TestCase D.JFCTestCase

    二、多项选择题

    17.软件自动化测试的优点 [是ABCE]
    A.速度快
    B.精确度高
    C.质量高
    D.能充分测试软件
    E.效率高
    18.静态测试包括ABD
    A.代码审查
    B.桌面检查
    C.调试
    D.走查
    E.跟踪漏洞
    19.下列属于黑盒测试工具的 [是ABC]
    A.WinRunner
    B.Robot
    C.WAS
    D.Logiscope
    E.Jtest
    20.在第四代语言(4GL),基本单元被划分为CD
    A.函数
    B.类
    C.菜单
    D.显示界面
    E.接口
    21.对于面向对象的应用系统来说,按集成粒度不同,可以把集成测试分为BD
    A.模块内集成测试
    B.类内集成测试
    C.子系统内集成测试
    D.类间集成测试
    E.子系统间集成测试
    22.集成测试中常见的风险包括ABDE
    A.技术风险
    B.人员风险
    C.项目风险
    D.管理风险
    E.市场风险
    23.下列属于静态分析的有ABCD
    A.语法分析器 B.符号执行器 C.软件检视 D.走读 E.路径测试
    24.健壮性测试用例设计的常用方法有BCE
    A.GUI测试
    B.故障插入测试 C.变体测试
    D.状态转换测试 E.错误猜测法
    25.下列测试中,可以采用白盒测试的 [是ACE]
    A.单元测试
    B.系统测试 C.集成测试
    D.Beta测试 E.回归测试
    26.测试文档种类包括ABCDE
    A.需求类文档 B.计划类文档 C.设计类文档 D.执行类文档 E.缺陷记录类

    三、填空题

    27.常常把与分析软件开发中的各种产品相关的测试活动称为
    静态测试

    28.集成测试是介于单元测试和
    系统测试
    之间的测试。
    29.实现接口和代码复用的有效机制是
    继承

    30.白盒测试是根据程序的
    内部逻辑
    来设计测试用例。
    31.构造所有面向对象程序的基本单位是


    32.边界值分析法属于
    黑盒测试

    33.单元测试是根据在
    详细设计
    阶段中产生的规格说明进行的。 34.程序员在编写代码时会出错,把这种错误称之为
    BUG

    35.在单元测试中,
    桩模块
    用来代替被测模块的子模块。
    36.集成测试主要是为了发现
    概要设计
    阶段的错误码。
    37.由因果图转换出来的
    判定表
    是确定测试用例的基础。
    38.通常情况下,类测试驱动程序是由
    程序员
    进行开发的。

    39.如何评估类测试的价值?

    一般来说,使用如下要素来进行测试价值的评估:
    (1)类本身的复杂程度; (2)类在整个系统中的层次; (3)开发该类测试驱动程序需要投入的成本; (4)类本身的风险程度。 假如某个类是系统中必不可少的部分,那么即使该类的测试驱动程序的开发成本很高,也要对其进行充分的测试。可以说,类在结构中的层次越高,其测试价值就越高;类被继承的次数越多其测试价值越高,当然,这个类的执行风险就越大。

    40.简述集成测试过程。

    根据集成测试不同阶段的任务,可以把集成测试划分为5个阶段:
    (1)制定集成测试计划;
    (2)设计集成测试;
    (3)实施集成测试;
    (4)执行集成测试;
    (5)评估集成测试;

    41.简述测试用例在软件测试中的作用。

    (1)指导测试的实施;
    (2)规划测试数据的准备;
    (3)评估测试结果的度量基准;
    (4)分析缺陷的标准;
    (5)编写测试脚本的“设计规格说明书”。

    42.简述Junit的优点。

    (1)提升程序代码质量的同时,能加快编程速度;
    (2)使用简单而且免费、开发测试成本低;
    (3)能够检验测试结果并立即提供反馈;
    (4)可以组织成一个有层次的测试系列框架;
    (5)使用Java语言开发;
    (6)提升软件的稳定性。

    43.如何根据等价类的划分确定测试用例?

    (1)首先为等价类表中的每一个等价类分别规定一个唯一的编号;
    (2)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。重复这个步骤,直到所有的有效等价类均被测试用例所覆盖;
    (3)设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类。重复这个步骤,直到所有的无效等价类均被测试用例所覆盖。

    44.简述自动化测试的优点。

    (1)对程序的新版本运行回归测试;
    (2)可以运行更多更频繁的测试;
    (3)可以进行一些手工测试难以完成或不可能完成的测试;
    (4)充分地利用资源;
    (5)测试具有一致性和可重复性;
    (6)增强软件可靠性,缩短软件发布时间。

    五、综合应用题

    45.试论述测试用例的重要性。

    (1)有效性:测试用例是测试人员测试过程中的重要参考依据。不同的测试人员根据相同的测试用例所得到的输出应该是一致的,对于准确的测试用例的计划、执行和跟踪是测试的有效性的有力证明。
    (2)可复用性:良好的测试用例具有重复使用的功能,使得测试过程事半功倍。测试是不可能进行穷举测试的,因此,设计良好的测试用例将大大节约时间,提高测试效率。 (3)易组织性:即使是很小的项目,也可能会有几千甚至更多的测试用例,测试用例可能在数月甚至几年的测试过程中被创建和使用,正确的测试计划会很好地组织这些测试用例并提供给测试人员或者其他项目的人参考和有效地使用。
    (4)可评估性:从测试的项目管理角度来说,测试用例的通过率是检验代码质量的保证。经常说代码的质量不高或者代码的质量很好,量化的标准应该是测试用例的通过率和软件错误(bug)的数目。
    (5)可管理性:测试用例也可以作为检验测试人员进度、工作量以及跟踪/管理测试人员的工作效率的因素,尤其是比较适用于对于新的测试人员的检验,从而更加合理作出测试安排和计划。

    46.请按照条件覆盖方法为下述语句设计测试用例,并写出测试过程。
    if((a>1)and(b=0)) then  
        x=x/a
    if((a=2)or(x>1) then    
        x=x+1
    

    条件覆盖:在上述程序段中,第一个判断应考虑到: a>1取真值,记为Ta1; a>1取假值,即a<=1时,记为Ta2; b=0取真值,记为Tb1; b=0取假值,即b!=0时,记为Tb2; 第二个判断应考虑到: a=2取真值,记为Ta3; a=2取假值,即a!=2时,记为Ta4; x>1取真值,记为Tx1; x>1取假值,即x<=1时,记为Tx2;
    条件覆盖测试用例 测试用例 a b x 路径 覆盖条件:
    CASE4 2 0 3 ace Ta1,Tb1,Ta3,Tx1
    CASE5 1 1 1 abd Ta2,Tb2,Ta4,
    Tx2 以上两个测试用例把4个条件的8种情况均做了覆盖。

    47.你认为编写测试代码有哪些技巧?

    (1)不要用TestCase的构造函数初始化Fixture,而要用setUp()和tearDown()方法。
    (2)不要依赖或假定测试运行的顺序,因为Junit利用Vector保存测试方法,所以不同的平台会按不同的顺序从Vector中取出测试方法。
    (3)避免编写有副作用的TestCase。
    (4)当继承一个测试类时,记得调用父类的setUp()和tearDown()方法。
    (5)将测试代码和工作代码放在一起,以便同步编译和更新
    (6)测试类和测试方法应该有一致的命名方案。
    (7)确保测试与时间无关,不要使用过期的数据进行测试,这会导致在随后的维护过程中很难重现测试。
    (8)如果编写的软件面向国际市场,编写测试时要考虑国际化的因素,不要仅用母语的Locale进行测试。
    (9)尽可能地利用Junit提供的assert/fail方法以及异常处理的方法,可以使代码更为简洁。
    (10)测试要尽可能地小,执行速度快。

    试卷二


    一、单项选择题

    1.下列软件属性中,软件产品首先要满足的 [是A]
    A.功能需求 B.性能需求 C.灵活性 D.纠错能力
    2.单元测试中设计测试用例的依据 [是D]
    A.概要设计规格说明书 B.用户需求规格说明书 C.项目计划说明书 D.详细设计规格说明书
    3.大多数实际情况下,性能测试的实现方法 [是A]
    A.黑盒测试 B.白盒测试 C.动态测试 D.单元测试
    4.下列测试覆盖最弱的 [是C]
    A.条件覆盖 B.条件组合覆盖 C.语句覆盖 D.判定覆盖
    5.软件测试中最基础的环节 [是B]
    A.集成测试 B.单元测试 C.目的测试 D.确认测试
    6.下列不属于软件缺陷的 [是A]
    A.测试人员主观认为不合理的地方 B.软件未达到产品说明书标明的功能 C.软件出现了产品说明书指明不会出现的错误 D.软件出现了产品说明书指明不会出现的错误
    7.在软件修改之后,再次运行以前为发现错误而执行程序曾用过的测试用例,这种测试称之为C
    A.单元测试 B.集成测试 C.回归测试 D.验收测试
    8.下列BUG中最危险的 [是B] A.需求阶段的BUG B.配置阶段的BUG C.设计阶段的BUG D.分析阶段的BUG
    9.主要测试系统在出现故障时,是否能够自动恢复或忽略故障继续运行的测试称为A
    A.健壮性测试 B.压力测试
    软件产品测试靠谱软件产品测试
    C.GUI测试 D.兼容性测试
    10.下列属于静态测试工具的 [是A] A.Logiscope B.TeamTest C.Robot D.WebLoad
    11.在某大学学籍管理信息系统中,假设学生年龄的输入范围为16—40,则根据黑盒测试中的等价类划分技术,可划分为B
    A.2个有效等价类,2个无效等价类 B.1个有效等价类,2个无效等价类 C.2个有效等价类,1个无效等价类 D.1个有效等价类,1个无效等价类
    12.软件测试管理包括测试过程管理、配置管理以及A
    A.测试评审管理 B.测试用例管理 C.测试计划管理 D.测试实施管理
    13.必须要求用户参与的测试阶段 [是C]
    A.单元测试 B.集成测试 C.验收测试 D.确认测试
    14.条件覆盖的目的 [是A]
    A.使每个判定的所有可能的条件取值组合至少执行一次 B.使程序中的每个判定至少都获得一次“真”值和“假”值 C.使程序中的每个判定中每个条件的可能值至少满足一次 D.使程序中的每个可执行语句至少执行一次
    15.通常用于嵌入式系统和面向对象系统的集成方式 [是A]
    A.基于消息的集成 B.基于使用的集成 C.高频集成 D.混合集成

    多选题

    16.静态测试包括ABD
    A.代码审查 B.桌面检查 C.调试 D.走查 E.跟踪漏洞
    17.下列测试中,可以采用白盒测试的 [是ACE]
    A.单元测试 B.系统测试 C.集成测试 D.Beta测试 E.回归测试
    18.容量测试中常用的测试用例设计方法有ABD
    A.规范导出法 B.边界值分析法 C.故障插入法 D.错误猜测法 E.风险测试法
    19.测试设计员的职责有BC
    A.制定测试计划 B.设计测试用例 C.设计测试过程、脚本 D.评估测试活动 E.设计类文档
    20.GUI测试的内容包括ABCE
    A.窗口 B.下拉式菜单
    C.鼠标操作 D.键盘操作 E.数据项

    填空题

    27.常常把与分析软件开发中的各种产品相关的测试活动称为
    静态测试

    28.集成测试是介于单元测试和
    系统测试
    之间的测试。
    29.实现接口和代码复用的有效机制是
    继承

    30.白盒测试是根据程序的
    内部逻辑
    来设计测试用例。
    31.构造所有面向对象程序的基本单位是


    32.边界值分析法属于
    黑盒测试

    33.单元测试是根据在
    详细设计
    阶段中产生的规格说明进行的。 34.程序员在编写代码时会出错,把这种错误称之为
    BUG

    35.在单元测试中,
    桩模块
    用来代替被测模块的子模块。
    36.集成测试主要是为了发现
    概要设计
    阶段的错误码。
    37.由因果图转换出来的
    判定表
    是确定测试用例的基础。
    38.通常情况下,类测试驱动程序是由
    程序员
    进行开发的。

    简答题

    31.简述测试用例在软件测试中的作用。

    (1)指导测试的实施;
    (2)规划测试数据的准备;
    (3)评估测试结果的度量基准;
    (4)分析缺陷的标准;
    (5)编写测试脚本的“设计规格说明书”。

    32.简述BUG的种类。

    (1)需求阶段的BUG;
    (2)分析设计阶段的BUG;
    (3)实现阶段的BUG;
    (4)配置阶段的BUG;
    (5)短视将来的BUG;
    (6)静态文档的BUG。

    33.简述调试与测试的区别。

    (1)调试由程序开发人员完成,测试由测试人员完成;
    (2)调试的目的是为了隔离和确认问题的所在,并加以解决,使程序能够正常运行;而测试的目的是为了找出与软件实现定义的规格和标准不符合的问题,保证软件能够满足用户需求;
    (3)调试的过程是随机的不可重复的;而测试的过程是有计划的、可以重复的。

    34.简述自底向上的单元测试步骤。

    (1)先对模块调用图上最底层模块进行测试,模拟调用该模块的模块为驱动模块;
    (2)其次,对上一层模块进行单元测试,用已经被测试过的模块做桩模块;
    (3)依次类推,直到全部单元测试结束。

    35.简述软件测试的分类。

    从技术角度分为:黑盒测试、白盒测试、灰盒测试; 按执行阶段分为:单元测试、集成测试、确认测试、系统测试。

    五、综合应用题

    36.请按照条件覆盖方法为下述语句设计测试用例,并写出测试过程。
    if((a>1)and(b=0)) then    
          x=x/a 
    if((a=2)or(x>1) then   
          x=x+1
    

    条件覆盖:在上述程序段中,第一个判断应考虑到: a>1取真值,记为Ta1; a>1取假值,即a<=1时,记为Ta2;
    b=0取真值,记为Tb1; b=0取假值,即b!=0时,记为Tb2; 第二个判断应考虑到: a=2取真值,记为Ta3; a=2取假值,即a!=2时,记为Ta4; x>1取真值,记为Tx1; x>1取假值,即x<=1时,记为Tx2;
    条件覆盖测试用例 测试用例 a b x 路径 覆盖条件
    CASE4 2 0 3 ace Ta1,Tb1,Ta3,Tx1
    CASE5 1 1 1 abd Ta2,Tb2,Ta4,Tx2
    以上两个测试用例把4个条件的8种情况均做了覆盖。

    37.谈谈测试人员在测试过程中,如何缩短单元测试时间,提高测试效果和效率。

    (1)在做单元测试的过程中,灵活选用测试用例设计技术。比如在两票系统的单元测试过程中,首先使用黑盒测试用例设计技术,然后根据相应的覆盖率统计再补充白盒测试用例,既减少了测试工作的重复,又保证了单元测试的完整性。
    (2)设计驱动程序时,要保证测试逻辑的正确性。否则,即使代码正确也不能保证测试通过。测试通过后,不要随便删除测试代码,以便在后期的软件维护过程中进行回归测试。确保变更的代码没有对软件的其他部分造成不良影响。当然,需求变更的除外。
    (3)有时候可能会遇到这样的情况,代码是绝对正确合理的,可是却不能通过相应的测试,那么,此时应该考虑是否发生了需求变更。
    (4)如果测试没有达到相应的测试覆盖要求,可以针对未覆盖的代码补充测试用例。
    (5)应该尽量开发简单的测试驱动代码,增强其可读性。最重要的是,单元测试代码中不能包含分支和逻辑语句,因为这样意味者有多个测试在同时进行,将会使测试代码变得难以理解和维护。
    (6)尽量开发易于执行的测试,增强我们对测试代码的信心。一般情况下,有两种类型的测试代码:一种是无需任何配置就能够运行的;一种是必须进行相关的配置才能够运行的。显然,我们所需要的是前者。
    (7)避免各个测试之间存在任何的关联,以便在需要时单独运行每个测试。

    试卷三


    一、单项选择题

    1.以程序的内部结构为基础的测试用例技术属于C
    A.灰盒测试 B.数据测试 C.白盒测试 D.黑盒测试
    2.如果一个判定中的复合条件表达式为(A>1)or(B<=3),则为了达到100%的条件覆盖率,至少需要设计多少个测试用例B
    A.1 B.2 C.3 D.4
    3.下列不属于黑盒测试的 [是A] A.基本路径测试法 B.等价类测试法 C.边界值分析法 D.基于场景的测试方法
    4.下列测试方法根据输出对输入的依赖关系设计测试用例的 [是C]
    A.路径测试 B.等价类 C.因果图 D.归纳测试
    5.下列测试可以检查出编码阶段的错误的 [是A]
    A.单元测试 B.集成测试
    C.系统测试 D.有效性测试
    6.修复软件缺陷费用最高的阶段 [是D]
    A.规格说明书 B.设计阶段 C.编写代码 D.发布阶段
    7.在各种资源超负荷情况下观察系统的运行情况的测试 [是B]
    A.容量测试 B.压力测试 C.GUI测试 D.性能测试 8.不属于单元测试内容的 [是C] A.模块接口测试
    B.局部数据结构测试 C.用户界面测试 D.独立路径测试
    9.对Web网站进行的测试中,属于功能测试的 [是B]
    A.连接速度测试 B.链接测试 C.平台测试 D.安全性测试
    10.下列不属于测试原则的 [是D]
    A.软件测试是有风险的行为 B.完全测试程序是不可能的 C.测试无法显示潜伏的软件缺陷 D.找到的缺陷越多软件的缺陷就越少
    11.测试计划不包括B
    A.测试资源 B.测试预期输出 C.测试范围 D.测试策略
    12.LoadRunner [是B]
    A.一款下载软件 B.工业标准级负载测试工具 C.单元测试框架 D.集成开发工具
    13.如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的A
    A.判定覆盖 B.语句覆盖 C.条件覆盖 D.组合覆盖
    14.为预测某Web系统可支持的最大在线用户数,应进行B
    A.负载测试 B.压力测试 C.疲劳测试 D.耐性测试
    15.通常用于系统规模较小的测试项目中的集成方式 [是A]
    A.一次性集成 B.自顶向下集成 C.自底向上集成 D.混合集成

    多选题

    16.下列属于软件测试基本职责的 [是AC]
    A.验证 B.调试 C.确认 D.修复 E.跟踪漏洞
    17.集成测试中常见的风险包括ABDE
    A.技术风险 B.人员风险 C.项目风险 D.管理风险 E.市场风险
    18.下列属于黑盒测试工具的 [是ABC]
    A.WinRunner B.Robot C.WAS D.Logiscope E.Jtest
    19.测试文档种类包括ABCDE
    A.需求类文档 B.计划类文档 C.设计类文档 D.执行类文档 E.缺陷记录类
    20.测试工程师的服务对象包括ABCD
    A.用户 B.项目经理 C.程序员 D.技术文档工程师 E.董事长

    填空题

    21.为特定的目的而设计的一组测试输入、执行条件和预期的结果叫做
    测试用例

    22.黑盒测试是根据软件的
    规格说明
    来设计测试用例。
    23.软件测试是按照特定的规程,
    发现软件错误
    的过程。
    24.从系统层次结构图的最底层模块开始进行组装和集成测试的方式是
    自底向上集成

    25.白盒测试工具一般是针对
    代码
    进行测试的工具。
    26.黑盒测试是从用户观点出发的测试。
    27.由因果图转换出来的
    判定表
    是确定测试用例的基础。
    28.单元测试是根据在
    详细设计
    阶段中产生的规格说明进行的。
    29.在单元测试中,
    桩模块
    用来代替被测模块的子模块。
    30.软件测试的基本职责是验证和
    确认

    简答题

    31.简述集成测试与系统测试的区别。

    (1)测试对象不同;
    (2)测试时间不同;
    (3)测试方法不同;
    (4)测试内容不同;
    (5)测试目的不同;
    (6)测试角度不同。

    32.简述BUG产生的原因。

    BUG产生的原因有很多,具体有以下几点:
    (1)程序编写错误;
    (2)需求变更过于频繁;
    (3)软件复杂;
    (4)交流不充分或沟通出现问题;
    (5)测试人员的经验与技巧不足;
    (6)时间过于紧迫,缺乏文档。

    #####33.简述孤立的单元测试策略的优缺点。
    

    优点:无需考虑每个模块与其他模块之间的关系,分别为每个模块单独设计桩模块和驱动模块,因为各模块之间不存在依赖,所以单元测试可以并行进行;简单易操作,因此所需测试时间短,能够达到高覆盖率。
    缺点:不能为集成测试提供早期的集成途径。依赖结构设计信息,需要设计多个桩模块和驱动模块,增加了额外的测试成本。

    34.简述Junit的优点。

    (1)提升程序代码质量的同时,能加快编程速度;
    (2)使用简单而且免费、开发测试成本低;
    (3)能够检验测试结果并立即提供反馈;
    (4)可以组织成一个有层次的测试系列框架;
    (5)使用Java语言开发;
    (6)提升软件的稳定性。

    35.如何根据等价类的划分确定测试用例?

    (1)首先为等价类表中的每一个等价类分别规定一个唯一的编号;
    (2)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。重复这个步骤,直到所有的有效等价类均被测试用例所覆盖;
    (3)设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类。重复这个步骤,直到所有的无效等价类均被测试用例所覆盖。

    五、综合应用题

    36.示例源码如下:
    Dim a,b as Integer     Dim c as Double     If(a>0 and b>0) Then         c=c/a     End if     If(a>1 OR c>1) Then         c=c+1     End if     c=b+c
    

    要求:根据以上示例源码,采用语句覆盖方法进行测试,要求写出详细的测试用例及测试过程,并说明此方法的优缺点。

    只需设计一个测试用例:a=2,b=1,c=6;即达到了语句覆盖。
    优点:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。
    1 a>0 and b>0 c=c/a a>1 or c>1 Y 2 3 N Y 4 c=b+c 5 N c=c+1
    缺点:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件是无法测试的,如在多分支的逻辑运算中无法全面考虑。语句覆盖是最弱的逻辑覆盖。

    37.你认为编写测试代码有哪些技巧?

    (1)不要用TestCase的构造函数初始化Fixture,而要用setUp()和tearDown()方法。
    (2)不要依赖或假定测试运行的顺序,因为Junit利用Vector保存测试方法,所以不同的平台会按不同的顺序从Vector中取出测试方法。
    (3)避免编写有副作用的TestCase。
    (4)当继承一个测试类时,记得调用父类的setUp()和tearDown()方法。
    (5)将测试代码和工作代码放在一起,以便同步编译和更新。
    (6)测试类和测试方法应该有一致的命名方案。
    (7)确保测试与时间无关,不要使用过期的数据进行测试,这会导致在随后的维护过程中很难重现测试。
    (8)如果编写的软件面向国际市场,编写测试时要考虑国际化的因素,不要仅用母语的Locale进行测试。
    (9)尽可能地利用Junit提供的assert/fail方法以及异常处理的方法,可以使代码更为简洁。
    (10)测试要尽可能地小,执行速度快。

    试卷四


    一、单项选择题

    1.在进行单元测试时,常用的方法 [是C]
    A.只使用黑盒测试 B.采用白盒测试,辅之以黑盒测试 C.只使用白盒测试 D.采用黑盒测试,辅之以白盒测试
    2.根据软件需求规格说明书,在开发环境下对已经集成的软件系统进行的测试 [是A]
    A.系统测试 B.单元测试 C.集成测试 D.验收测试
    3.测试程序时,不可能遍历所有可能的输入数据,而只能是选择一个子集进行测试,那么最好的选择方法 [是B]
    A.随机选择 B.划分等价类 C.根据接口进行选择 D.根据数据大小进行选择
    4.下列不属于白盒测试技术的 [是C]
    A.路径覆盖 B.判定覆盖 C.功能图分析 D.条件覆盖
    5.下列属于软件测试过程模型的 [是A] A.W模型 B.瀑布模型 C.L模型 D.螺旋模型
    6.导致软件缺陷的最大原因 [是B]
    A.设计 B.规格说明书 C.编码 D.测试
    7.以下属于软件性能测试范畴的 [是B]
    A.接口测试
    B.压力测试
    C.单元测试
    D.易用性测试
    8.对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计的 [是A]
    A.系统测试 B.集成测试 C.单元测试 D.功能测试
    9.配置测试是指C
    A.检查软件之间是否正确交互和共享信息 B.交互适应性、实用性和有效性的集中体现 C.使用各种硬件来测试软件操作的过程 D.检查缺陷是否有效改正
    10.调试 [是D]
    A.发现与预先定义的规格和标准不符合的问题 B.发现软件错误征兆的过程 C.有计划的、可重复的过程 D.消除软件错误的过程
    11.创建一个基于Junit的单元测试类,该类必须扩展于C
    A.TestSuite B.Assert C.TestCase D.JFCTestCase
    12.在软件测试工具中,下面不属于动态测试工具类型的 [是A]
    A.错误检查 B.内存分析 C.覆盖测试 D.接口测试
    13.软件测试充分性准则表明,软件越复杂,需要的测试数据就越多。这一特性称为C
    A.单调性 B.非复合性 C.复杂性 D.非分解性
    14.Rational Robot是一种强大的自动化测试工具,主要通过编写脚本的方式提供自动
    化 测试特性。其中图形用户界面(GUI)脚本主要用于D
    A.用户测试 B.单元测试 C.性能测试 D.功能测试
    15.大量的数据表明,导致软件缺陷的产生原因分布中,软件产品说明书约占D
    A.7% B.10% C.27% D.56%

    多选题

    16.系统测试的测试对象包括ABCDE
    A.计算机硬件 B.外围设备 C.数据传输机构 D.计算机系统操作人员 E.软件
    17.下列属于集成测试步骤的 [是ABCE]
    A.计划集成计划
    B.执行集成测试
    C.设计集成测试结果
    D.回归测试
    E.分析测试结果并提交测试报告
    18.在单元测试过程的完成测试计划阶段,包含的活动有ABE
    A.计划总的方法、资源和进度 B.确定被测特性 C.设计测试集 D.完成改进的计划和设计 E.优化总的计划
    19.下列属于静态分析的有ABCD
    A.语法分析器 B.符号执行器 C.软件检视 D.走读 E.路径测试
    20.在第四代语言(4GL),基本单元被划分为CD
    A.函数 B.类 C.菜单 D.显示界面 E.接口

    填空题

    21.常常把与运行软件有关的测试活动称为
    动态测试

    22.黑盒测试又称为
    功能测试

    23.基于调用图的集成方式有两种,即:成对集成和
    相邻集成

    24.用于触发被测模块的软件模块叫做
    驱动模块

    25.最弱的逻辑覆盖是
    语句覆盖

    26.软件测试用例主要是由测试输入数据和
    测试的预期结果
    两部分组成。
    27.确认测试计划是在
    需求分析
    阶段制定的。
    28.实现接口和代码复用的有效机制是
    继承

    29.通常情况下,类测试驱动程序是由
    程序员
    进行开发的。
    30.构造所有面向对象程序的基本单位是

    简答题

    31.简述自动化测试的优点。

    (1)对程序的新版本运行回归测试;
    (2)可以运行更多更频繁的测试;
    (3)可以进行一些手工测试难以完成或不可能完成的测试;
    (4)充分地利用资源;
    (5)测试具有一致性和可重复性;
    (6)增强软件可靠性,缩短软件发布时间。

    32.简述面向对象的软件测试与传统的软件测试的区别。

    传统的测试计算机软件的策略是从“小型测试”开始 即从单元测试开始,然后逐步进入集成测试,最后是有效性和系统测试。 面向对象程序的结构不再是传统的功能模块结构,作为一个整体,原有集成测试所要求的逐步将开发的模块搭建在一起进行测试的方法已成为不可能。而且面向对象软件抛弃了传统的开发模式,对每个开发阶段都有不同以往的要求和结果,已经不可能用功能细化的观点来检测面向对象分析和设计的结果。因此传统的测试模型对面向对象软件已经不再适用。

    33.简述实现阶段的BUG种类。

    实现阶段的BUG可分为以下几类:
    (1)消息错误BUG;
    (2)用户界面错误BUG;
    (3)遗漏的功能BUG;
    (4)内存溢出或程序崩溃BUG;
    (5)其他实现错误BUG。

    34.如何对抽象类进行测试?

    通常,采用以下两种方法来处理抽象类的测试:
    (1)一般情况下,利用Java的内类机制,在抽象类的测试驱动程序内引入内类,让内
    类实现对被测试抽象类的继承,然后把它作为引用体,这样对内类的测试就等价于对被测试抽象类的测试。
    (2)如果抽象类被具体类继承,那么,在创建该具体类的测试驱动程序时要继承抽象类的测试驱动程序,在以后的回归测试中,只要执行最低层的测试类,就可以对其父测试类重新执行一次测试,同时将测试结果分别返回。

    35.简述制定测试计划的主要步骤。

    制定测试计划主要包括以下五个步骤:
    (1)取得需求文档;
    (2)确定测试策略;
    (3)确定测试系统;
    (4)预估测试工作量;
    (5)准备并复查测试计划。


    五、综合应用题

    36.以“打印机打印文件”为例,用黑盒测试中的判定表法对其进行测试。 要求:写出详细的测试步骤,测试用例以及详细的测试过程。

    (1)条件桩: C1:有驱动程序吗? C2:有纸张吗? C3:有墨粉吗?
    (2)动作桩: A1:安装驱动程序 A2:加入纸张 A3:加入墨粉 A4:打印纸张
    (3)确定规则个数 输入条件个数:3 每个条件的取值:“是”或“否” 规则个数:222=8
    (4)填入条件项和动作项 1 2 3 4 5 6 7 8 条件 C1 Y Y Y Y N N N N C2 Y Y N N Y Y N N C3 Y N Y N Y N Y N 动作 A1 √ √ √ √ A2 √ √ √ √ A3 √ √ √ √ A4 √
    (5)简化决策表,合并相似规则:没有相似规则,无需合并。

    37.试论述在BUG重现时可能出现的问题及解决办法。

    (1)竞争条件。出现竞争条件时,可以按照第一次运行时的节奏,再将程序快速地测试一遍。如果还出现错误,就要试着减慢计算机的速度,或者在稍慢点的计算机上进行测试
    了。
    (2)被遗忘的细节。很多时候测试是在没有制定测试计划的情况下进行的,在测试中发现了某个问题后却无法重现它,那么很可能是忘记了一些细节。因此应该努力回忆那写被遗忘的细节,这往往成为恢复BUG的关键。
    (3)BUG造成的影响会导致其无法重现。如果发生这种情况,除非复原文件或将计算机恢复到正确状态,否则根本无法重现。
    (4)BUG依赖于内存。此时可以使用一些专用的内存监视软件。
    (5)仅会在初次运行时出现的BUG。这种BUG危害并不大,只要在用户说明书中详细说明初始化数据前的操作步骤,这种BUG就可以避免。
    (6)因数据错误导致的BUG。为重现这些错误,必须对程序进行相同的数据输入。
    (7)间断性硬件故障。检查硬件。
    (8)BUG依赖于时间。详细检查跨日、月、年等边界情况。
    (9)BUG依赖于资源。必须重现资源请求受拒的情形。
    (10)由于一些其他问题附带引起的BUG。在发现初始BUG后,就要重现它,这样由它导致的后续BUG重现起来就要容易多了。


    相关文章

      网友评论

          本文标题:软件产品测试历年真题及答案

          本文链接:https://www.haomeiwen.com/subject/isaeoltx.html