软件测试技术课程:软件测试流程

news2024/11/22 14:32:29

软件测试流程如下:

  1. 测试计划
  2. 测试设计
  3. 测试执行
    • 单元测试
    • 集成测试
    • 确认测试
    • 系统测试
    • 验收测试
    • 回归测试
  4. 验证活动

测试计划

测试计划由测试负责人来编写,用于确定各个测试阶段的目标和策略。这个过程将输出测试计划,明确要完成的测试活动,评估完成活动所需的额时间和资源,进行活动的安排和资源分配。
测试依据主要是项目开发计划和测试需求分析结果而制定。

2:测试设计

根据测试计划设计测试方案,测试设计过程输出的是各测试阶段使用的测试用例,为每一个测试需求确定测试用例集,并且确定执行测试用例的测试过程。

根据软件测试计划、软件需求、软件构架设计、软件详细设计等文档内容,设计测试用例具体如下:

  1. 对每一个测试需求,确定其需要的测试用例。
  2. 对每一个测试用例,确定其输入及预期结果。
  3. 确定测试用例的测试环境配置、需要的驱动程序。
  4. 编写测试用例文档
  5. 对测试用例进行同行评审(peer review)

3:测试执行

如图所示,测试执行过程分为以下测试阶段:单元测试、集成测试、确认测试、系统测试、验收测试等。

4:单元测试

单元测试是在软件开发过程中进行的最低级别的测试活动,其测试的对象是软件设计的最小单位,单元测试又称为模块测试

很多人将单元的概念误解为一个具体函数或一个类的方法,这种理解并不准确。作为一个最小的单元应该有明确的功能定义、性能定义和接口定义,而且可以清晰地与其他单元区分开来。一个菜单、一个显示界面或者能够独立完成的具体功能都可以是一个单元。从某种意义上单元的概念已经扩展为组件(component)。

单元测试的环境:

由于每个模块在整个软件中并不是孤立的,在对
每个模块进行单元测试时,需要考虑它和周围模块的
相互联系。为模拟这一联系,在进行单元测试时,必
须设置若干个辅助测试模块。这些辅助模块分为两种:

  • 驱动模块(driver): 用以模拟被测模块上级模块,相当于被测模块的主程序。
  • 桩模块(stub): 用以模拟被测模块的下级模块,相当于被测模块调用的子模块。

单元测试完成方式

单元测试可以由两种方式完成:

单元测试的不足:

  • 模块相互调用时引入了新的问题;
  • 几个子功能组合起来不能实现主功能;
  • 误差不断积累达到不可接受的程度;
  • 全局数据结构出现错误等。

集成测试

确定测试

集成测试完成以后,分散开发的模块被联接起来,构成一个完整的程序。其中各模块之间接口存在的种种问题都已消除。于是进入了确认测试阶段。

确认测试,是对照软件需求规格说明书,对软件产品进行评估以确定其是否满足需求规格的过程。 它决定最后的软件产品是否正确无误。

确定测试的策略:

  • 基于需求的测试:采用黑盒测试策略,在不知道详细设计规格说明或代码的情况下对用户需求进行测试。基于需求的测试根据功能设计规格说明设计测试用例。
  • 基于功能的测试:采用黑盒策略,根据功能设计规格说明,采用等价类划分、边界值分析和故障猜测等方法设计测试用例。
  • 基于内部的测试:只能采用白盒测试策略,但可采用功能设计规格说明制订测试计划。一但采用白盒测试,便可通过一系列的技术确保系统的内部各部分获得充分的测试并且达到足够的逻辑覆盖。

系统测试

系统测试实际上是针对系统中各个组成部进行的综合性检验,很接近我们的日常测试实践。
系统测试的目标不是要找出软件故障,而是要证明系统的性能。

注意:系统开发人员和组织不能负责系统测试,系统测试最好由独立的测试机构完成。 

验收测试

验收测试是将最终产品与最终用户的当前需求进行比较的过程,是软件开发结束后,软件产品向用户交付之前进行的最后一次质量检验活动,回答开发的软件产品是否符合预期的各项要求,用户是否接受等问题。

