软件工程理论与实践 (吕云翔) 第十三章 软件测试方法与过程课后习题及其答案解析

第十三章 软件测试方法与过程

1.判断题

(1)白盒测试无须考虑模块内部的执行过程和程序结构,只需了解模块的功能即可。(×)

解析:白盒测试需要考虑模块内部的执行过程和程序结构,以便设计测试用例和覆盖代码路径。

(2)白盒测试是结构测试,主要以程序的内部逻辑为基础设计测试用例。(√)
(3)单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试(×)

解析:单元测试通常应该先进行“人工走查”来确保代码质量,然后以白盒测试为主,辅以黑盒测试进行动态测试。

(4)白盒测试法是一种静态测试方法,主要用于模块测试。(×)

解析:白盒测试法是一种动态测试方法,通过执行代码路径来检查程序的正确性。

(5)在等价分类法中,为了提高测试效率,一个测试用例可以覆盖多个无效等价类。(×)

解析:等价类划分法中,每个测试用例应该只覆盖一个等价类,以确保每个等价类都得到适当的测试。

(6)功能测试是系统测试的主要内容,检查系统的功能和性能是否与需求规格说明相同。(×)

解析:

功能测试是系统测试的一部分,但并不是系统测试的主要内容。系统测试还包括其他类型的测试,如性能测试、安全测试等,以验证系统的功能、性能和符合性等方面。

2.选择题

(1)白盒法又称为逻辑覆盖法,主要用于(D)
A.确认测试
B.系统测试
C.α测试
D.单元测试
(2)以下哪种测试方法不属于白盒测试技术(B)。
A.基本路径测试
B.边界值分析测试
C.循环覆盖测试
D.条件测试
(3)白盒测试法是根据程序的(B)来设计测试用例的方法。
A.输出数据
B.内部逻辑
C.功能
D.输数据
(4)软件的集成测试工作最好由(C)承担,以提高集成测试的效果。
A.该软件的设计人员
B.该软件开发组的负责人员
D.该软件的编程人员
C.不属于该软件开发组的软件设计人员
(5)黑盒测试是从(B)观点的测试,白盒测试是从(B)观点的测试。
A.开发人员、管理人员
B.用户、管理人员
D.开发人员、用户
C.用户、开发人员

(6)使用白盒测试方法时确定测试数据应根据(B)和指定的覆盖标准
B.程序的复杂程度
A.程序的内部逻辑
D.程序的功能
C.程序的难易程度

(7)黑盒测试方法根据(B)设计测试用例。
A.程序的调用规则
B.软件要完成的功能
C.模块间的逻辑关系
D.程序的数据结构
(8)在软件测试中,逻辑覆盖标准主要用于(A).
D.回归测试方法
A.白盒测试方法
法B.黑盒测试方法
C.灰盒测试方法
(9)集成测试的主要方法有两个,一个是(B)一个是(B)。
B.等价类划分方法、边缘值分析方法
A.白盒测试方法、黑盒测试方法
D.因果图方法、错误推测方法
C.渐增式测试方法、非渐增式测试方法
(10)单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是(A)。
B.局部数据结构
A.系统功能
C.重要的执行路径
D.错误处理

3.简答题

(1)什么是黑盒测试?有哪些常用的黑盒测试方法?

​ 在黑盒测试里,测试人员把被测试的软件系统看成是一个黑盒子,并不需要关心盒子的内部结构和内部特性,而只关注软件产品的输人数据和输出结果,从而检查软件产品是否符合它的功能说明

测试方法:

  • 等价类划分法
  • 边界值分析法
  • 错误推测法
  • 因果图法
  • 决策表法
  • 场景法

(2)什么是白盒测试?有哪些常用的白盒测试方法?

​ 白盒测试关注软件产品的内部细节和逻辑结构,即把被测的程序看成是一个透明的盒子.

测试方法:

  • 代码检查法
  • 静态结构分析法
  • 程序插桩技术
  • 逻辑覆盖法
  • 基本路径法

(3)请对比白盒测试和黑盒测试。

​ 白盒测试和黑盒测试是软件测试中的两种方法。通常在白盒测试中交叉着黑盒测试,黑盒测试中也交叉着白盒测试。

