第12章 软件测试基础(第三部分)测试类型

七、测试类型(按工程阶段划分)

单集系确收

(一)单元测试

1、单元测试/模块测试

  • 单元就是软件中最小单位(或模块)。可以是一个函数、一个过程、一个类。
  • 主要依据是模块的详细设计文档
  • 价值在于尽早发现程序的一些问题,降低后期缺陷修复代价。
  • 采用白盒、黑盒测试技术等进行,主要看测试需求。
  • 单元测试可由开发和测试工程师共同完成。
  • 针对软件程序模块进行正确性检验的测试工作

2、测试内容

测试内容

  • 单元测试主要是关注单元是否实现规定的功能,单元的逻辑是否正确,输入输出是否正确
  • 局部数据:测试在单元内的数据结构是否保持完整
  • 模块接口:模块接口既要调用其它接口,也要接受其它接口。
  • 独立路径信息无关的路径。是指在程序中至少引用了一个新的处理语句的集合,或者一个新条件的任意一条路径。
  • 出错处理:单元在运行过程中发生差错时单元是否能有效处理差错,避免程序崩溃。
  • 边界条件:对单元边界进行测试,确定单元边界是否正常。

(二)集成测试/组装测试/联合测试

1、概念

  • 在单元测试基础上,将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。主要是发现单元接口之间可能存在的问题。
  • 概要设计阶段考虑如何进行集成测试
  • 单元测试考虑各个单元内部有无问题,集成测试验证将各个单元之间合起来之后能否达到上一级设计的功能要求。
  • 集成测试需要提交文档:集成测试计划、集成测试规格说明、集成测试分析报告
  • 检验程序单元或部件的接口关系,即针对软件体系结构的构造进行的测试

2、方式

  • 一次性组装
    非增值式组装方式/整体拼装
    首先对每个模块分别进行模块测试,把所有模块组装在一起进行测试,最终得到所求的软件系统。
    优点:节省工时、人力
    缺点:当发现问题时很难定位发生问题的地方

  • 增值性组装
    渐增式组装
    首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大系统,组装中边连接边测试,最后通过增值逐步组成软件系统。
    包括自顶向下的增值方式(主干模块先暴露问题)自底向下的增值方式(最常出错的底层模块先暴露问题)、混合增值式方式(前两种的结合)

3、内容

  • 各模块连接时,穿越模块接口的数据是否丢失
  • 一个模块的功能是否会对另一个模块的功能产生不利影响
  • 各个子功能组合,能否达到预期要求的父功能
  • 全局数据结构是否有问题
  • 单个模块的误差累积是否会放大

4、完成标志

  • 成功执行测试计划中所规范的所有集成测试
  • 修正所有错误
  • 测试结果通过专门小组评审

5、桩模块/驱动模块

  • 桩模块:底层的模块。模拟调用模块功能的模块。也叫存根模块。用以代替所测模块调用的子模块。模块可以做少量的数据操作,不需要把子模块的所有功能都带进来,但不允许什么事情也不做。
  • 驱动模块:模拟上一级模块调用测试模块的模块。相当于所测模块的主程序。它接收测试数据,把这些数据传送给所测模块,最后再输出实测结果。

(三)系统测试

1、概念

  • 发现软件与系统定义不符合或与之矛盾的地方
  • 集成整个系统元素(包括硬件、外设、网络和系统软件、支持平台等)
  • 目的是验证最终软件系统是否满足用户规定的需求
  • 为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试

2、内容

  • 按照需求规格说明书逐一验证系统的质量特性
    功能测试
    健壮性测试:容错能力;恢复能力

3、典型测试

  • 恢复测试:主要检查系统的容错能力
  • 安全测试:验证系统内部的保护机制
  • 压力测试:通常用于测试应用程序或系统在高负载、高压力情况下的性能和稳定性。(异常访问量、频率或数据量)

(四)确认测试/有效性测试

  • 验证软件的功能和性能以及其他特性是否与用户要求一致,由开发方组织
  • 主要内容:以规格说明书为主来开展、确认软件有效性;做软件配置的复查工作
  • 进行有效性测试 <— 黑盒测试
  • 软件配置复查
  • 检验与证实软件是否满足软件需求说明书中规定的要求

(五)验收测试

  • 用户为主
  • 一般使用生产中的实际数据进行测试
  • 决定是否接收或拒收系统
  • 按照项目任务书或合同、约定的验收依据文档等进行的整个系统的测试与评审,决定是否接收或拒收系统。

八、测试类型(按执行代码划分)

(一)动态测试

需要运行代码去发现错误。

1、黑盒测试法

2、白盒测试法

3、灰盒测试法

  • 介于黑白盒之间
  • 既考虑程序内部结构和逻辑,又考虑功能

(二)静态测试

不需要运行程序,通过人为审查程序发现错误。

1、代码审查

2、代码走查

九、测试类型(按实施主体划分)

(一)开发方测试

  • 开发方 开发环境下
  • Alpha测试
  • 指在软件开发完后,开发方要对提交的软件进行全面的自我检查与验证,它可以队软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。

(二)用户测试

  • 用户 用户应用环境下
  • Beta测试
  • 用户通过运行和使用软件,检测与验证软件是否符合自己预期的要求

(三)第三方测试

  • 第三方
  • 技术、财务、管理等独立于开发方、用户方的第三方组织
  • 独立测试

十、测试类型(按关联代码划分)

集成测试阶段采用黑盒和白盒测试相结合的方法

(一)白盒测试

  • 逻辑和结构
    白盒测试
  • 结构测试/逻辑驱动测试/基于代码的测试
  • 白盒测试把软件视为一个透明的盒子,盒子中程序的每一步如何进行分支、如何进行控制、数据如何流动……
  • 基于程序内部的结构、逻辑来设计测试用例

(二)黑盒测试

  • 功能
    黑盒测试
  • 功能测试/基于规格说明书的测试/基于数据驱动的测试
  • 不透明的黑色盒子,不清楚内部程序的结构和逻辑
  • 从用户角度去考虑产品的功能、特性并验证
  • 主要用于集成测试和确认测试阶段

十一、测试类型(按质量特性划分)

质量特性

十二、测试类型(按符合性情况划分)

(一)符合性测试

测试软件有没有符合相关的要求。

1、先决条件

  • 符合性准则文件(标准、合同等)
  • 就绪的软件(软件所有项均为可用状态、文档)
  • 软件的系统元素

十三、测试类型(回归测试)

(一)软件有变动的情况

软件发生变动时需要进行回归测试。

1、对缺陷修复
  • 首先验证缺陷是否正确修复
  • 然后测试缺陷修复可能影响到的功能是否正确
2、对新增功能
  • 验证新功能的正确性
  • 测试可能受到影响的其他功能
3、对删减功能
  • 检测是否影响到保留的功能

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Linux安装软件没有权限 Permission denied

切换到root用户即可 另一个原因&#xff1a; 脚本没有可执行权限 chmod x 脚本名即可

google search API 获取

登录谷歌云启动服务 首先登录谷歌云Google Cloud: https://console.cloud.google.com/&#xff0c;登录后创建一个项目。 选择创建的项目&#xff0c;进入API库。搜索Google Search。 选择custom Search API并启用。 此外&#xff0c;有个非常具有类似的API-- Google Search …

口袋实验室--使用AD2高效调试IIC、UART、SPI等低速接口

目录 1. 简介 2. 调试过程 2.1 简要步骤 2.2 Si5338 寄存器配置流程 2.3 AD2的基本配置 2.4 检查Si5338状态 2.5 配置Si5338寄存器 2.6 保存Si5338寄存器 3. 总结 1. 简介 使用Digilent Analog Discovery 2进行调试不仅提升了工作效率&#xff0c;而且极大地简化了常…

[python趣味实战]----基于python代码实现浪漫爱心 დ

正文 01-效果演示 下图是代码运行之后的爱心显示结果&#xff1a; 下面的视频该爱心是动态效果&#xff0c;较为简洁&#xff0c;如果需要使用&#xff0c;可以进行完善&#xff0c;这里只是一个趣味实战&#xff0c;下面将对代码实现进行非常详细地描述&#xff1a; 浪漫爱心…