验收测试不只检验软件某方面的质量,还要进行全面的质量检验并决定软件是否合格。因此验收测试是一项严格的正规的测试活动,并且应该在生产环境中而不是开发环境中进行。

回归测试

回归测试则是对程序进行测试以确定是否因故障修复而引入了新的故障。
回归测试不是一种新的测试活动,它是为检查是否因修复故障引入了新的故障而重新执行某些或所有测试用例的过程。

验证活动

验证活动存在测试生存周期中的每一个阶段,包括需求验证、功能设计验证、详细设计验证和代码验证。在每个验证活动中,测试的目的都是为了发现尽可能多的故障,测试人员应积极参与软件审查和走查工作,并开展验证工作。

加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。未来的你肯定会感谢现在拼命的自己!

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

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

相关文章

linux内核篇-进程间通信(信号,管道,共享内存,socket)

信号机制 在linux操作系统中,为了响应各种各样的事件,也定义了很多信号。我们可以通过kill -l命令,查看所有的信号 # kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS …

【大数据模型】LeonardoAi让心中所想跃然纸上

汝之观览,吾之幸也! 本文主要聊聊LeonardoAi绘图工具 一、注册Discord账号 不管LeonardoAi还是midjourney,都需要注册一个Discord账号,Discord是一个社区软件,在这里可以进行讨论和交流使用心得 LeonardoAi官网地址 …

RabbitMQ集群安装

RabbitMQ集群安装 1.前言 OS: CentOS Linux release 7.9.2009 (Core) 机器: IPnodecpu内存存储10.106.1.241max-rabbitmg-018 核16 G100 G10.106.1.242max-rabbitmg-028 核16 G100 G10.106.1.243max-rabbitmg-038 核16 G100 G 因为操作系统版本是 centos7,所以…

chatgpt赋能Python-python3_5_3怎么保存

Python 3.5.3 保存指南 如果你正在使用Python 3.5.3,你可能会发现你需要保存你的代码和文件。在这篇SEO文章中,我们将介绍如何在Python 3.5.3中保存你的代码和文件。 保存Python代码 当你编写Python代码时,你需要将它们保存在文件中。为了…

【原】nodejs全局安装和本地安装的区别

来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题。 转型后是这样的,团队成员更多需要去寻找业务的方…

c++网上学习资源

背景 在网上学习或者参考的C资源。 相对其他语言来说,C 算是难度比较高的了,这一点无法否认。但是如果能有一些好的网站,则会让 C 的学习事半功倍。 那就来介绍几个最常用的(最好的)吧,包含了参考手册、教…

html - 多媒体标签(video)、音频标签(audio)

video 语法&#xff1a; <video src"文件地址" controls"controls" </video> 常见的属性 属性 值 描 述 autoplay autoplay 视频就绪自动播放&#xff08;谷歌浏览器需要添加muted来解决自动放的问题 controls controls …

腾讯云轻量应用服务器怎么搭建网站?超详细建站流程

腾讯云轻量应用服务器怎么搭建网站&#xff1f;太简单了&#xff0c;轻量服务器选择宝塔Linux镜像&#xff0c;然后在宝塔面板上添加站点&#xff0c;以WordPress建站为例&#xff0c;腾讯云服务器网来详细说下腾讯云轻量应用服务器搭建网站全流程&#xff0c;包括轻量服务器配…

函数栈帧的创建与销毁(反汇编万字讲解)

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C语言学习分享⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多C语言知识   &#x1f51d;&#x1f51d; 这里写目录标题 1. 前言&#x1f6…

AI为文档图像安全注入新力量

Hello大家好。我是Dream。 随着人工智能和大数据技术的快速发展&#xff0c;人们对于文档图像安全的关注度越来越高。尤其是在当下&#xff0c;AIGC取得了里程碑式的成绩&#xff0c;引发了市场广泛热烈的兴趣&#xff0c;扩散模型在内的关键技术取得突破&#xff0c;技术可用性…

