当前位置: 首页 > news >正文

按照开发阶段划分测试技术

主要分为:单元测试、集成测试、系统测试、验收测试

单元测试

单元测试是对软件组成单元进行测试,目的是检验软件基本组成单元的正确性,测试对象是软件设计的最小单位 - 模块,又称为模块测试

单元测试的实质是代码测代码

    测试阶段: 编码后或者编码前(TDD,编码前属于测试驱动开发)

    测试对象: 最小模块

    测试人员: 白盒测试工程师或开发工程师(这一点很好的体现了代码测代码的实质)

    测试依据: 代码和注释 + 详细的设计文档

    测试方法: 白盒测试

    测试内容: 模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试

 
集成测试

集成测试也称联合测试(联调)、组装测试,将程序模块采用适当的继承策略组装起来,对系统的接口(接口属于白盒)以及组装好的功能(功能属于黑盒)进行正确性检查的测试工作

集成测试的主要目的是检查软件单位之间的接口是否正确

    测试阶段: 一般在单元测试以后

    测试对象: 模块间的接口(单元测试的接口是指一个模块的接口,这里是强调模块间)

    测试人员: 白盒测试工程师或者开发工程师

    测试依据: 单元测试的模块 + 概要设计文档

    测试方法: 黑盒测试和白盒测试的组合

    测试内容: 模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响

 
系统测试

系统测试是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行。

包括对功能、性能、以及软件所运行的软硬件环境进行测试

系统测试包括冒烟测试和回归测试

    测试阶段: 集成测试通过之后

    测试对象: 整个系统(软、硬件)

    测试人员: 黑盒测试工程师

    测试依据: 需求规格说明书

    测试方法: 黑盒测试

    测试内容: 功能、界面、可靠性、易用性、性能、兼容性、安全性等(来自于需求文档,非功能需求)

 

冒烟测试:

冒烟测试是一个准入标准, 是是否接受软件测试的依据

    测试对象:每一个新编译的需要正式测试的软件版本

    测试目的 : 确认软件基本功能正常,可以继续后续的正式测试工作

    执行人员 : 测试人员

开发人员开发完毕后交给测试人员进行测试

测试人员进行冒烟测试,保证基本功能正常,不阻碍后续测试

 

回归测试:

回归测试的测试用例是从功能测试用例中提取的

回归测试是指修改了旧的代码以后,重新进行测试,确认修改没有引入新的错误,或导致其他代码产生错误,

自动回归测试将大幅度降低系统测试、维护升级等阶段的成本(自动化测试)

在整个软件测试系统中,占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试,随着系统的庞大,回归测试的成本也会越来越大,听过选择正确的回归测试策略来改善测试效率和有效性是非常有意义的

回归测试和冒烟测试都可以使用自动化测试

 一般的顺序是: 冒烟测试 -> 系统测试 -> 回归测试

 
验收测试

验收测试是部署软件之前最后一个测试操作,他是技术测试的最后一个阶段,也称为交付测试,验收测试的目的是保证软件准备就绪

    测试阶段: 系统测试通过之后

    测试对象: 整个系统(包括软硬件)

    测试人员: 需求方

    测试依据: 用户需求、验收标准

    测试方法: 黑盒测试

    测试内容: 功能、界面、可靠性、易用性、性能、兼容性、安全性等(同系统测试)

相关文章:

  • 数据倾斜
  • Tomcat9启动乱码
  • @GetMapping和@RequestMapping的区别
  • 正则表达式-匹配A和B之间字符串
  • HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
  • urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)
  • Mac下Chromedriver存放位置
  • 解决 Cannot open pip-script.py
  • Python安装docx库
  • Windows下Chromedriver存放位置
  • Python中str跟int的转换
  • Python同步遍历多个列表
  • Python3.6+selenium+xlwt爬取邮箱内容下载到Excel
  • python3 Manager 安装不成功
  • JQuery中 Uncaught ReferenceError: $ is not defined
  • eclipse(luna)创建web工程
  • ES6 ...操作符
  • es6要点
  • Intervention/image 图片处理扩展包的安装和使用
  • Linux后台研发超实用命令总结
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Odoo domain写法及运用
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 搞机器学习要哪些技能
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 跳前端坑前,先看看这个!!
  • 我是如何设计 Upload 上传组件的
  • MyCAT水平分库
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (145)光线追踪距离场柔和阴影
  • (4) PIVOT 和 UPIVOT 的使用
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (pojstep1.1.2)2654(直叙式模拟)
  • (多级缓存)缓存同步
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net core 6 集成和使用 mongodb
  • .net mvc部分视图
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • @Autowired标签与 @Resource标签 的区别
  • @EnableAsync和@Async开始异步任务支持
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • @staticmethod和@classmethod的作用与区别
  • [ vulhub漏洞复现篇 ] Celery <4.0 Redis未授权访问+Pickle反序列化利用
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [android]-如何在向服务器发送request时附加已保存的cookie数据
  • [Assignment] C++1
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  • [C#]使用DlibDotNet人脸检测人脸68特征点识别人脸5特征点识别人脸对齐人脸比对FaceMesh
  • [C#基础]说说lock到底锁谁?
  • [C/C++]数据结构 堆的详解
  • [DM复习]Apriori算法-国会投票记录关联规则挖掘(上)
  • [GN] DP学习笔记板子