软件测试工作步骤详情

 

软件测试步骤按照研发阶段一般分为5个部分:单元测试、集成测试、确认测试、系统测试、验收测试,下面将不同阶段需要的一些工作内容做一下梳理希望可以帮助到大家。

一、单元测试的内容:(白盒为主,黑盒为辅)

  单元测试又称为模块测试,是针对软件设计的最小单位程序模块进行正确性检查的测试工作,单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行地独立进行单元测试。

1、模块接口测试

应对通过所测模块的数据流进行测试

调用所测模块时的输入参数与模块的形式参数的个数、属性和顺序是否匹配

所测模块调用子模块时,输入子模块的参数与子模块的形式参数在个数、属性和顺序上是否匹配。

输出给标准函数的参数的个数、属性和顺序是否正确。

全局变量的定义在各个模块中是否一致。

当模块通过外部设备进行输入/输出操作,文件属性是否正确、open和close语句是否正确,规定的I/O格式说明与I/O语句是否匹配;缓冲区容量是否与记录长度匹配,在读写之前是否打开了文件,读写之后是否关闭了文件,对I/O错误是否做了处理。

2、 局部数据结构测试

局部数据结构是最常见的错误来源

不一致的数据类型

不正确或不一致的数据说明

使用尚未赋值或尚未初始化的变量

错误的初始值或错误的缺省值

3、 路径测试

运算的优先次序、常见的比较和控制流

4、错误处理测试

遇见出错的条件,并设置适当的出错处理

5、边界测试

例如循环的次数,最大或最小值

二、单元测试步骤:

利用设计文档设计测试用例;

创建被测模块的桩模块或驱动模块;

利用被测试模块、驱动模块和桩模块来建立测试环境,进行测试

驱动模块:相当于所测模块的主程序,它接收测试数据,把这些数据传送给所测模块,最后再输出实际结果

桩模块:用以代替所测模块调用的子模块。

三、集成测试(白盒和黑盒结合)

  集成测试又称为组装测试或联合测试,在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。

在把各个模块连接起来的时候,穿越各个模块的接口的数据时候会丢失

一个模块的功能是否会对另一个模块的功能产生不利的影响

各个子功能组装完成后,能否达到预期的父功能

全局数据结构是否有问题

单个模块产生的误差累计起来是否会放大

  集成测试层次:子系统内集成测试;子系统间集成测试;模块间集成测试。

  

模块组装成系统的方式:一次性组装方式和增殖式组装方式

1、一次性组装方式(非增殖式集成)

  先对模块分别进行测试,再把所有模块组装进行测试

  缺点:发现错我不容易定位 

2、增殖式组装测试:自顶向下;自底向上;分层集成;三明治集成;基层集成;高频集成。

  先对一个个模块进行模块测试,然后将这些模块逐步组装成系统,分为两种方式:自顶向下的增殖方式和自底向上的增殖方式

(1)自顶向下的增殖方式(不需要驱动模块)

  将模块铵系统程序结构,严控制层次自顶向下进行组装。

  首先以主模块作为被测模块兼驱动模块,所有直属主模块的下属模块全部用桩模块代替,对主模块进行测试。再采用深度优先或广度优先的策略,用实际模块代替桩模块,再用桩模块代替它们的直接下属模块,与已经测试的模块构成新的子系统。然后进行回归测试。

(2)自底向上的增殖方式(不需要驱动模块)

  由驱动模块控制最底层模块的并行测试。

(3)混合增殖式

自顶向下增殖方式:

    优点:能够较早的发现主要控制方面的问题

    缺点:需要建立桩模块,增加了一些附加的测试,涉及算法和输入输出的模块一般在底层,这些底层模块要到组装和测试的后期才能发现。一旦发现问题就会出现过多的回归测试。

自底向上增殖方式:

    优点:不需要建立桩模块,建立驱动模块要比建立桩模块要简单得多,同时涉及到算法已近输入输出的模块要先测试,把最容易出现问题的部分在早期解决。

    缺点:程序一直未能作为一个实体存在,直到最后一个模块加上才能形成一个实体,控制方面最后才能接触。

3、集成测试完成的标志:

  1)成功执行了测试计划中规定的所有集成测试

  2)修改了所发现的错误

  3)测试结果通过专门小组的评审

  4)集成测试需要提交的测试报告:

  5)集成测试计划、集成测试规格说明书以及集成测试分析报告

四、确认测试(黑盒)

   确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一般包括有效性测试和软件配置复查。一般有第三方测试机构进行。