白盒测试:

  • 关注系统的内部逻辑和代码。
  • 基于对系统内部的了解来设计测试用例,覆盖代码的各个路径和逻辑分支。
  • 需要测试人员具备编程和软件开发知识。

黑盒测试:

  • 关注系统的外部行为和功能。
  • 基于对系统功能和接口的了解来设计测试用例,验证系统的输出和行为是否符合预期。
  • 不需要测试人员了解系统的内部实现。

​ 白盒测试侧重于验证系统的正确性和缺陷检测,黑盒测试侧重于验证系统的功能和需求是否满足。在实际测试中,通常会结合使用这两种方法。

(4)请简述静态测试和动态测试的区别。

静态测试和动态测试是软件测试中的两种方法。

静态测试:

  • 在代码执行之前进行分析和评审。
  • 针对文档、源代码等进行测试。
  • 目的是发现潜在问题和提高软件质量。
  • 示例技术包括代码审查、文档审查、静态分析工具等。

动态测试:

  • 在代码执行期间进行验证。
  • 针对软件的功能、性能、安全等进行测试。
  • 目的是检测错误、评估系统性能。
  • 示例技术包括单元测试、集成测试、性能测试、安全测试等。

静态测试侧重于分析和评审,动态测试侧重于实际运行和验证。通常会结合使用这两种方法进行全面的软件测试。

(5)单元测试、集成测试和系统测试各自的主要目标是什么?它们之间有什么不同?相互之间有什么关系?

单元测试目标:验证最小可测试单元的功能。
集成测试目标:验证多个单元之间的交互和协作。
系统测试目标:验证整个软件系统的完整功能、性能和一致性。
它们之间的关系:单元测试是构建块,为集成测试提供基础;集成测试为系统测试提供可靠的功能子集。

(6)什么是集成测试?非增量测试与增量测试有什么区别?增量测试如何组装模块?

​ 集成测试是多个单元的聚合,许多单元组合成模块,而这些模块又聚合成程序的更大部分。集成测试是单元测试的逻辑扩展,它的最简单形式是将两个已经测试通过的单元组合成一个构件,并且测试它们之间的接口。集成测试是在单元测试的基础上,测试将所有的软件单元按照概要设计规则的要求组装成模块、子系统或系统的过程中,各部分功能是否达到或实现相应技术指标及要求的活动。

​ 非增量集成是先分别测试每个模块,再将所有模块按照设计要求放在一起结合成所要的程序;增量集成是将下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完后再将下一个应测试的模块结合起来进行测试。

在增量测试中,可以采用自顶向下或自底向上的方法来组装模块。

(7)什么是调试?什么是测试?二者有何区别?

调试(Debugging)是通过修复程序中的错误和问题,确保程序按预期运行。

测试(Testing)是通过执行一系列操作和输入,评估系统的行为、功能和性能。

区别:

  • 目标:调试解决错误和问题,使程序正确运行;测试评估系统行为和符合性。
  • 方法:调试追踪代码、检查变量状态;测试设计和执行测试用例、比较结果。
  • 阶段:调试发生在开发过程中;测试可以在不同阶段进行。
  • 关注点:调试关注程序内部错误;测试关注系统行为、功能和性能。

(8)软件测试应该划分为几个阶段?各个阶段应重点测试的内容是什么?

软件测试通常可以划分为以下几个阶段,每个阶段都有其特定的重点和目标:

  1. 单元测试(Unit Testing):
    • 目标:测试最小的可测试单元,例如函数、方法或模块。
    • 重点内容:验证单元的功能和逻辑正确性,检查边界条件、异常处理和各种路径覆盖。
  2. 集成测试(Integration Testing):
    • 目标:测试多个模块或组件之间的集成。
    • 重点内容:验证模块之间的接口和交互是否正确,检查数据传递、通信和协作。
  3. 系统测试(System Testing):
    • 目标:测试整个软件系统的功能、性能和可靠性。
    • 重点内容:验证系统的功能是否符合需求规格,检查系统的完整性、兼容性和可用性。
  4. 验收测试(Acceptance Testing):
    • 目标:由最终用户或客户进行的测试,确认系统是否满足预期需求。
    • 重点内容:验证系统是否符合用户的期望和需求,检查系统是否可交付和可接受。
