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

本文主要是介绍软件工程理论与实践 (吕云翔) 第十三章 软件测试方法与过程课后习题及其答案解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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)黑盒测试是从(C)观点的测试,白盒测试是从(C)观点的测试。
A.开发人员、管理人员
B.用户、管理人员
D.开发人员、用户
C.用户、开发人员

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

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

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss