单元测试四大过程

单元测试四大过程(蓝桥课学习笔记)

单元测试过程

单元测试是软件测试过程中的一个关键环节,它与集成测试、系统测试一样,分为测试策划、测试设计、测试执行和测试总结几个阶段。

图片描述

单元测试过程中每个阶段需要完成的主要工作如下:

单元测试策划阶段

单元测试策划阶段的主要工作是完成单元测试计划。在这个过程中,测试人员会根据项目计划、被测试软件的设计文档对被测试软件单元进行分析并确定以下内容,形成测试计划文档:

图片描述

  • 确定需要测试的软件特性:根据设计文档的描述确定软件单元的功能、性能、接口、数据结构、设计约束等内容和要求并对其进行标识,从中确定需测试的软件特性;
  • 确定测试的充分性要求:根据测试目标、单元的重要性与约束条件等,确定测试应覆盖的范围及这些范围的覆盖程度(例如,语句覆盖率、分支覆盖率、基本路径覆盖率等);
  • 确定测试终止条件:在测试计划中,我们需要明确单元测试的结束条件,即什么时候可以结束单元测试。测试结束一般分为两种情况,一种是测试通过正常结束单元测试(如,测试充分性是否达到要求),另一种是导致测试异常结束的可能情况(例如,出现一些编码错误导致单元测试无法继续进行等);
  • 确定测试资源要求:包括测试过程中需要的软件、硬件、人员数量、人员技能等资源要求;
  • 确定测试需要的技术和方法:例如,测试数据生成的方法、测试结果获取方法等;
  • 确定测试时间进度;
  • 对测试过程中可能存在的风险进行分析与评估,制定风险应对措施;
  • 需交付的工作产品:单元测试需交付的工作产品一般包括测试计划、测试用例、测试记录、缺陷报告、测试报告等。

单元测试计划完成以后,一般需要组织相关人员进行评审,评审通过后方可进入下一步工作。单元测试计划评审的内容主要包括:

  • 测试的范围、资源、进度、终止条件等是否明确;
  • 测试方法是否可行、合理、有效;
  • 风险的分析与应对措施是否准确可行;
  • 测试文档是否符合规范。
单元测试设计阶段

单元测试计划评审通过后即可以进入测试设计阶段,测试设计阶段主要完成以下工作:

图片描述

  • 设计测试用例:将需要测试的软件特性进行分解,运用测试用例设计方法针对分解后的每种情况分别设计测试用例;
  • 确定测试用例执行顺序:可以从测试用例失效造成的影响、资源约束、风险等方面进行考虑;
  • 准备测试数据:包括获取现有的测试数据和生成新的数据,并按照要求验证所有的数据;
  • 编写测试程序:包括开发单元测试的驱动模块和桩模块,以及测试支持工具等;
  • 搭建测试环境。

为了保证测试的有效性,单元测试过程中的工作产品,如测试用例等也需要按照项目的要求进行评审。

单元测试执行阶段

单元测试执行阶段测试人员的主要工作是按照单元测试计划和单元测试设计阶段产出的测试用例、用例执行顺序等的内容和要求执行测试,主要包括:

图片描述

  • 执行测试用例并记录结果:按照测试计划、测试用例执行顺序等文档的要求依次执行测试用例,将每个测试用例的期望结果与实际执行结果进行比较判定该用例是否通过,并记录执行结果;
  • 提交并跟踪缺陷:如果程序的实际输出结果与测试用例的预期结果不一致,需提交缺陷给相关开发人员进行修复,并对缺陷进行跟踪直到缺陷正确修复为止;
  • 回归测试:代码中的缺陷修复并验证完成后,需评估该缺陷的影响范围并进行回归测试,确保缺陷已正确修复且未影响到其他功能。
单元测试总结阶段

在单元测试总结阶段,测试人员应根据被测软件的设计文档、单元测试计划、测试记录、缺陷报告等内容对测试工作进行总结,完成单元测试报告。单元测试报告的内容与系统测试的内容类似,主要包括:

图片描述

  • 测试范围总结:总结本次单元测试的具体范围。如果测试过程中有未能被测试活动充分覆盖的范围,需在报告中说明未测试到的范围及原因;
  • 测试过程分析:测试报告中需对测试过程中的进度、资源、测试用例执行等情况进行总结分析;
  • 缺陷分析:与系统测试类似,单元测试报告中需对缺陷的类别、严重程度、解决情况等进行分析;
  • 遗留问题:如果测试过程中有遗留问题,需在报告中记录这些问题及未解决的原因;
  • 测试结论:测试报告中需明确地给出本次测试的结论(通过或不通过);
  • 评价与建议:测试报告中还需将测试结果与软件设计文档对照,对软件单元的设计与实现作出评价,并提出改进建议。

同样,测试总结阶段也需要按项目要求进行相应的评审工作,评审测试执行活动的有效性、测试结果的正确性和合理性,以及是否达到了测试目的、测试文档是否符合相关标准规范等。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】磁盘管理和文件系统

目录 一、硬盘 1.硬盘结构 2.结构类型 二、MBR与磁盘分区 1.MBR主引导记录 2.磁盘分区结构 三、文件系统类型 四、linux系统添加并使用新硬盘的步骤 1.添加新的硬盘 2.刷新识别 3.进行分区 4.格式化,创建文件系统 5.挂载使用 一、硬盘 1.硬盘结构…

Linux程序调试优化(1)——内存占用详解及优化思路

文章目录 1.free查看总体的内存占用2./proc/$PID/status 查看某进程状态 linux开发最重要的两个参数,分别是内存以及CPU使用率,若内存出现严重不足,则在需要使用内存时,可能出现申请不到的情况,导致 OOM,L…

顺丰快递免费的API开放物流信息查询接口

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 官方地址:顺丰开放平台 注册成功之后,需要认证,进入当前如图下,认证的入口如图(已认证的页面) 点击新建应用 安装流程 1. 需要下载…

【模拟】Leetcode 替换所有的问号

题目讲解 1576. 替换所有的问号 算法讲解 这里有两个特殊情况:如果?在第一个位置,只需要判断后面的符号; 如果?在最后一个位置,只需要判断前面的符号 class Solution { public:string modifyString(stri…

Java:定时任务无法正常执行(scheduling + ShedLock)

目录 一、场景二、代码片段三、排查四、原因五、解决 一、场景 1、使用定时任务(scheduling) 分布式锁(ShedLock)定期执行一段代码 2、configureTasks()对于任务执行周期的更新是正常的 3、但任务方法无法被执行 二、代码片段 三、排查 1、确认Trigger没有问题 2、查看red…

如何在MobaXterm上使用rz命令

1、首先输入命令和想下载的文件,如下图: 2、按住ctrl鼠标右键,选择如下选项: 上传命令是rz,选择Receive...... 下载命令是sz,选择Send...... 3、我这里是要把Linux上的文件下载到我的本地window磁盘&…

【计算机考研】408网课汇总+资源分享

408王道的视频就比较通俗易懂 王道的教材非常契合408的大纲,是专门为408大纲而编写的,而教材是方方面面都讲解的透彻。 建议王道为主,网络搜索为辅! 王道中讲解不清楚,看不懂的知识点,可以尝试在网络上进…

小车项目介绍

STM32智能小车基于STM32F103C8T6进行开发 该项目具有OLED,USART串口,ADC测量电压,陀螺仪,超声波测距模块,红外循迹模块,蓝牙模块,按键,电机驱动,电机,舵机,电源等功能 功能详细介绍: OLED模块 使用:OLED显示屏模块 0.96寸 IIC/SPI 选择原因:价格较低、使用方便…

OpenHarmony轻量系统开发【4】编写第一个程序、启动流程分析

摘要:本文简单介绍如何编写第一个hello world程序,以及程序是被执行的 适合群体:适用于Hi3861开发板,启动流程分析 4.1编写第一个程序 编写一个hello world程序比较简单,可以参考官网: https://gitee.c…

Redis中的订阅发布(三)

订阅发布 发送消息 当一个Redis客户端执行PUBLISH 命令将消息message发送给频道channel的时候,服务器需要执行以下 两个动作: 1.将消息message发送给channel频道的所有订阅者2.如果一个或多个模式pattern与频道channel相匹配,那么将消息message发送给…

开源相机管理库Aravis例程学习(二)——连续采集multiple-acquisition-main-thread

开源相机管理库Aravis例程学习(二)——连续采集multiple-acquisition-main-thread 简介例程代码函数说明arv_camera_set_acquisition_modearv_camera_create_streamarv_camera_get_payloadarv_buffer_newarv_stream_push_bufferarv_camera_start_acquisi…

CCleaner怎么清理软件缓存 CCleaner清理要勾选哪些 ccleanerfree下载

CCleaner软件是一款优秀的数据清理软件,其中没有硬盘和内存的设置,也不含任何广告软件,其出色的注册表清洁功能能够保证您的电脑更稳定运行。本文将围绕CCleaner怎么清理软件缓存,CCleaner清理要勾选哪些的相关内容进行介绍。 一、…

使用Hugo、Github Pages搭建自己的博客

文章目录 搭建博客框架及对比使用Hugo搭建博客使用Github Pages部署博客 搭建博客框架及对比 在众多的博客框架中,Hugo、Jekyll和Hexo因其出色的性能和易用性而备受推崇。 特点HugoJekyllHexo速度极高中等较高易用性高中等高(熟悉JavaScript者&#xf…

如何应对孩子情绪化地发脾气?

你有小孩儿吗?是否受孩子发脾气的困扰?如果都没有,可以跳出去看看别人的文章了,如果有,可以继续往下看。 白牙有个小闺女,3 岁半,今天她看大人洗脚,她也想洗,但没来得及给…

【微信小程序——开发DAY5(黑马程序员课程)】

微信小程序——开发DAY5(黑马程序员课程) 使用npm包注意:先安装node.js安装Vant组件库使用Vant组件库定制全局主题样式API Promise化 全局数据共享(又叫做:状态管理)1.安装Mobx相关的包2.删除miniprogram.n…

音质更细腻,时尚与舒适兼备,唐麦M5耳机体验

在音乐的世界里,一款好的耳机就像是一位懂你的老朋友,它能够准确传达音乐的情感,让你沉浸在每一个音符中。所以无论是在通勤的路上,还是在健身的过程中,一款优质的蓝牙耳机总能为我们带来更加丰富的听觉体验。最近我最…

数据类型知识

1,介绍 根据数据所占的空间不同,把数据分为不同的数据类型 js的变量数据类型是在程序运行中,靠等号右边数值的值来判断的 js动态变量,里面的数据类型是可以变化的 2.数据类型 1.简单数据类型 程序里面,数字前面有…

每日OJ题_BFS解决最短路③_力扣127. 单词接龙

目录 ③力扣127. 单词接龙 解析代码 ③力扣127. 单词接龙 127. 单词接龙 难度 困难 字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列 beginWord -> s1 -> s2 -> ... -> sk: 每一对相邻的单词只差一个字母。…

GPT人工智能在线网页版大全

平民不参与内测,还能使用 ChatGPT 吗? 自去年 ChatGPT 爆红以来,关于它的消息铺天盖地。如果你真的想使用它,途径有很多。除了官方网站外国内还有许多 ChatGPT 的镜像网站,其中不乏免费的 3.5 版本。虽然有些网站需要…

Spring Task 定时任务调度

一、概念 Spring Task 是 Spring 框架的一个组件,它为任务调度提供了支持,使得开发者能够创建后台任务或定期执行的任务。通过 Spring Task,您可以方便地在 Java 应用程序中实现定时任务,比如每天凌晨进行数据同步、每小时执行一…