1、进行有效性测试

  现软件确认要通过一系列黑盒测试。确认测试同样需要制订测试计划和过程,测试计划应规定测试的种类和测试进度,测试过程则定义一些特殊的测试用例,旨在说明软件与需求是否一致。

无是计划还是过程,都应该着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确人机界面和其他方面(例如,可移植性、兼容性、错误恢复能力和可维护性等)是否令用户满意。

  确认测试的结果有两种可能,一种是功能和性能指标满足软件需求说明的要求,用户可以接受;

   另一种是软件不满足软件需求说明的要求,用户无法接受。项目进行到这个阶段才发现严重错误和偏差一般很难在预定的工期内改正,因此必须与用户协商,寻求一个妥善解决问题的方法

2、软件配置复查

  保证软件配置的所有成分齐全,质量都符合要求。应该遵守用户手册和操作手册中的规定步骤。

五、系统测试  通常意义上的系统测试包括 压力测试(也称为强度测试),容量测试,负载测试,性能测试,安全测试,容错测试等。

    软件作为计算机系统的一部分,与硬件、网络、外设、支撑软件、数据以及人员结合在一起,在实际或模拟环境下,对计算机系统进行测试,

目的在于与系统需求比较,发现问题。      

   利用程序的用户文档或书面材料。通过分析目标文档来设 计系统测试,分析用户文档来阐明测试用例。

  由于没有一个方法,系统测试需要大 量的创造性。事实上,设计好的系统测试用例比设计系统或程序需要更多的创造性、 智慧和经验。

   为了避免有所遗漏,设计测试用例时应考虑全部的 15 种类型。

能力测试、容量测试、强度测试、易用性测试、安全性测试、

性能测试、存储测试、配置测试、兼容性/配置/转换测试、安装测试、

可靠性测试、可恢复性测试、适用性测试、文档测试、过程测试。

六、验收测试  包括:正式验收,alpha测试,Beta测试。

  以用户为主的测试,软件开发人员和质量保证人员参加,由用户设计测试用例。

  不是对系统进行全覆盖测试,而是对核心业务流程进行测试。

  根据合同、《需求规格说明书》或《验收测试计划》对产品进行验收测试。

  对于通过验收测试的软件产品/参照《配置管理规范》中所规定的标识方法更改测试状态,同时项目经理负责编制《验收报告》。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

文档获取方式:

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

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

相关文章

Ubuntu 安装 CUDA 与 CUDNN GPU加速引擎

一、NVIDIA(英伟达)显卡驱动安装 NVIDIA显卡驱动可以通过指令sudo apt purge nvidia*删除以前安装的NVIDIA驱动版本,重新安装。 1.1. 关闭系统自带驱动nouveau 注意!在安装NVIDIA驱动以前需要禁止系统自带显卡驱动nouveau&#xf…

Diffusion Autoencoders: Toward a Meaningful and Decodable Representation

Diffusion Autoencoders: Toward a Meaningful and Decodable Representation (Paper reading) Konpat Preechakul, VISTEC, Thailand, CVPR22 Oral, Cited:117, Code, Paper 1. 前言 扩散概率模型 (DPM) 在图像生成方面取得了显着的质量,可与 GAN 相媲美。但是与…

独立站引流,如何在Reddit进行营销推广?

Reddit是目前最被忽视却最具潜力的社交媒体营销平台之一,它相当于国内的百度贴吧,是美国最大的论坛,也是美国第五大网站,流量仅次于Google、Youtube、Facebook以及亚马逊。 如果会玩,Reddit也可以跟其他的社交媒体营销…

Element UI搭建首页导航和左侧菜单以及Mock.js和(组件通信)总线的运用

目录 前言 一、Mock.js简介及使用 1.Mock.js简介 1.1.什么是Mock.js 1.2.Mock.js的两大特性 1.3.Mock.js使用的优势 1.4.Mock.js的基本用法 1.5.Mock.js与前端框架的集成 2.Mock.js的使用 2.1安装Mock.js 2.2.引入mockjs 2.3.mockjs使用 2.3.1.定义测试数据文件 2…

扫地机器人经营商城小程序的作用是什么

扫地机器人对人们生活大有帮助,近些年也有不少企业开创品牌,在电商平台每年销量也非常高,同行竞争激烈及私域化程度加深情况下,虽然第三方平台或线下方式也有生意,但互联网电商发展也为商家们带来了诸多痛点。 那么通…

