《软件质量保证与测试》课程的学习
《软件质量保证与测试》课程的学习
文章目录
- 《软件质量保证与测试》课程的学习
- 第一部分 选择、填空、判断
- 第一章 软件测试与质量概述
- 第二章 黑盒测试
- 第三章 单元测试
- 第四章 白盒测试
- 第五章 测试管理
- 第六章 集成测试
- 第七章 系统测试
- 第八章 软件质量模型与度量
- 第二部分 简答、应用
- 分析设计题
第一部分 选择、填空、判断
第一章 软件测试与质量概述
- 我们对软件做测试的根本目的是什么?
A.提高软件的质量
B.确保程序符合用户的需求
C.找出程序中的缺陷
D.确保程序没有缺陷 - 下列软件属性中,软件产品首要满足的应该是
A.性能需求
B.功能需求
C.可扩展性和灵活性
D.容错纠错能力 - 软件缺陷是由很多方面造成的,以下哪个方面是造成软件缺陷最多的地方
A.需求规格说明书
B.系统设计
C.代码编写
D.测试阶段 - 对于软件缺陷的修复费用,在哪个阶段的费用花费最小
A.需求分析阶段
B.设计阶段
C.编码阶段
D.发布阶段 - 软件缺陷主要是由于编码问题造成。 错误
- 程序员不需要了解软件测试。 错误
- 每一种测试方法都必须执行程序,才能得到最好的效果。 错误
- 需求分析和设计阶段不需要测试人员参与。 错误
- 静态测试通过执行程序,找到程序中的错误或者是可疑之处。 错误
- 如下关于测试用例的描述中错误的是:
A.测试用例是一组精心设计的输入,目的是为了在最短时间内找到最多、最严重的缺陷
B.测试结果就是测试用例的实际输出
C.测试用例方便了测试人员与开发人员之间的沟通
D.测试用例有利于缺陷的跟踪 - 如下描述中满足是测试用例的是:
A.登录手机QQ,输入正确的QQ号,不输入密码,看看会发生什么
B.登录手机QQ,输入正确的QQ号和密码后,预期结果是可以登录进入自己的QQ账户,看到QQ消息
C.登录手机QQ,输入正确的QQ号和错误的密码后,发现系统提示密码错误,无法进入自己的QQ账户
D.登录手机QQ,输入正确的QQ号和密码,测试失败 - 以下描述中哪个是错误的
A.静态测试不需要搭建测试环境
B.测试用例的基本组成包括:输入、预期输出和测试环境
C.穷尽测试是一种非常有效的测试手段
D.测试用例能代表需求的小的测试单元 - 在游戏行业,游戏提供商常常在游戏正式发布之前邀请用户展开α测试作为检验游戏的一种方式。 错误
- 关于白盒测试与黑盒测试的最主要区别,正确的是
A.白盒测试侧重于程序结构,黑盒测试侧重于功能
B.白盒测试可以使用测试工具,黑盒测试不能使用工具
C.白盒测试需要程序参与,黑盒测试不需要
D.黑盒测试比白盒测试应用更广泛 - 根据软件需求规格说明书,在开发环境下对已经集成的软件系统进行的测试是
A.系统测试
B.单元测试
C.集成测试
D.验收测试 - 以下有关回归测试的说法中错误的是。
A.严格来说,回归测试不是一个测试阶段,只是一种可以用于各个测试阶段的测试技术
B.回归测试适合采用手工方法完成,不适合使用自动化测试工具来完成
C.回归测试可以在系统和验收测试环境下进行
D.回归测试的目标是保证被测应用在被修改或扩充后,各项功能依然正确 - 单元测试一般以____为主。
A.白盒测试
B.分析测试
C.系统测试
D.黑盒测试 - 必须要求用户参与的测试阶段是
A.系统测试
B.集成测试
C.验收测试
D.单元测试 - 一个成功的测试是
A.发现了至今尚未发现的错误
B.证明发现不了错误
C.没有发现错误吗
D.发现错误码 - 从测试阶段来分类,我们可以将软件测试方法划分为
A.动态测试和静态测试。
B.性能测试和压力测试。
C.单元测试、集成测试、系统测试和验收测试
D.白盒测试和黑盒测试。 - Beta测试是验收测试的一种。 正确
- 测试用例是由测试输入数据和对应的实际输出结果这两部分组成。 错误
- 软件测试能保证软件质量。 错误
- 在实际的运用中,无论对于白盒测试和黑盒测试,通常使用其中一种方法就可以完成对某一软件的测试工作。 错误
- 在软件修改之后,再次运行以前曾运行过的测试用例,称之为______。
A.单元测试
B.集成测试
C.回归测试
D.验收测试
第二章 黑盒测试
- 如果要对一个三角形程序进行测试用例设计,三角形程序的功能是根据三条边的边长来判断三角形的类型,输出有4种情况,分别是:不等边三角形,等腰但非等边三角形,等边三角形,不能构成三角形。且要求边长必须是整数。请问,最多需要设计多少个测试用例?
A.30
B.1000
C.1728
D.无法穷尽 - 长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的 边界 上,而不是发生在输入输出范围的内部,因此针对各种边界情况设计测试用例,可以查出更多的错误。
- 某个输入条件的最大值或最小值一定是边界点。 正确
- 请问,对于同一个输入条件来说,针对不同边界点可以分别设置大小不同的邻域值吗?
A.不可以
B.可以,但不一定必须不同
C.可以,而且必须设置不同大小的邻域值
D.视不同情况而定 - 在边界值分析中,下列数据通常不用来做数据测试的是
A.正好等于边界的值
B.等价类中的等价值
C.刚刚大于边界的值
D.刚刚小于边界的值 - 黑盒测试容易知道用户会用到那些功能,会遇到哪些问题。 正确
- 任何情况下都应该使用边界值测试。 正确
- 在某个等价类中取测试数据的时候,该如何取值?
A.取非边界值
B.取边界值
C.随便取值,不考虑是否是边界值
D.边界和非边界值都要取 - 在对原始输入域进行等价划分时,如果这种等价划分改变了原始的输入域,则不能使用等价类测试方法设计测试用例。 错误
- 在某大学学籍管理信息系统中,假设学生年龄的输入为16~40,则根据黑盒测试中的等价类划分技术,下面划分正确的是。
A.可划分为2个有效等价类,2个无效等价类
B.可划分为1个有效等价类,2个无效等价类
C.可划分为2个有效等价类,1个无效等价类
D.可划分为1个有效等价类,1个无效等价类 - 测试程序时,不可能遍历所有可能的输入数据,而只能是选择一个子集进行测试,那么最好的选择方法是____。
A.随机选择
B.等价类划分
C.根据接口进行选择
D.根据数据大小进行选择 - 下列关于等价类划分方法的说法中错误的是:
A.对于有效等价类可以不设计测试用例
B.利用有效等价类设计的测试用例,可以检验程序是否实现了需求说明书中规定的功能和性能
C.对同一个程序可能会划分出多种不同的等价类
D.利用无效等价类设计的测试用例,可以检验程序中功能和性能是否不符合需求说明书的规定 - 在进行等价类划分的过程中,不但要考虑有效等价类划分,同时要考虑 无效等价类 的划分。
- 根据等价类测试的目标要求,等价类划分需要遵循三个约束条件, 分而不交 、合而不变、类内等价。
- 弱覆盖 设计的测试用例集合应覆盖所有的有效等价类。
- 强覆盖设计的测试用例集合应覆盖所有有效等价类的组合情况。
- 对于有两个输入条件的情况,如果x1条件有3个有效等价类,x2条件有两个有效等价类,根据弱覆盖标准的要求,最少需要 3 个测试用例?
- 决策表方法在以下哪种情况下不适用:
A.输入输出明确,或输入输出因果关系明确的情况下
B.被分析的特性或功能点复杂,输入条件很多的情况下
C.系统输入之间相互约束多,需要做大范围的组合测试情况下
D.系统输入之间没有相互联系 - 在黑盒测试中,着重检查输入条件组合的方法是
A.等价类划分法
B.决策表方法
C.错误推测法
D.边界值分析法 - 以下不属于黑盒测试方法的是
A.等价类划分法
B.边界值分析法
C.错误推测法
D.静态结构分析法 - 以使用某购票系统进行国内车票购买的过程为例,如果需要针对相关业务流程设计测试用例,则如下描述中错误的是:
A.系统登录失败,该流程对应的是备选事件流
B.成功登录系统,为已有乘车人成功购买单程、单张车票,该流程对应的是基本事件流
C.成功登录系统,为已有乘车人成功购买单程单张车票,以及为已有乘车人成功购买单程多张车票,这两个流程分别对应两个基本事件流
D.成功登录系统,出发地城市分别选择100个不存在的、或不在中国境内的城市,无法购票,对应同一个备选事件流 - 等价类测试和边界值测试是面向数据的,场景法是面向 流程 的。
- 场景法 通过运用场景来对系统的业务流程进行描述,从而设计测试用例的一种方法。
- 场景法一般包含基本流和 备选流 。
- 通过等价划分来设计测试用例的过程中,输入条件之间如果存在关联,独立地划分等价类将导致测试的冗余,可通过 决策表 测试消除这种冗余
第三章 单元测试
- 请问,对于被测试类中的私有方法,不正确的处理方式是:
A.不需要测试
B.将该方法改为公有方法再测试
C.另外定义一个公有方法,调用该私有方法,再对公有方法进行测试
D.利用反射机制对该私有方法进行测试 - 单元测试就是用某一款代码扫描工具将产品代码扫描一遍,看看有没有什么问题。 错误
- 开发单元测试脚本不需要提前设计测试用例。 错误
- 桩 模块是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。
- 驱动 模块是用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启用被测模块。
- 测试用例的数目越多,测试的效果越好。 错误
- 单元测试属于动态测试。 正确
第四章 白盒测试
- 导致程序结构复杂的主要原因是:
A.程序中代码行太多
B.程序中的变量太多
C.程序中的变量结构太复杂
D.程序中的分支太多 - 以下描述中哪个是错误的:
A.穷尽测试是一种非常有效的测试手段
B.静态测试不需要搭建测试环境
C.测试用例的基本组成包括:输入、预期输出和测试环境
D.测试用例能代表需求的小的测试单元 - 对于如下的程序图,需要测试的最大可执行路径数是:
A.7
B.6
C.12
D.10 - 请问,如果一个程序的控制流图如下图所示,则该段程序的可执行路径是多少?
A.5
B.20
C.100
D.5的20次方 - 条件组合覆盖可以发现代码中所有可能的缺陷 错误
- 白盒测试主要关注的对象是源代码和 程序结构 。
- 控制流分析方法的核心就是围绕 判定节点 来设计测试用例,展开测试。
- 下面不属于白盒测试能保证的是_____。
A.模块中所有独立途径至少测试一次
B.测试所以逻辑决策真和假两个方面
C.在所有循环的边界内部和边界上执行循环体
D.不正确或漏掉的功能 - 使用白盒测试方法时,确定测试数据应根据_____和指定的覆盖标准。
A.程序的内部逻辑
B.程序的复杂程度
C.使用说明书
D.程序的功能 - 在进行单元测试时,常用的方法是_____。
A.采用白盒测试,辅之以黑盒测试
B.采用黑盒测试,辅之以白盒测试
C.只适用白盒测试
D.只适用黑盒测试 - 语句覆盖、判定覆盖、条件覆盖和判定-条件覆盖都是白盒测试法设计测试用例的覆盖准则,在这些覆盖准则中最弱的准则是_____。
A.语句覆盖
B.条件覆盖
C.判定-条件覆盖
D.判定覆盖 - 在评审预备会上,评审员是否需要正式开始评审工作产品?
A.需要
B.不需要
C.看工作产品复杂程度
D.看会议时间是否允许 - 观察下图的结构,该函数的结构复杂度高吗?
A.高,应尽量降低复杂度
B.不高,完全可以接受
C.有点高,但可以接受
D.不好说
- 以下描述中哪个是正确的:
A.在评审会正式召开之前,评审员必须认真阅读被审查的工作产品
B.在代码评审过程中,应留出足够的时间让评审人员与开发人员就现场发现的缺陷修复达成一致意见
C.在代码评审会前,必须提前设计测试用例,并在评审过程中逐一执行每个测试用例,观察执行结果
D.代码评审不涉及测试环境搭建、测试脚本编写、测试用例管理等工作,因此应广泛使用代码评审,至少每周组织2-3次代码评审 - 通过消除函数内部结构之间的依赖关系,或将函数体内相似的代码改为函数调用,一定能够降低函数的复杂度,但这样也有可能会增大集成测试的负担。 错误
- 在代码评审会召开之前,为了确保所有参会人员都了解会议流程、会议目的,都拿到正确、完整的评审材料,往往需要先召开 评审预备会 。
- 下面不属于静态测试方法的是 ( )
A.代码检查
B.等价类划分
C.静态结构分析
D.代码质量度量 - 下列方法中,不属于黑盒测试的是
A.独立路径测试
B.等价类测试法
C.边界值分析法
D.基于场景的测试方法 - 在同行评审之前,被评审的材料应满足一定条件才允许进行评审,下面描述中属于评审条件的有:
A.文档应确保至少有15页
B.被评审的代码应控制在200行以上
C.文档中应尽量使用专业术语
D.文档应符合相关标准模板 - 选择覆盖指标对源代码设计测试用例时,常见的错误包括:
A.条件组合覆盖是最常用的逻辑覆盖指标
B.判定覆盖不一定能保证条件覆盖
C.修正的判定条件覆盖一般仅在逻辑表达式特别重要的情况下使用
D.判定覆盖可保证100%的语句覆盖 - 判定 节点是影响程序结构复杂度的主要因素。
- 独立路径的选择主要包括两个步骤:先确定一条主路径,再根据主路径抽取其他独立路径。
- 环形复杂度度量主要用于计算程序基本路径集的路径数量。 错误
- 环形复杂度的值越大,理解程序模块的难度越高。 正确
- 语句覆盖的目的是
A.使每个判定的所有可能的条件取值组合至少执行一次
B.使程序中的每个判定至少都获得一次“真”值和“假”值
C.使程序中的每个判定中每个条件的可能值至少满足一次
D.使程序中的每个可执行语句至少执行一次
第五章 测试管理
- 测试用例是连接需求与缺陷的关键纽带。 正确
- 缺陷管理是在软件生命周期中识别和管理软件缺陷的过程(从缺陷的识别到缺陷的解决、关闭),在这一过程中,要确保缺陷被跟踪管理而不丢失。 正确
- 缺陷具有可重现性、严重性、优先级等属性。 正确
- 严重性程度高的软件缺陷一定具有高的优先级。 错误
- 软件缺陷生命周期包括:发现缺陷、分配缺陷、 修复缺陷 、验证缺陷、解决缺陷。
- 当测试人员报告缺陷时,正确的处理方式是:
A.缺陷一旦关闭,就不能再次打开
B.缺陷标题应尽量详细描述
C.严重性级别为“严重”的缺陷必须对应“高”优先级
D.如果缺陷确实无法重现,也应提交,并在报告中注明这一情况 - 所有缺陷在产品发布之前都可以得到修复。错误
- 在发现并对缺陷进行确认后,测试人员需要撰写缺陷报告,并提交给程序员。 正确
- 缺陷报告中的缺陷编号是针对缺陷给出的唯一身份标识,以便用于跟踪和维护。 正确
- 测试用例是为达到最佳的测试效果或高效的揭露隐藏的错误而精心设计的少量测试数据,至少应该包括_____
A.测试输入数据、测试环境和预期的结果
B.测试目标、测试工具
C.测试环境
D.测试配置 - 如下缺陷报告中最合适的描述是:
A.“在某课程平台的课程创建讨论帖出现重复帖”是一个描述清晰、简洁的缺陷标题
B.在某课程平台创建讨论帖,无法成功创建
C.在某课程平台的“软件测试与质量”课程中,从课程章节创建讨论时,新建讨论帖成功后,在页面将看到两个完全一样的讨论帖,而预期应该只能看到一个讨论帖
D.在某课程平台创建讨论帖,在页面将看到两个完全一样的讨论帖,在讨论区创建讨论时,或在课程章节中创建讨论时,都出现上述现象
第六章 集成测试
- 集成测试是在_____的基础上将所有模块按照设计要求组装成系统或子系统,对模块组装过程和模块接口进行正确性测试。
A.单元测试
B.系统测试
C.验收测试
D.回归测试 - 集成测试应由专门的测试小组来进行,测试小组由有经验的_____组成。
A.项目经理
B.系统设计人员
C.开发人员
D.系统设计人员+开发人员 - 集成测试 是在单元测试的基础上,将多个模块组合在一起进行测试的过程,主要检查各个软件单元之间的接口是否正确。
- 集成测试中,在把模块组装起来时主要有两种方法:非渐增式集成和 渐增式集成。
- 在对多个模块集成时要考虑模块和周围模块的联系,为了模拟联系,需要设置若干辅助模块, 驱动模块 用以模拟待测模块的上级模块, 桩模块 用以模拟待测模块要调用的模块。
- 渐增式集成按照不同的模块集成方式分为:自顶向下和自底向上集成两种方式。 自顶向下 集成是从主控模块开始,沿着程序控制层次结构向下移动,逐渐把各模块组合起来测试。 自底向上 集成是从软件结构最底层的模块开始,按照程序的层次结构向上移动,逐渐把各模块组合起来测试。
- 在自顶向下增式集成测试中,从属于主控模块的模块按深度优先策略或者广度优先策略逐步集成到结构中。 深度优先 策略的集成方式是首先集成结构中的一个主控路径下的所有模块。 广度优先 策略的集成方式是首先沿着水平方向把每一层中所有直接隶属于上一层的模块集成起来,直至最底层。
- 集成测试的过程为三个阶段:计划 阶段、设计实现阶段、执行评估阶段。
- 非渐增式集成测试的优点是测试层次清晰,出现问题能够快速定位。 错误
- 集成测试之前可以不做单元测试。 错误
- 集成测试时,能较早发现高层模块接口错误的测试方法为_____。
A.自顶向下渐增式测试
B.自底向上渐增式测试
C.非渐增式测试
D.系统测试 - 为了快速完成集成测试,采用一次性集成方式是适宜的。 错误
- ______方法需要考察模块间的接口和各模块之间的联系。
A.单元测试
B.集成测试
C.确认测试
D.系统测试 - 自底向上和自顶向下集成各有优劣,有效的选择是基于风险优选模块集成次序,混合 采用自底向上和自顶向下的集成测试方法。
- 通常情况下,如下缺陷不能通过单元测试发现的是
A.变量的初始值或缺省值有错误
B.提示的错误与实际的错误不相符
C.输入的实际参数与形式参数的个数不相同
D.一个模块的功能是否会对另一个模块的功能产生不利影响
第七章 系统测试
- 系统测试 是指将通过集成测试的软件系统作为计算机系统的一个重要组成部分,与计算机硬件、外设、某些支撑软件的系统等其他系统元素组合在一起所进行的测试。
- 系统测试的流程:制定系统测试计划、 设计系统测试用例 、执行系统测试、缺陷管理与改错。
- 在性能测试过程中主要考虑以下两个方面:时间性能、空间性能。 正确
- 安全性 测试的目的在于检查系统对非法侵入的防范能力,验证安装在系统内的保护机构是否确实能够对系统进行保护,使之不受各种非常的干扰。
- 兼容性测试是指检查软件之间能否正确地进行交互和共享信息。 正确
- 向后兼容是指可以使用软件的未来版本。错误
- 功能测试是系统测试的主要内容,检查系统的功能是否与需求规格说明相同。 正确
- 测试人员在测试过程中发现一处问题,如果问题影响不大,而自己又可以修改,应立即将此问题正确修改,以加快开发的进程。错误
- 可靠性 测试就是为了评估产品在规定的寿命期间内,在预期的使用、运输或储存等所有环境下,保持功能可靠性而进行的活动。
- 可用性 测试检测用户使用软件是否满意。
- 下列测试中不属于系统测试的是_____
A. 性能测试
B. 单元测试
C.压力测试
D.可靠性测试 - 着重检查系统对非法侵入的防范能力的系统测试被称为_______。
A.兼容性测试
B.可用性测试
C.安全性测试
D.性能测试
第八章 软件质量模型与度量
- McCall质量模型分别从
产品运行
、产品修改
和产品移植
三个方面入手,共定义了11个软件外部质量因素。
产品运行 对应的质量因素是正确性、完整性、可靠性、效率和可用性;
产品修改 对应的质量因素是可维护性、灵活性、可测试性;
产品移植 对应的质量因素是可移植性、可重用性、可互操作性。 - 软件产品质量的度量可从产品本质质量和 用户满意度 两方面来进行。
- 软件产品质量的度量可从产品本质质量和用户满意度两方面来进行。正确
- 平均失效时间可以理解为软件产品在规定的环境下从正常运行到发生下一次故障的平均时间。正确
- 以下关于McCall质量模型的描述中,哪个是正确的?
A.可用性可以看做是产品竞争力的核心
B.McCall质量模型是通过构建质量属性之间的关系,分析质量属性来构建质量模型
C.McCall质量模型的顶层是软件的内在特性
D.可靠性是产品修改中体现出来的质量 - 用代码行来估算软件规模比用功能点法进行估算更加精确,因为它是从开发的角度估算软件规模。错误
- 在这两个关于缺陷到达率模式的图中,关于其质量级别的正确描述是:
A.左图表示的开发质量优于右图
B.右图表示的开发质量优于左图
C.二者的开发质量相同
D.仅从这两个图无法看出二者开发质量的差别
- 积压管理指标BMI过小,说明当月解决的问题数过少,问题积压增大,软件产品处于不稳定状态。正确
- 软件配置管理( SCM )是一种标识、组织、控制修改的技术。正确
- 软件配置管理角色包括:项目经理、配置控制委员会、 配置管理员 、系统集成员、开发人员。
- 在程序设计中,某模块与其他模块相比,若该模块已发现并改正的错误数目较多,则该模块中残留的错误与其他模块相比,通常应该____。
A.更少
B.更多
C.相似
D.不确定 - 为了提高测试的效率,应该______
A.随机地选取测试数据;
B.取一切可能的输入数据作为测试数据;
C.在完成编码以后制定软件的测试计划;
D.选择发现错误可能性大的数据作为测试数据。 - 计算缺陷率时,我们发现:
A.通过功能点衡量软件规模,是从用户角度进33333行评估的
B.基于代码行,和基于功能来评估软件规模时,基于代码行的方法更合理一些
C.通过计算版本的缺陷数与KCSI的比值,可用于度量整个产品的代码质量
D.在开发过程中,虽然代码行不断变化,但基于代码行的缺陷率是保持不变的
第二部分 简答、应用
软件测试
使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。软件缺陷定义5个方面
(1)软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好,则是缺陷。
(2)软件未达到需求规格说明书中指明的功能则是缺陷
(3)软件出现了需求规格说明书中指明不会出现的错误,则是缺陷。可视为对软件系统容错性的要求。
(4)软件功能超出需求规格说明书中指明的范围,则是缺陷。
(5)软件未达到需求规格说明书中虽未指出但应达到的目标,则是缺陷。不同角度的测试分类:
(1)从测试阶段或对象的角度,可以分为单元测试、集成测试、系统测试和验收测试;
(2)从测试技术的角度,可以分为黑盒测试、白盒测试和灰盒测试;
(3)从测试目标的角度,可以分为更多的测试类型,包括回归测试、功能测试、性能测试、 Alpha 测试、Beta测试、压力测试、负载测试、安全性测试、 配置测试、安装测试、可用性测试、可恢复性测试等。
(4)从测试执行方式的角度,可以分为手动测试、自动化测试和半自动化测试。软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。
黑盒测试
在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,检查需求规格说明书中列出的所有功能是否能正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着重测试软件功能。边界值分析法
就是对输入或输出的边界值进行测试的一种黑盒测试方法。等价类划分法
把所有可能的输入数据,即程序的输入域划分成若干部分, 然后从每一部分中选取少量具有代表性的数据作为测试用例。测试某个等价类的代表值就等于对这一类其它值的测试。简述等价类划分法设计测试用例的基本步骤。
(1)建立等价类表,列出所有划分出的等价类,并为每一等价类规定一个唯一的编号;
(2)设计一测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被测试用例所覆盖;
(3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步骤,直到所有无效等价类均被覆盖。场景法
通过运用场景来对系统的业务流程进行描述,从而设计测试用例的一种方法。简述场景法设计测试用例的基本步骤。
(1)根据说明,描述出程序的基本流及各项备选流。
(2)根据基本流和各项备选流生成不同的场景。
(3)对每一个场景生成相应的测试用例。
(4)对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值。白盒测试
是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计测试用例,对程序所有逻辑路径进行测试,确定实际的状态是否与预期的状态一致。语句覆盖
设计测试用例时应保证程序中每一条可执行语句至少应执行一次。判定覆盖
设计测试用例时应保证程序中每个判定取真分支和假分支至少一次。条件覆盖
设计测试用例时应保证程序中每个复合判定表达式中,每个简单判定条件的取真和取假情况至少执行一次。判定-条件覆盖
设计测试用例时应满足每个判定节点的取真、取假分支至少执行一次 , 且每个简单判定条件的取真和取假情况也至少执行一次。条件组合覆盖
设计测试用例时应满足每个判定节点中,所有简单判定条件的所有可能的取值组合情况至少执行一次。静态白盒测试
对系统的静态检查,这种检查通常不需要实际运行被测软件,而是直接对软件形式和结构进行分析。静态白盒测试
(1)代码检查
(2)静态结构分析
(3)代码质量度量同行评审方法有哪些方法?
(1)审查
(2)团队评审
(3)走查
(4)结对编程
(5)同行桌查
(6)轮查
(7)特别检查静态结构分析
通过引入多种形式的图表(如函数调用关系图、模块控制流图等),帮助我们快速了解程序设计和结构,更好地理解源代码,有利于找到程序设计的缺陷和代码优化的方向。路径测试
对程序路径的执行进行测试,保证路径执行是按照设计的预期进行的。基于独立路径的测试
通过分析程序结构的环路复杂性,找到所有的独立路径,从而设计测试用例的方法。环复杂度
是一种定量描述程序结构复杂度的度量模型,能够反映判定节点和循环的引入对程序结构以及执行路径数目带来的不利影响。环复杂度的确定 3 种方法
(1)直观观察法
(2)公式计算法
(3)判定节点法
举例:
① 直观观察法
环复杂度等于程序图中封闭区域和开放区域的个数。
程序图有4个封闭区域和1个开发区域,其环复杂度为5。
V(G)=5
② 公式计算法
利用程序图中包含的边和节点的数量来计算环复杂度。
设E为程序图的边数,N为图的节点数,则环复杂度为:
E=10 ,N=7
V(G)=E-N+2=5
③ 判定节点法
若设P为程序图中的判定结点数,则P=4
V(G)=P+1=5
应该设计的测试用例的数目为5。如何找到一组独立路径?
独立路径的选择主要包括两个步骤
(1)先确定一条主路径
(2)再根据主路径抽取其他独立路径。如何确定确定一条主路径
主路径一般是风险最高的执行路径,路径的风险可以看做是,路径出错的概率高,或者路径中缺陷对用户影响大。不可行路径
路径是永远执行不到的。缺陷管理
是在软件生命周期中识别和管理软件缺陷的过程(从缺陷的识别到缺陷的解决、关闭),在这一过程中,要确保缺陷被跟踪管理而不丢失。软件的缺陷严重性等级一般应如何划分?
表示缺陷对系统造成的破坏力。一般分为3级:
严重的:因重要功能丧失或致命错误而造成系统崩溃,重要数据丢失或破坏而可能引起用户财产损失或法律纠纷,甚至可能危及人身安全等。
一般的:不影响系统基本使用,能满足商业要求,但用户不常用的功能实现未达到预期效果,可能导致用户使用不方便等。
次要的:不会影响软件主要功能的使用,产品及其属性仍然可以使用,而且一般可以轻易处理的缺陷。简述缺陷跟踪和管理
第一步,测试员负责上报缺陷,并对缺陷进行分类,确定缺陷的严重等级。
第二步,项目经理负责对缺陷的优先级进行划定,将缺陷分配给程序员。
第三步,程序员对缺陷报告审核之后,决定对缺陷应采取的处理方式,如果程序员不接受该缺陷,则将缺陷报告打回给测试人员,由测试人员复审后决定是否再次提交该报告,该图中并未体现这个过程。如果程序员接受并立即修复,则开始修复缺陷,
第四步,当程序员与测试员对缺陷的处理意见不一致时,仲裁委员会负责仲裁,避免程序员与测试员的踢皮球现象。
最后,一旦程序员修复缺陷,测试员需要重新验证缺陷的修复,如果发现修复失败,将再次将缺陷提交给程序员,程序员再次修复,直至测试员验证修复成功,才能正式关闭缺陷。集成测试
是在单元测试的基础上,将多个模块组合在一起进行测试的过程,主要检查各个软件单元之间的接口是否正确。具体说一下,集成测试的主要任务
(1)将各模块连接起来,检查各个模块相互调用时,数据穿越模块接口时是否会丢失。
(2)各子功能组合起来能否达到预期要求的各项功能。
(3)一个模块的功能是否会对其他模块的功能产生不利影响。
(4)全局数据结构是否有问题,是否会被异常修改。
(5)单个模块的误差累积起来,是否会放大,从而达到不可接受的程度。非渐增式集成
先分别测试每个模块,再把所有模块按设计要求放在一起,组合成所需要的程序。渐增式集成
把下一个要测试的模块与已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合起来进行测试,这种每次增加一个模块的方法称为渐增式集成。自顶向下集成
从主控模块开始,沿着程序控制层次结构向下移动,逐渐把各模块组合起来测试。自底向上集成
从软件结构最底层的模块开始,按照程序的层次结构向上移动,逐渐把各模块组合起来测试。集成测试的过程
分为以下3个阶段:
(1)计划阶段:完成集成测试计划,制定集成测试策略;
(2)设计实现阶段:建立集成测试环境,完成测试设计和开发;
(3)执行评估阶段:执行集成测试用例,记录和评估测试结果。系统测试
将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行。简述系统测试的流程。
(1)制定系统测试计划
系统测试小组各成员共同协商测试计划。该计划主要包括:
测试范围(内容)
测试方法
测试环境与辅助工具
测试完成准则
人员与任务表
项目经理审批《系统测试计划》。该计划被批准后,转向第二步。
(2)设计系统测试用例
系统测试小组各成员依据《系统测试计划》、需求规格说明书以及指定测试文档模板,设计《系统测试用例》。
测试组长邀请开发人员和同行专家,对《系统测试用例》进行技术评审。该测试用例通过技术评审后,转向第三步。
(3)执行系统测试
(4)缺陷管理与改错性能测试
对软件的运行性能指标进行测试,判断系统集成之后,在实际的使用环境下能否稳定、可靠地运行。强度测试
模拟实际情况下软/硬件环境和用户使用过程的系统负荷,长时间或超负荷地运行测试软件来测试系统,以检验系统能力的最高限度,从而了解系统的可靠性、稳定性等。
强度测试也称压力测试、负载测试。安全性测试
检查系统对非法侵入的防范能力,验证安装在系统内的保护机构是否确实能够对系统进行保护,使之不受各种非常的干扰。兼容性测试
是指检查软件之间能否正确地进行交互和共享信息。
向后兼容:可以使用软件的以前版本
向前兼容:可以使用软件的未来版本简述优秀的用户界面包括的几个要素。(教材P342)
①符合标准和规范
②直观性
③一致性
④灵活性
⑤舒适性
⑥正确性
⑦实用性可用性测试检测用户使用软件是否满意,具体体现:
(1)操作是否方便?
(2)用户界面是否友好?
(3)用户找到他们想要的东西是否容易?
(4)浏览菜单是否方便等。软件配置管理( SCM )
是一种标识、组织、控制修改的技术。是软件质量保证的重要一环,其主要责任是控制软件开发过程中的各种变化。优秀的软件测试员应具备的素质(教材p32)
具有探索精神、具有良好的计算机编程基础、故障排除能手、坚持不懈的精神、具有创新精神和超前意识、追求完美、判断准确、具有整体观念,对细节敏感、团队合作精神,沟通能力。……
分析设计题
1、某部门要输出2005~2010年的统计表,其中报表日期由6位数字组成,前4位为年份,后两位为月份。试用等价分类法设计测试用例。
答案:
第一步:划分等价类
输入及外部条件 | 有效等价类 | 无效等价类 |
---|---|---|
报表日期的类型及长度 | 6位数字字符① | 有非数字字符 ④ 少于6个数字字符 ⑤ 多于6个数字字符 ⑥ |
年份范围 | 在2005~2010之间② | 小于2005 ⑦ 大于2010 ⑧ |
月份范围 | 在1~12之间③ | 小于1 ⑨ 大于12 ⑩ |
第二步:为有效等价类设计测试用例
对表中编号为①②③的3个有效等价类用一个测试用例覆盖:
编号 | 测试数据 | 期望结果 | 覆盖范围 |
---|---|---|---|
1 | 200605 | 输入有效 | 等价类①②③ |
第三步:为每一个无效等价类至少设计一个测试用例
编号 | 测试数据 | 期望结果 | 覆盖范围 |
---|---|---|---|
2 | 001MAY | 输入无效 | 等价类④ |
3 | 20075 | 输入无效 | 等价类⑤ |
4 | 2007001 | 输入无效 | 等价类⑥ |
5 | 2002 | 输入无效 | 等价类⑦ |
6 | 2012 | 输入无效 | 等价类⑧ |
7 | 200600 | 输入无效 | 等价类⑨ |
8 | 200613 | 输入无效 | 等价类⑩ |
2、订购单的检查:
(1)如果金额超过3000元,状态又未过期,则发出批准单和提货单;
(2)如果金额超过3000元,但状态过期了,则不发批准单;
(3)如果金额低于3000元,则不论状态是否过期都发出批准单和提货单,在过期的情况下还需要发出通知单。
将这段需求进行决策表分析。(10分)
答案:
金额 | >3000 | >3000 | <=3000 | <=3000 |
---|---|---|---|---|
状态 | 未过期 | 已过期 | 未过期 | 已过期 |
发出批准单 | √ | √ | √ | |
发出提货单 | √ | √ | √ | |
发出通知单 | √ |
3、
IF 顾客订额≥1000IF 顾客信誉好订单设“优先”标志ELSEIF 顾客是老顾客订单设“优先”标志ELSE订单设“正常”标志ENDIFENDIF
ELSE
订单设“正常”标志
ENDIF
根据上述内容,建立决策表。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ||
条件 | 顾客订额≥1000 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
顾客信誉好 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | |
顾客是老顾客 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | |
处理 | 订单设“优先”标志 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
订单设“正常”标志 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 |
4、为以下所示的程序段设计测试用例,要求分别用语句覆盖、判定覆盖、条件覆盖3种测试方法。
int Func6( int a, int b, int c, int x )
{if( (a>1) && (b<2)) x=c+1;if((a==3) || (x>3)) x=x+c;printf( “%d\n”, x );return x;
}
流程图中,T 表示取真分支,F 表示取假分支,p1、p2、p3、p4 代表子路径。
按表中格式输入设计的测试用例。
测试用例编号 | 输入数据 | 预期输出 | 执行路径 | |||
a | b | c | x | x | ||
① 语句覆盖 ,设计测试用例时应保证程序中 每一条可执行语句 至少应执行一次。
测试用例编号 | 输入数据 | 预期输出 | 执行路径 | |||
a | b | c | x | x | ||
tc1 | 3 | 1 | 3 | 0 | 7 | p2→p4 |
② 判定覆盖,设计测试用例时应保证程序中 每个判定取真分支和假分支 至少一次。
测试用例编号 | 输入数据 | 预期输出 | 执行路径 | |||
a | b | c | x | x | ||
tc2 | 3 | 1 | 3 | 0 | 7 | p2→p4 |
tc3 | 4 | 2 | 2 | 0 | 0 | p1→p3 |
或
测试用例编号 | 输入数据 | 预期输出 | 执行路径 | |||
a | b | c | x | x | ||
tc4 | 1 | 2 | 2 | 4 | 6 | p1→p4 |
tc5 | 2 | 1 | 1 | 2 | 2 | p2→p3 |
③条件覆盖,设计测试用例时应保证程序中每个复合判定表达式中,每个简单判定条件的取真和取假情况至少执行一次。
测试用例编号 | 输入数据 | 预期输出 | 执行路径 | |||
a | b | c | x | x | ||
tc4 | 3 | 1 | 3 | 0 | 7 | p2→p4 |
tc5 | 1 | 2 | 2 | 0 | 0 | p1→p3 |
5、分析下面这幅程序图的环复杂度是多少,并基于独立路径测试选取一组独立路径。
环复杂度是一种定量描述程序结构复杂度的度量模型,能够反映判定节点和循环的引入对程序结构以及执行路径数目带来的不利影响。
环复杂度的确定 3种方法
(1)直观观察法
(2)公式计算法
(3)判定节点法
① 直观观察法
环复杂度等于程序图中封闭区域和开放区域的个数。
程序图有4个封闭区域和1个开发区域,其环复杂度为5。
V(G)=5
② 公式计算法
利用程序图中包含的边和节点的数量来计算环复杂度。
设E为程序图的边数,N为图的节点数,则环复杂度为:
E=10 ,N=7
V(G)=E-N+2=5
③ 判定节点法
若设P为程序图中的判定结点数,则P=4
V(G)=P+1=5
应该设计的测试用例的数目为5。
独立路径的选择主要包括两个步骤
(1)先确定一条主路径
(2)再根据主路径抽取其他独立路径。
主路径一般是风险最高的执行路径,路径的风险可以看做是,路径出错的概率高,或者路径中缺陷对用户影响大。
主路径:
P1(A,B,C,G)
其他独立路径:
P2(A,D,F,G)
P3(A,B,E,F,G)
P4(A,B,C,B,C,G )
P5(A,D,E,F,G)
6、描述以下程序结构集成测试的自顶向下广度优先测试过程(要求图示加说明)。
自顶向下集成广度优先策略:从主控模块开始自顶向下,沿着水平方向把每一层中所有直接隶属于上一层的模块集成起来,直至最底层。
答案:
①首先对主模块A进行单元测试,用桩模块S1、S2和S3替代被调用的模块B、C和D。
② 其后把模块B、C和D与顶层模块A连接起来,再对模块B和D配以桩模块S4和S5,以替代对模块E和F的调用。
③ 最后去掉桩模块S4和S5,把模块E和F集成到系统中,再对软件的完整结构进行测试。
7、描述以下程序结构的集成测试的自底向上集成测试过程(要求图示加说明)
自底向上集成测试策略:从软件结构最底层的模块开始,按照程序的层次结构向上移动,逐渐把各模块组合起来测试。
答案:
《软件质量保证与测试》课程的学习相关推荐
- 软件质量保证与测试笔记——江湖救急版
软件质量保证与测试笔记--江湖救急版 Powered by DZY 以下部分图片来源于老师课件,仅供学习交流使用,侵权致删! Ch1 软件质量与测试概念 软件质量的定义 软件质量是"反映实体 ...
- 软件质量保证与测试文档怎么写,软件质量保证与测试整理版.pdf
软件质量保证与测试整理版.pdf 还剩 16页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: 把不可能变成可能才 ...
- 软件质量保证与测试技术习题
软件质量保证与测试技术习题 第一章 引论 第二章 软件质量与软件缺陷 第三章 软件测试基础 第4章 软件测试的方法 第五章单元测试.第六章集成测试作业 第七章系统测试作业 第八章验收测试作业 第一章 ...
- 复习资料:软件质量保证与测试
复习资料:软件质量保证与测试 第一章 绪论 解答题 第二章 软件测试策略 解答题 第三章 黑盒测试 解答题 第四章 白盒测试 解答题 第五章 软件测试过程 第六章 面向对象测试 解答题: 第七章 自动 ...
- 慕课软件质量保证与测试(第九章.程序中隐藏错误数量估计)
慕课金陵科技学院.软件质量保证与测试.第九章.软件质量与质量保证.程序中隐藏错误数量估计 0 目录 9 软件质量与质量保证 9.2 程序中隐藏错误数量估计 9.2.1 课堂重点 9.2.2 测试与作业 ...
- 山东大学软件质量保证与测试技术复习纲要
考纲 目录:https://blog.csdn.net/dkbnull/article/details/87933295 软件质量保证与测试技术复习提纲 1.3 1.5 2.1 2.3 2.5 ...
- 软件质量保证与测试实验(实验三.逻辑覆盖测试用例设计)
软件质量保证与测试.实验三.逻辑覆盖测试用例设计 0 目录 1 逻辑覆盖测试用例设计 1.1 逻辑覆盖测试用例设计 1.1.1 实验目的 1.1.2 实验预习 1.1.3 实验内容及要求 1.1.4 ...
- 慕课软件质量保证与测试(第三章.课后作业)
慕课金陵科技学院.软件质量保证与测试.第三章.黑盒测试.课后作业 0 目录 3 黑盒测试 3.10 课后作业 3.10.1课堂重点 3.10.2测试与作业 4 下一章 0 目录 3 黑盒测试 3.10 ...
- 慕课软件质量保证与测试(第五章.课后作业)
慕课金陵科技学院.软件质量保证与测试.第五章.软件测试过程.课后作业 0 目录 5 软件测试过程 5.7 课后作业 5.7.1 课堂重点 5.7.2 测试与作业 6 下一章 0 目录 5 软件测试过程 ...
最新文章
- JavaScript语言基础15
- SAP ABAP ALV构建动态输出列与构建动态内表
- sweetalert使用随笔
- python hexdigest,Java方法,可以为Hex中的HMAC-SHA256提供与Python方法相同的输出
- Google叫停出售刷脸监控技术,只因目前无法避免被滥用
- python 装饰器(复杂一点的)
- 贴片电容封装及尺寸示意图
- 解读:【小爱同学】智能问答系统
- csv excel 对比
- 极域电子书包教师端程序启动介绍
- Oracle 18c安装操作指导手册
- OPC服务器简介和入门介绍
- 2017年度全球一级市场“投资龙虎榜”发布 | 钛媒体Pro独家
- 专业的户外直播视频传输系统是如何搭建起来的?通过GB28181协议建立的户外直播方案
- VS(SQL Server一样)设置护眼背景色
- PhpStorm 远程连接服务器
- 个人云电脑-推荐方案 - Parsec / Fastlink
- 我用python做股票_十分钟学会用Python交易股票
- 【Linux从青铜到王者】第二十三篇:Linux网络基础第四篇之kcp协议
- 伪时序分析文献阅读——PAGA
热门文章
- oracle 分批提取数据,Oracle创建关系分批抽取测试数据
- 炸掉研发“金字塔”,让鸿蒙成为世界的Harmony OS
- w ndows使用W F,Surface快捷键知多少 事半功倍好帮手
- Java基于springboot开的同学录系统(可以加同学群的功能类似于QQ)有论文
- 我发朋友圈并不是为了取悦你
- 感恩,不只是一种美德
- 笔记本装 Win10 后的亮度调节和 WiFi 问题
- 因果图法+判定表+正交试验法自我学习(转)
- 计算机打印驱动怎么安装,打印机安装步骤,小编教你电脑怎么安装打印机驱动...
- Azure-创建AKS集群