4.应用题

(1)某程序功能说明书指出,该程序的输入数据为每个学生的学号。其中,学号由以下
三个部分构成:
①人学年份:4位数字(1900~2999)之间的数字。
②专业编码:0或1开头的4位数字。
③序号:2位数字。
试用等价类划分法设计测试用例。

使用等价类划分法,我们可以将输入数据划分为有效等价类和无效等价类,以设计测试用例。根据给定的要求,我们可以进行如下划分:

有效等价类:

  1. 人学年份:4位数字(1900~2999)之间的数字。
  2. 专业编码:以0或1开头的4位数字。
  3. 序号:2位数字。

无效等价类:

  1. 人学年份:小于1900的数字、大于2999的数字、非数字字符。
  2. 专业编码:不以0或1开头的4位数字、非数字字符。
  3. 序号:非2位数字、非数字字符。

根据上述划分,我们可以选择以下测试用例:

有效等价类测试用例:

  1. 输入:1998, 0123, 05
    预期结果:有效输入,符合要求。
  2. 输入:2025, 1123, 99
    预期结果:有效输入,符合要求。

无效等价类测试用例:

  1. 输入:1800, 0123, 05
    预期结果:无效输入,人学年份不在有效范围内。
  2. 输入:3050, 0123, 05
    预期结果:无效输入,人学年份不在有效范围内。
  3. 输入:2025, 6123, 05
    预期结果:无效输入,专业编码不符合要求。
  4. 输入:2025, 023, 05
    预期结果:无效输入,专业编码不符合要求。
  5. 输入:2025, 0123, 5
    预期结果:无效输入,序号不是2位数字。
  6. 输入:2025, 0123, 059
    预期结果:无效输入,序号不是2位数字。

通过设计这些测试用例,我们可以覆盖各个等价类,并验证程序对于不同等价类的处理是否正确。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/160568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软文推广有什么作用?媒介盒子分享

数字时代,品牌方以往的营销打法可能需要应时而变,传统的广告模式很难将品牌推广出去,原因就在于传统广告的成本高昂并且针对性较弱,而软文推广能够通过较低的成本将产品或品牌信息送到消费者面前,今天媒介盒子就来分享…

58同城算法工程师一面&二面 面试题

来源:投稿 作者:LSC 编辑:学姐 一面 40min 1.Gbdt和xgboost的区别 XGBoost是对GBDT的改进和扩展,它提供了更高的效率、更好的性能、正则化技术、内置特征选择等功能。 (1)正则化: GBDT使用基本的树模型,并在每一轮…

vue3.0 + qiankun遇到的问题

进入子应用再回到主应用切换动态路由时 TypeError: Cannot read properties of undefined (reading ‘appWrapperGetter’) application ‘plat’ died in status UNMOUNTING: instance.$destroy is not a function 第一个报错是因为子应用切走时没有销毁 vue的实例&#xff0…

常用RFC规范汇总

官网:https://www.rfc-editor.org/ The RFC Series (ISSN 2070-1721) contains technical and organizational documents about the Internet, including the specifications and policy documents produced by five streams: the Internet Engineering Task Force …

TCP/IP

分层模型 TCP 传输控制协议 UDP 用户数据包协议 四层 应用层 负责发送/接收消息 传输层 负责拆分和组装 .期间会有编号 网络层 TCP/UDP 属于网络层, 不会判断和处理编号 数据链路层 以太网 ,网络设备 TCP 连接 TCP连接需要端口,进行通信 Java 通过Socket 接收消息 发送 …

基于SpringBoot+Vue的体检预约管理系统

基于SpringBootVue的体检预约管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 管理员界面 用户界面 摘要 体检预约管理系统是一种基于Spring Boot…

Vue3常用操作

一、Vue3项目构建 1、安装最新版本vue npm create vuelatest 2、选择需要的配置 3、进入项目 cd 项目名称 4、下载依赖 npm install 5、启动项目 npm run dev

chatGLM3微调