【图像去噪】【TGV 正则器的快速计算方法】通过FFT的总(广义)变化进行图像去噪(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 💥1 概述 【图像去噪】【TGV 正则化器的快速计算方法】通过FFT的总(广义)变换进行图像去噪,可提供更自然的恢复图像。…

uniapp:不同权限设置不同的tabBar

1、在pages.json里,将所有tabBar涉及的页面都加进来。 我这里使用username来动态显示tabBar。 jeecg用户显示:首页,订单,消息,发现,我的,一共5个tabBar。 admin用户显示:首页&…

青大数据结构【2022】

关键字: next数组、下三角矩阵、完全二叉树结点、静态分布动态分布、迪杰斯特拉最短路径、二叉排序树失败ASL、排序比较、二叉排序树中序遍历、链表删除最大值 一、单选 二、简答 三、应用 四、算法分析 五、算法设计

「Go框架」gin框架是如何处理panic的?

本文我们介绍下recover在gin框架中的应用。 首先,在golang中,如果在子协程中遇到了panic,那么主协程也会被终止。如下: package mainimport ("github.com/gin-gonic/gin" )func main() {r : gin.Default()// 在子协程中…

轻松使用androidstudio交叉编译libredwg库

对于安卓或嵌入式开发者而言,交叉编译是再熟悉不过的操作了,可是对于一些刚入门或初级开发者经常会遇到这样的问题:如何交叉编译C++库来生成安卓下的so库呢? 最近有一些粉丝找到我求救,那么我最近刚好有空大致研究了下,帮他们成功编译了其中一个libredwg的C++库,这篇文章…

LeetCode01

LeetCode01 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和 为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你…

Lua多脚本执行

--全局变量 a 1 b "123"for i 1,2 doc "Holens" endprint(c) print("*************************************1")--本地变量(局部变量) for i 1,2 dolocal d "Holens2"print(d) end print(d)function F1( ..…

Java中的IO流的缓冲流

不爱生姜不吃醋⭐️ 如果本文有什么错误的话欢迎在评论区中指正 与其明天开始,不如现在行动! 文章目录 🌴IO流体系结构🌴缓冲流1.提高效率的原理2.缓冲流的类型3.字符缓冲流两个特有方法 🌴总结 🌴IO流体系…

git学习使用

git使用 1、cmd #查看版本 git version2、初识 Git GUI: Git提供的图形界面工具 Git Bash: Git提供的命令行工具 1.打开Git Bash2.设置自己的用户名和邮箱地址git config --global user.name "xxx"git config --global user.email "123456789163.com"查…

基于jenkins+k8s实现devops

1、背景 由于jenkins运行在k8s上能够更好的利用动态agent进行构建。所以写了个部署教程,亲测无坑 2、部署 1、创建ns kubectl create namespace devops 2、kubectl apply -f jenkins.yml apiVersion: v1 kind: ServiceAccount metadata:name: jenkinsnamespace…

OpenHarmony应用程序包整体说明

用户应用程序泛指运行在设备的操作系统之上,为用户提供特定服务的程序,简称“应用”。一个应用所对应的软件包文件,称为“应用程序包”。 OpenHarmony提供了应用程序包开发、安装、查询、更新、卸载的管理机制,方便开发者开发和管…

word中给公式加序号的方法

①首先,用word插入一个公式 然后呢,在公式后面敲上这个公式在整篇文章中的序号。我的这个公式在整篇文章中是第三号,所以就敲上(3),如下图所示: 然后,在公式和序号之间,按住shift3(#) 切忌,…

UNITY—2D游戏制作入门!

Unity作为当今最流行的游戏引擎之一,受到各大厂商的喜爱。 像是炉石传说,以及逃离塔克夫,都是由unity引擎开发制作。 作为初学者的我们,虽然无法直接做出完成度那么高的作品,但每一个伟大的目标,都有一个…

MySQL数据库的索引和事务

目录 一、索引 1.1Mysql索引 1.2索引的作用 1.3 创建索引的依据 1.4 普通索引 修改表方式创建索引 删除索引 1.5 唯一索引 修改表方式创建 删除索引 1.6 主键索引 修改表方式创建 1.7 组合索引 1.8 全文索引 1.9查看索引 二、事务 2.1事务概念 2.2事务的ACID特…

软件测试一些常见的误区

摘要 随着市场对软件质量的不断提高,软件测试不断受到重视,但是由于总体上,国内软件项目过程不规范,导致重视编码和轻视测试的现象,对于软件测试的重要性、测试方法和流程等还存在很多错误的认识。根据作者的软件工作…