软考125-上午题-【软件工程】-传统软件的测试策略

2024-04-15 11:28

本文主要是介绍软考125-上午题-【软件工程】-传统软件的测试策略,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、传统软件的测试策略

有效的软件测试实际上分为4步进行,即:单元测试、集成测试、确认测试、系统测试。

1-1、单元测试(模块测试)

单元测试也称为模块测试,在模块编写完成且无编译错误后就可以进行。

单元测试侧重于模块中的内部处理逻辑和数据结构。如果选用机器测试,般用白盒测试法。这类测试可以对多个模块同时进行。

1)单元测试的测试内容

单元测试的主要检测模块的以下5个特征:

1、模块的接口

模块的接口保证了测试模块的数据流可以正确地流入、流出

在测试中应检查以下要点:

①、测试模块的输入参数和形式参数在个数、属性、单位上是否一致。

②、调用其他模块时,所给出的实际参数和被调用模块的形式参数在个数、属性、单位上是否一致。

③、调用标准函数时,所用的参数在属性、数目和顺序上是否正确

④、全局变量在各模块中的定义和用法是否一致。

⑤、输入是否仅改变了形式参数。

⑥、开/关的语句是否正确。

⑦、规定的 IO 格式是否与输入/输出语句一致。

⑧、在使用文件之前是否已经打开文件或使用文件之后是否已经关闭文件。

2、局部数据结构

在单元测试中,局部数据结构出错是比较常见的错误,在测试时应重点考虑以下因素。

①、变量的说明是否合适

②、是否使用了尚未赋值或尚未初始化的变量。

③、变量的初始值或默认值是否正确。

④、变量名是否有错(例如拼写错)

3、重要的执行路径

4、出错处理

5、边界条件

1-2、单元测试的过程

由于模块不是独立运行的程序,各模块之间存在调用与被调用的关系。在对每个模块进行测试时,需要开发两种模块。单元测试环境如图所示。

1、驱动模块

相当于一个主程序,接收测试例子的数据,将这些数据送到测试模块,输出测试结果。

2、桩模块(也称为存根模块)

桩模块用来代替测试模块中所调用的子模块,其内部可进行少量的数据处理,目的是为了检验入口,输出调用和返回的信息。

提高模块的内聚度可以简化单元测试。如果每个模块只完成一种功能,对于具体模块来讲。所需的测试方案数据会显著减少,而且更容易发现和预测模块中的错误。

高内聚、低耦合

1-3、真题

真题1:

真题2:

1-4、集成测试

集成测试就是把模块按系统设计说明书的要求组合起来进行测试。

即使所有的模块都通过了测试,在集成之后,仍然可能出现问题。

通常,集成测试有两种方法:

1、非增量集成

2、增量集成。

 

非增量集成:

分别测试各个模块,再把这些模块组合起来进行整体测试。

非增量式集成可以对模块进行并行测试,能充分利用人力,并加快工程进度。但这种方法容易混乱,出现错误不容易查找和定位。

 

增量集成:

即以小增量的方式逐步进行构造和测试。

增量式测试的范围一步步扩大,错误容易定位,更易于对接口进行彻底测试,并且可以运用系统化的测试方法。下面讨论一些增量集成策略。

1)、自顶向下集成测试

自顶向下集成测试是一种构造软件体系结构的增量方法。模块的集成顺序为从主控模块(主程序)开始,沿着控制层次逐步向下,以深度优先或广度优先的方式将从属于(或间接从属于)主控模块的模块集成到结构中。

如图 5-10 所示,深度优先集成是首先集成位于程序结构中主控路径上的所有构件,也可以根据特定应用系统的特征进行选择。

不用编写驱动模块,需要编写桩模块。

集成过程可以通过下列5个步骤完成:

(1)主控模块用作测试驱动模块,用这些从属于主控模块的所有模块代替桩模块。

(2)依靠所选择的集成方法(深度优先、广度优先),每次用实际模块替换一个从属桩模块。

(3)在集成每个模块后都进行测试。

(4)在完成每个测试集之后,用实际模块替换另一个桩模块。

(5)可以执行回归测试,以确保没有引入新的错误。

 

2)、自底向上集成测试

自底向上集成测试就是从原子模块(程序结构的最底层构件,桩模块)开始进行构造和测试。由于构件是自底向上集成的,在处理时所需要的从属于给定层次的模块总是存在的,因此,没有必要使用桩模块。

自底向上集成策略可以利用以下步骤来实现:

(1)连接低层构件以构成完成特定子功能的簇。

(2)编写驱动模块(测试的控制程序)以协调测试用例的输入和输出。

(3)测试簇。

(4)去掉驱动程序,沿着程序结构向上逐步连接簇。遵循这种模式的集成如图 5-11 所示。

连接相应的构件形成簇 1、簇2和簇 3,利用驱动模块(图中的虚线框)对每个进行测试。簇1和簇2中的构件从属于模块 Ma,去掉驱动模块D1,和 D2,将这两个簇直接与 M1相连。与之相类似,在簇3与 Mb,连接之前去掉驱动模块 D3,最后将 Ma和Mb与构件 Mc连接在一起。

不需要编写桩模块,需要编写驱动模块

3)、回归测试

每当加入一个新模块作为集成测试的一部分时,软件发生变更,建立了新的数据流路径,可能出现新的IO,以及调用新的控制逻辑。这些变更可能会使原来可以正常工作的功能产生问题。

在集成测试策略的环境下,回归测试是重新执行已测试过的某些子集,以确保变更没有传播不期望的副作用。

回归测试有助于保证变更不引入无意识行为或额外的错误。回归测试可以手工进行,方法是重新执行所有测试用例的子集,或者利用捕捉/回放工具自动执行。捕捉/回放工具使软件工程师能够为后续的回放与比较捕捉测试用例和测试结果。

回归测试要执行的测试子集包含以下3 种测试用例:

  • 能够测试软件所有功能的具有代表性的测试样本。
  • 额外测试,侧重于可能会受变更影响的软件功能。
  • 侧重于已发生变更的软件构件测试。

随着集成测试的进行,回归测试的数量可能变得相当庞大,因此,应将回归测试用例设计成只包括设计每个主要程序功能的一个或多个错误类的测试。一旦发生变更,对每个软件功能重新执行所有的测试是不切实际的,而且效率很低。

4)、冒烟测试

当开发软件产品时,冒烟测试是一种常用的集成测试方法,是时间关键项目的决定性机制,它让软件团队频繁地对项目进行评估。

1-5、真题

真题1:

真题2:

 真题3:

真题4:

编写驱动模块编写桩模块
自顶向下
自底向上

这篇关于软考125-上午题-【软件工程】-传统软件的测试策略的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/905687

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Deepseek使用指南与提问优化策略方式

《Deepseek使用指南与提问优化策略方式》本文介绍了DeepSeek语义搜索引擎的核心功能、集成方法及优化提问策略,通过自然语言处理和机器学习提供精准搜索结果,适用于智能客服、知识库检索等领域... 目录序言1. DeepSeek 概述2. DeepSeek 的集成与使用2.1 DeepSeek API

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

SpringBoot中的404错误:原因、影响及解决策略

《SpringBoot中的404错误:原因、影响及解决策略》本文详细介绍了SpringBoot中404错误的出现原因、影响以及处理策略,404错误常见于URL路径错误、控制器配置问题、静态资源配置错误... 目录Spring Boot中的404错误:原因、影响及处理策略404错误的出现原因1. URL路径错

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题