链表的相关OJ题解析

目录 ⭐一、移除链表元素 ⭐二、反转链表 ⭐三、求链表中间节点 ⭐四、求链表倒数第k个节点 ⭐ 五、合并两个有序链表 ⭐六、链表的回文结构 ⭐ 七、相交链表 ⭐八、环形链表 ⭐九、链表入环的第一个节点 ⭐一、移除链表元素 链接&#xff1a; 移除链表元素 思路一…

浅尝css函数

文章目录 一、attr二、calc三、cubic-bezire四、conic-gradient五、counter六、hsl七、linear-gradient八、radial-gradient九、max/min十、var 一、attr 返回元素的属性值attr() 理论上能用于所有的 CSS 属性&#xff0c;但目前支持的仅有伪元素的 content 属性&#xff0c;其…

【网络工程师人手必备的常用网络命令合集,整理收藏!】

在计算机网络中经常要对网络进行管理&#xff0c;测试&#xff0c;这时就要用到网络命令。今天就为大家整理了一些网络工程师必备的一些常用网络命令合集&#xff0c;建议收藏后观看哦&#xff01; ping命令 ping是个使用频率极高的实用程序&#xff0c;主要用于确定网络的连…

Linux Shell if 使用参考

if 参考 与许多其他语言一样&#xff0c;PowerShell 提供了用于在脚本中有条件地执行代码的语句。 其中一个语句是 If 语句。 今天&#xff0c;我们将深入探讨 PowerShell 中最基本的命令之一。 案例使用解释&#xff0c;以下是部署virtualbox使用if参考解释 if 判断检查系统…

创新灵感来源于用户实践,TDengine 首次公开四项专利申请

好消息&#xff01;好消息&#xff01; 美国专利局来电 TDengine又有一个新专利证书下来啦&#xff01; 这一专利名为 “一种时序数据库表结构改变处理方法” 做技术创新我们真的是认真的~ 话不多说&#xff0c;给大家上图展示一下 我们都知道&#xff0c;在当下这样一个…

前端性能测试Lighthouse的使用

Lighthouse是一个开源项目&#xff0c;提高网页的质量&#xff0c;生成的测试报告会提供优化方案&#xff0c;以来提高网页的性能。重点就是关注优化建议 官方介绍Lighthouse的地址&#xff1a;https://developer.chrome.com/docs/lighthouse/ 一、使用方法 1、使用谷歌开发者…

Redis数据类型-Set

一. 概述 首先我们来看看Redis中的Set类型有什么特点。 与List相比&#xff0c;Set集合中的元素不允许重复&#xff0c;一个集合中最多可以对应2^32-1(4294967295)个元素。 Set除了可以执行增删改查的命令之外&#xff0c;还支持交集、并集、差集等的计算。 二. 基本命令 对我们…

当Python遇上异步编程:实现高效、快速的程序运行!

前言 同步/异步的概念&#xff1a; 同步是指完成事务的逻辑&#xff0c;先执行第一个事务&#xff0c;如果阻塞了&#xff0c;会一直等待&#xff0c;直到这个事务完成&#xff0c;再执行第二个事务&#xff0c;顺序执行 异步是和同步相对的&#xff0c;异步是指在处理调用这…

单片机的几种ota内存分区表介绍

前言 在做项目时&#xff0c;现在越来越多被要求单片机要支持升级功能。需求变化快&#xff0c;固件要不断支持新的功能&#xff0c;手动人工去烧固件越来越显得麻烦&#xff0c;已经操作成本高。 典型的方式是通过单片机外接的蓝牙、wifi等无线模块&#xff0c;或者通过单片…

如何创建UE5插件?

UE5 插件开发指南 前言1.0.打开插件窗口1.1.打开新建插件窗口1.2.填写新插件信息1.3.查看引擎自动生成的插件内容前言 首先,笔者默认读者已经知道如何安装UE5虚幻引擎了,并且也会编辑器的一些基本操作,那么这里省略了:如何注册Epic Games账号?如何安装UE5引擎?如何安装C++相…