判断字符串由几个单词组成(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int world 0;int i 0;char c 0;char string[81] { 0 };int num 0;//提示用户&#xff…

深入探索 C++ 中 string 的用法:从基础到实践

C String 用法详解 C中的 std::string 是一个非常强大且灵活的类&#xff0c;用于处理字符串。std::string 类是C标准库中的一部分&#xff0c;它提供了丰富的成员函数来执行各种字符串操作&#xff0c;如连接、比较、查找、替换等。在本篇博客中&#xff0c;我们将深入探索 s…

redis核心数据结构——跳表项目设计与实现(跳表结构介绍,节点类设计,随机层级函数)

跳表结构介绍。跳表是redis等知名软件的核心数据结构&#xff0c;其实现的前提是有序链表&#xff0c;思想的本质是在原有一串存储数据的链表中&#xff0c;间隔地抽出一半元素作为上一级链表&#xff0c;并将抽提出的元素和原先的位置相关联&#xff0c;这样重复下去直到最上层…

【考研数学】张宇「25版」跟「24版」的差距大吗?

其实差别不大&#xff01;要是进度比较快可以不跟着25更新&#xff0c;先跟着24的网课跟就可以了&#xff01; 身边真的很多130-140的大佬都是跟着张宇从头到尾&#xff0c;张宇老师的习题册非常适合基础扎实&#xff0c;想冲刺高分的考研党 我是属于基础不太好的&#xff0c…

Windows下面源码安装PostgreSQL

目录 一、环境&#xff1a; 二、安装MSYS2 三、安装PG 四、初始化数据库 五、启停数据库 六、调试PG 平时我们在LINUX下&#xff0c;使用源码安装PG的比较多&#xff0c;但在WINDOWS下安装&#xff0c;一般是使用二机制安装包来安装&#xff0c;能否使用源码来安装呢&…

【进收藏夹吃灰系列】算法学习指南

文章目录 [toc]分治算法 个人主页&#xff1a;丷从心 系列专栏&#xff1a;进收藏夹吃灰系列 分治算法 博客标题博客url【分治算法】【Python实现】Hanoi塔问题https://blog.csdn.net/from__2024_04_11/article/details/138093461?spm1001.2014.3001.5502

搜索引擎的设计与实现参考论文(论文 + 源码)

【免费】搜索引擎的设计与实现.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89249705?spm1001.2014.3001.5501 搜索引擎的设计与实现 摘要&#xff1a; 我们处在一个大数据的时代&#xff0c;伴随着网络信息资源的庞大&#xff0c;人们越来越多地注重怎样才能…

安装依赖报错前端安装某个依赖安装不上可能是node版本过高 升级或者降低node版本方式

安装依赖报错安装某个依赖安装不上可能是node版本过高 升级或者降低node版本方式 安装某个依赖安装不上 或者node版本过高 升级或者降低node版本 收藏关注一下吧 开发中难免总会需要切换node版本 需要的时候在找麻烦 主页 中还有更多干货分享

如何提高商务认知与情商口才(3篇)

如何提高商务认知与情商口才&#xff08;3篇&#xff09; **篇&#xff1a;提高商务认知 商务认知的提升是一个系统工程&#xff0c;需要我们不断地积累知识、理解市场和关注行业动态。以下是一些具体的方法&#xff1a; 持续学习&#xff1a;通过阅读商业书籍、参加行业研讨…

“猜你心里想的数” 小魔术揭秘

女儿展示了一个小魔术&#xff0c;如下 6 张写满数字的扑克&#xff1a; 让我心中默默选 1&#xff5e;60 中随意一个数字 x&#xff0c;然后她只依次拿这 6 张扑克问我 x 在不在里面&#xff0c;完事后她就知道 x 是多少。隐约记得哪里看到过这个魔术。 我拿过扑克仔细观察了…

Activiti工作流知识点图表总结

Acitivi是比较早的工作流引擎&#xff0c;后来居上者如Flowable或者Camunda&#xff0c;功能以及一些特性做了一些增强&#xff0c;这两个都是从Activiti的某个版本分离出来&#xff0c;独自发展。Flowable是由Activiti的主要开发者在离开Alfresco公司后创建的。Flowable项目是…

3.11设计模式——Visitor 访问者模式(行为型)

意图 表示一个作用于某对象结构中的各元素的操作。它允许在不改变各元素的类的前提下定义作用于这些元素的新操作。 结构 Visitor&#xff08;访问者&#xff09;为该对象结构中ConcreteElement&#xff08;具体元素&#xff09;的每一个类声明一个Visit操作&#xff0c;该操…

分类规则挖掘(二)

目录 三、决策树分类方法&#xff08;一&#xff09;决策树生成框架&#xff08;二&#xff09;ID3分类方法&#xff08;三&#xff09;决策树的剪枝&#xff08;四&#xff09;C4.5算法 三、决策树分类方法 决策树 (Decision Tree) 是从一组无次序、无规则&#xff0c;但有类别…

考研数学|李艳芳900比李林880难吗?值得做吗?

李艳芳老师比较有名的就是他的真题&#xff0c;900题还真是今年比较新的题集 目前&#xff0c;我看过900题的前两章&#xff0c;我觉得还是有一些亮点的&#xff1a; 900题第一章 与880第一章相比&#xff0c;两者各有千秋。880有种“一种题型一道题”&#xff08;”精做一题…

普冉PY32系列(十五) PY32F0系列的低功耗模式

目录 普冉PY32系列(一) PY32F0系列32位Cortex M0 MCU简介普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境普冉PY32系列(三) PY32F002A资源实测 - 这个型号不简单普冉PY32系列(四) PY32F002A/003/030的时钟设置普冉PY32系列(五) 使用JLink RTT代替串口输出日志普冉PY32…

教育信息化对于教育新生态作用

现在往回观察我国的教育发展史&#xff0c;会发现教育的创新变革和社会的转型发展是一脉相承的。就当前&#xff0c;我们以人工智能技术为核心的新兴信息技术正在联合起来发力&#xff0c;正在引发科革命和技术产业的全面革命&#xff0c;这对于人类的生产生活&#xff0c;思维…