软件测试流程五个阶段详解!看完不会你找我!
软件测试按照研发阶段一般分为5个部分:
单元测试、集成测试、确认测试、系统测试、验收测试,
下面将不同阶段需要的一些工作内容做一下梳理希望可以帮助到大家。
单元测试
一、单元测试的内容:
1、模块接口测试
应对通过所测模块的数据流进行测试
调用所测模块时的输入参数与模块的形式参数的个数、属性和顺序是否匹配
所测模块调用子模块时,输入子模块的参数与子模块的形式参数在个数、属性和顺序上是否匹配
输出给标准函数的参数的个数、属性和顺序是否正确
全局变量的定义在各个模块中是否一致
当模块通过外部设备进行输入/输出操作,文件属性是否正确、open和close语句是否正确,规定的I/O格式说明与I/O语句是否匹配;缓冲区容量是否与记录长度匹配,在读写之前是否打开了文件,读写之后是否关闭了文件,对I/O错误是否做了处理
2、 局部数据结构测试
局部数据结构是最常见的错误来源
不一致的数据类型
不正确或不一致的数据说明
使用尚未赋值或尚未初始化的变量
错误的初始值或错误的缺省值
3、 路径测试
运算的优先次序、常见的比较和控制流
4、错误处理测试
遇见出错的条件,并设置适当的出错处理
5、边界测试
例如循环的次数,最大或最小值
二、单元测试步骤:
利用设计文档设计测试用例
创建被测模块的桩模块或驱动模块
利用被测试模块、驱动模块和桩模块来建立测试环境,进行测试
驱动模块:相当于所测模块的主程序,它接收测试数据,把这些数据传送给所测模块,最后再输出实际结果
桩模块:用以代替所测模块调用的子模块
集成测试
又称为组装测试或联合测试,在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。
在把各个模块连接起来的时候,穿越各个模块的接口的数据时候会丢失
一个模块的功能是否会对另一个模块的功能产生不利的影响
各个子功能组装完成后,能否达到预期的父功能
全局数据结构是否有问题
单个模块产生的误差累计起来是否会放大
模块组装成系统的方式:一次性组装方式和增殖式组装方式
一、一次性组装方式
先对模块分别进行测试,再把所有模块组装进行测试。缺点:发现错我不容易定位 。
二、增值式组装测试
先对一个个模块进行模块测试,然后将这些模块逐步组装成系统,分为两种方式:自顶向下的增殖方式和自底向上的增殖方式。
1、自顶向下的增殖方式(不需要驱动模块)
将模块按系统程序结构,严控制层次自顶向下进行组装。
首先以主模块作为被测模块兼驱动模块,所有直属主模块的下属模块全部用桩模块代替,对主模块进行测试。再采用深度优先或广度优先的策略,用实际模块代替桩模块,再用桩模块代替它们的直接下属模块,与已经测试的模块构成新的子系统。然后进行回归测试。
2、自底向上的增殖方式(不需要驱动模块)
由驱动模块控制最底层模块的并行测试。
3、混合增殖式
自顶向下增殖方式:
优点:能够较早的发现主要控制方面的问题。
缺点:需要建立桩模块,增加了一些附加的测试,涉及算法和输入输出的模块一般在底层,这些底层模块要到组装和测试的后期才能发现。一旦发现问题就会出现过多的回归测试。
自底向上增殖方式:
优点:不需要建立桩模块,建立驱动模块要比建立桩模块要简单得多,同时涉及到算法已经输入输出的模块要先测试,把最容易出现问题的部分在早期解决。
缺点:程序一直未能作为一个实体存在,直到最后一个模块加上才能形成一个实体,控制方面最后才能接触。
三、集成测试完成的标志
1、成功执行了测试计划中规定的所有集成测试
2、修改了所发现的错误
3、测试结果通过专门小组的评审
4、集成测试需要提交的测试报告
5、集成测试计划、集成测试规格说明书以及集成测试分析报告
确认测试
确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一般包括有效性测试和软件配置复查。一般有第三方测试机构进行。
一、进行有效性测试
现软件确认要通过一系列黑盒测试。确认测试同样需要制订测试计划和过程,测试计划应规定测试的种类和测试进度,测试过程则定义一些特殊的测试用例,旨在说明软件与需求是否一致。
无论是计划还是过程,都应该着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确人机界面和其他方面(例如,可移植性、兼容性、错误恢复能力和可维护性等)是否令用户满意。
确认测试的结果有两种可能,一种是功能和性能指标满足软件需求说明的要求,用户可以接受。
另一种是软件不满足软件需求说明的要求,用户无法接受。项目进行到这个阶段才发现严重错误和偏差一般很难在预定的工期内改正,因此必须与用户协商,寻求一个妥善解决问题的方法
二、软件配置复查
保证软件配置的所有成分齐全,质量都符合要求。应该遵守用户手册和操作手册中的规定步骤。
系统测试
软件作为计算机系统的一部分,与硬件、网络、外设、支撑软件、数据以及人员结合在一起,在实际或模拟环境下,对计算机系统进行测试,目的在于与系统需求比较,发现问题。
验收测试
以用户为主的测试,软件开发人员和质量保证人员参加,由用户设计测试用例。不是对系统进行全覆盖测试,而是对核心业务流程进行测试。
最后: 可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)
好文推荐
转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!
面试经:一线城市搬砖!又面软件测试岗,5000就知足了…
面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…
什么样的人适合从事软件测试工作?
那个准点下班的人,比我先升职了…
测试岗反复跳槽,跳着跳着就跳没了…
软件测试流程五个阶段详解!看完不会你找我!相关推荐
- 计算机网络参数怎么看,电脑显示器参数详解 看完秒懂! 显示器参数怎么看?...
显示器参数怎么看?无论是显示器的宣传.购买页面,还是专业媒体的显示器评测中,我们都会看到一些用来描述显示器性能的参数.小编觉着,显示器就像是电脑的一张面孔,显示着它的各种表情,也负责与用户的沟通,而显 ...
- 查看计算机配置讲解,教您如何看显示器参数!电脑显示器常见参数详解,看完秒懂!...
由于显示器可选的范围比较广,同一个尺寸大小的显示器,不同品牌不同型号不同参数会有上百种可供选择,其实我们只需明确了预算与用途,才可以正确选择合适自己的显示器.那么如何看显示器参数?下面装机之家分享一下 ...
- Java-方法的详解( 看完之后,我不允许还有人不懂!)
文章目录 一.什么是方法 二.方法定义 三.方法调用 四.方法重载 1.什么是方法重载? 2.为什么会出现方法重载? 3.被称为方法重载的必要条件是什么? 4.编译器是如何识别出相同名字的方法的呢? ...
- WebApi路由机制详解——看完不会用你打我
随着前后端分离的大热,WebApi在项目中的作用也是越来越重要,由于公司的原因我之前一直没有机会参与前后端分离的项目,但WebApi还是要学的呀,因为这东西确实很有用,可单独部署.与前端和App交互都 ...
- keil5的安装详解(看完必会,不会你打我)
如何安装KEIL5 本内容所涉及的软件只供教学使用,不得用于商业用途.个人或公司因商业用途导致的法律责任,后果自负. 温馨提示 1.安装路径不能带中文,必须是英文路径 2.安装目录不能跟51的KEIL ...
- python虚拟环境管理工具_Python虚拟环境和包管理工具Pipenv的使用详解--看完这一篇就够了...
前言 Python虚拟环境是一个虚拟化,从电脑独立开辟出来的环境.在这个虚拟环境中,我们可以pip安装各个项目不同的依赖包,从全局中隔离出来,利于管理. 传统的Python虚拟环境有virtualen ...
- spring注解详解,看完你就都全懂了!!
转载:https://blog.csdn.net/walkerjong/article/details/7946109
- 各类IP地址的划分范围详解(看完不懂算我输)
A类IP地址的范围 一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是"0", 地址范围从1.x.x.x 到126.x.x.x. 全0和全一不能用的原因 ...
- 万字长文的Redis五种数据结构详解(理论+实战),建议收藏。
本文脑图 前言 Redis是基于c语言编写的开源非关系型内存数据库,可以用作数据库.缓存.消息中间件,这么优秀的东西一定要一点一点的吃透它. 关于Redis的文章之前也写过三篇,阅读量和读者的反映都还 ...
最新文章
- 多传感器融合 | R-LINS概述
- 记录我学github的路程(二)
- 当TFS/VSTS遇上Power BI
- 使用Spring MVC应用程序配置嵌入式H2控制台
- 【CodeForces - 471C】MUH and House of Cards (思维,找规律)
- 怎么设置tomcat的默认应用
- [Unity脚本运行时更新]C#7.3新特性
- 计算机应用基础课程整体设计说课视频,计算机应用基础说课稿
- POST请求传递参数(十一)
- Excel学习笔记:P22-时间格式、工龄与工时计算
- 推荐C语言编译器(手机APP)
- Python简单爬取蚂蚁窝首页的图片
- MMO游戏设计一:角色行走
- 分布式系统之-我的书单
- java毕业设计城市猎人户外军品店Mybatis+系统+数据库+调试部署
- 如何使用计算机网络打印机,如何在电脑上安装网络打印机?详细教程全部教给你!...
- docker入门基础(四)
- jmeter(二十):Logic Controller:逻辑控制器(上)
- [5GC]《5G核心网-赋能数字化时代》| 6.4高效的用户面连接机制
- 基于vue的tiptap编辑器插件(三)