软件测试基础
1 下列关于测试术语的说法错误的是
喵查答案:测试用例(Test Case)在任何情况下都指代测试输入(Test Input)、测试预言(Test Oracle)和测试环境(Environment)三者的结合
静态测试和动态测试的最大区别在于是否需要运行程序
简单来说,测试(Testing)的目的发现Bug,而调试(Debugging)的目的是定位并解决Bug
黑盒测试和白盒测试最大区别在于是否需要源代码来了解程序的内部结构
2 下列关于PIE模型的说法错误的是
PIE模型刻画了测试人员观测到一个Failure所需要的客观条件
喵查答案:E(Execution)要求测试通过所有的待测代码
I(Infection)要求测试触发错误的中间状态
P(Propagation)要求错误的中间状态传播到最后的输出
3 下列关于Fault、Error和Failure的说法不正确的是
Fault是指软件中存在的静态缺陷,通常由编程失误导致
Error是指软件运行到某个Fault时所产生的错误的中间状态
Failure是指可以被用户和测试人员观测到的外部失效行为
喵查答案:代码中存在的Fault一定会产生Failure
4 下列关于Grace Hopper的说法不正确的是
Grace Hopper发现了计算机程序中的第一个Bug
喵查答案:Grace Hopper从未设计过计算机Bug
Grace Hopper实现了世界上第一种商用编程语言COBOL
Grace Hopper是“IT界十大最有远见人才”中的唯一女性
5 下列关于Fault的反思正确的是
Fault静态存在于代码中,因此一个程序中存在的Fault是固定不变的
发现Fault的难度要低于发现Failure
喵查答案:Fault可以由修复(Fixing)或者测试(Testing)来定义
Fault之间不存在相互干扰的现象
白盒测试
1 下列关于控制流图的说法错误的是
控制流图描述了一个程序执行的流转过程
喵查答案:控制流图的点只能表示源代码中的语句
控制流图的边可以表示点之间的流转关系,如调用(Call)、顺序流动(Flow)、跳转(Jump)
通过根据循环条件添加额外节点的方式可以使源代码中的循环结构在控制流图中表达得更加清晰
2 下列关于结构覆盖的说法错误的是
结构覆盖是一种常用的图覆盖类型,仅关注点和边而不关注其中具体的内容
一个满足边覆盖的测试用例集一定满足点覆盖
喵查答案:测试准则C1蕴含测试准则C2,这说明满足C1的测试用例集的错误检测能力要强于满足C2的测试用例集
一个测试集合T满足边覆盖当且仅当对于任意一条语法可达的边e,测试路径集合path(T)中都存在一条边p覆盖e
3 关于下列说法正确的是
喵查答案:软件测试可以建立在多种图的基础之上,比如:源代码推导出的控制流图、规格说明导出的有限状态机,以及各种设计图等
可达性可分为语法可达和语义可达两种。其中语法可达要求测试能够执行到某条路径
当某个定点v恰好存在于某条路径p时,说明这条测试路径满足对v的测试覆盖
测试准则描述了测试路径的一些特性;测试需求给出了一些定义测试准则的要求
4 下面的控制流图G = ,V = {v1, v2, v3, v4, v5},其中:v1是初始节点,v5是最终节点,则图中测试路径(Test Path)的数量为
4
喵查答案:5
6
7
5 下列关于数据流覆盖的说法错误的是
与结构覆盖不同,数据流覆盖进一步关注点和边的具体内容,即对数据的使用和计算是否正确
对于数据的使用包括定义(Def)和引用(Use)两种
有意义的DU关系要求关于某个变量的定义是清晰的(Def-clear)
喵查答案:定义覆盖、引用覆盖和定义引用覆盖是常用的数据覆盖准则。其中,满足定义覆盖的测试集一定满足引用覆盖
软件测试方法-黑盒测试
1 下列关于黑盒测试工具Selenium以及PICT的说法错误的是
Selenium是一款面向Web测试的录制与回放功能
Selenium提供的检查点功能可以为测试用例的设置预期输出
PICT是一款组合测试工具。工具的输入为一个规定了输入定义域的model文件,输出为生成的组合测试用例
喵查答案:PICT不支持可变粒度的组合测试
2 给定一个需要两个输入x和y(x, y ∈ [-100, 100])的待测程序。根据分析可知待测程序的有效等价类为x, y ∈ [-10, 10],则下列说法错误的是
这种等价类划分方法的依据是测试输入的取值范围
该分析得出的等价类总数为3
喵查答案:在考虑无效等价类的情况下,使用边界值分析将得到9条测试用例
在考虑无效等价类的情况下,使用边界值分析将得到13条测试用例
3 下列关于黑盒测试方法的说法错误的是
喵查答案:随机测试、等价类划分以及边界值分析考虑了待测程序输入与输出之间的关系
组合测试考虑了不同输入变量之间的关系
完全组合测试需要大量的测试资源,在实际应用中通常无法实现
组合测试可以分为固定粒度测试和可变粒度测试两种
4 下列关于等价类划分的说法错误的是
等价类划分的基本思想就是将输入域划分成一系列子集(等价类),并从这些子集依次选择测试输入
通过等价类划分得到的结果必须完全覆盖输入域,同时等价类之间不能存在重叠和冗余
喵查答案:等价类划分只需要关注有效输入,不需要关注无效输入
按照功能对一个三角形类别判定程序的输入进行等价类划分可以得到4个等价类
5 下列关于随机测试的说法错误的是
按照SWEBOK 3.0对随机测试的定义,随机测试中的测试用例生成必须在已知的输入域上进行
喵查答案:模糊测试(Fuzz Testing)旨在构造非法的数据攻击程序,造成程序崩溃,不属于随机测试的范畴
导致程序出错的测试用例可能存在聚集现象
自适应随机测试利用测试过程中产生的信息,从输入空间中尽可能远离已有测试输入的位置选择并生成新的测试输入
软件测试实践-功能测试
1 以下哪一项不是编写功能测试时需要的内容?
测试编号
预期结果
实际结果
喵查答案:界面截图
2 在机票查询的测试中,以下哪些测试需求可以被细化?
人数分类
地点选择
舱位
喵查答案:以上都是
3 以下哪一项是为了测试应用的可靠性
产品功能是否与需求和设计文档一致
喵查答案:用户交互是否引发软件崩溃和其他异常
软件产品完成特定任务的难易程度
以上都不是为了测试应用的可靠性的
4 以下哪一项不是图形化界面?
单文档
HTML元素
喵查答案:命令行
传感器
5 以下哪一项不属于功能测试的常用步骤?
根据需求来细分功能点
根据功能点派生测试需求
根据测试需求设计功能测试用例
喵查答案:通过JMeter对接口做每秒100万次的调用
喵查
查看更多答案