文章目录 一、问答数据集生成器使用设置问题启动使用产出效果 二、进行微调第一步:下载模型第二步:项目准备2.1 下载项目2.2 然后使用 pip 安装依赖2.3 开始 第三步进行微调3.1安装相关依赖3.2准备数据集,并且上传3.3对数据集进行预处理3.4 进…

如何使用技术SEO来优化评论

你在网上购买吗?我的意思是,在当今时代,谁不这样做?作为买家,无论您想购买什么,您都了解全面和高质量评论的价值。这是您在决定是否购买产品时考虑的重要因素。 这就是为什么许多人在网上购物之前使用评论…

移动端click事件、touch事件、tap事件的区别

在移动端,有三种常见的事件类型,click事件、touch事件、tap事件。它们的区别如下: click事件:click事件是在用户点击屏幕的时候触发,如果是移动设备,则会在用户点击屏幕的同时触发touch事件。但是&#xff…

【开源】基于Vue和SpringBoot的康复中心管理系统

项目编号: S 056 ,文末获取源码。 \color{red}{项目编号:S056,文末获取源码。} 项目编号:S056,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员…

uni-app中vue3+setup实现下拉刷新、上拉加载更多效果

在小程序或各类app中,下拉刷新和上拉加载更多是极为常见和使用非常频繁的两个功能,通过对这两个功能的合理使用可以极大的方便用户进行操作。 合理的设计逻辑才能更容易挽留住用户,因为这些细节性的小功能点就变得极为重要起来。 那么在uni…

基于WEB的停车场管理系统的设计和实现【附源码】

基于WEB的停车场管理系统的设计和实现 摘 要 随着现代社会的快速发展,人民生活水平快速提高,汽车的数量飞速增加,与此同时停车问题也越来越受到人们的关注,为了实现对停车场进行有效的管理,结合一些停车场的模式和现状…

游戏被攻击了怎么办

随着网络技术和网络应用的发展,网络安全问题显得越来越重要,在创造一个和谐共赢的互联网生态环境的路途中总是会遇到各种各样的问题。最常见的当属于DDOS攻击(Distributed Denial of Service)即分布式阻断服务。由于容易实施、难以…

【LeetCode刷题】--40.组合总和II

40.组合总和II 本题详解&#xff1a;回溯算法 class Solution {public List<List<Integer>> combinationSum2(int[] candidates, int target) {int len candidates.length;List<List<Integer>> res new ArrayList<>();if (len 0) {return re…

深度学习之基于YoloV5车辆和行人目标检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介YOLOv5 简介YOLOv5 特点 车辆和行人目标检测系统 二、功能三、系统四. 总结 一项目简介 # 深度学习之基于 YOLOv5 车辆和行人目标检测系统介绍 深度学习在…

2023 年 亚太赛 APMCM 国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 cs数模团队在亚太赛 APMCM前为大家提供了许多资料的内容呀&…

【西行纪年番】孙悟空对战阴界王,素衣奄奄一息,巨灵拳霸气一击

Hello,小伙伴们&#xff0c;我是拾荒君。 《西行纪年番》第20集已更新。为了救回素衣&#xff0c;孙悟空想尽办法&#xff0c;最后他拜托沙悟净帮忙&#xff0c;终于成功把自己传送到阴界。原来&#xff0c;素衣的魂魄被阴界王藏在了他制造的人偶之中。沙悟净提醒孙悟空必须在…

8.2 Windows驱动开发:内核解锁与强删文件

在某些时候我们的系统中会出现一些无法被正常删除的文件&#xff0c;如果想要强制删除则需要在驱动层面对其进行解锁后才可删掉&#xff0c;而所谓的解锁其实就是释放掉文件描述符&#xff08;句柄表&#xff09;占用&#xff0c;文件解锁的核心原理是通过调用ObSetHandleAttri…

Axios使用方式

ajax是JQUERY封装的XMLHttprequest用来发送http请求 Axios简单点说它就是一个js库,支持ajax请求,发送axios请求功能更加丰富,丰富在哪不知道 1.npm使用方式 vue项目中 npm install axios 2.cdn方式 <script src"https://unpkg.com/axios/dist/axios.min.js">…