软件测试分类


按照测试(开发)的阶段划分

小型测试

单元测试

编码完成前后,对软件中最小的可测试单元(类、函数、方法等)进行的测试。

一般由开发人员自测

java中执行单元测试叫做junit测试。python单元测试叫做unittest或者pytest。

单元测试方式:先静态的观察代码是否符合规范,然后动态地运行以下代码,检查运行的结果。

集成测试

单元测试完成后,模块编码完成后,对模块与模块之间联系(接口)进行的测试。重点测试模块间的接口部分。

通常由测试人员完成

大型测试

系统测试

集成测试完成之后,将软件看作一个整体,包括对功能、性能进行测试。前期主要测试功能,后期主要测试性能以及兼容性、安全性等。

参与人员:开发人员、黑盒测试人员

验收测试

分为正式验收、非正式验收。

邀请用户对整个系统进行的测试,确定开发的软件产品是否符合预期的要求,最终进行上线。

非正式验收分为:

内测(α测试):一般是在开发者所提供的场所进行测试,由用户来执行、测试人员、开发人员共同参与的测试。

公测(β测试):完全脱离开发者的环境,一般不由测试和开发人员进行测试。完全交给用户进行测试,一般指的是内测之后的公测。

二轮公测(γ测试)

参与人员:系统测试人员、用户、媒体


是否覆盖源码

黑盒测试

把被测软件看作一个黑盒子,不去关心盒子内的结构是什么样子,只关心软件的输入结果和输出结果。

功能测试

主要测试软件功能是否可用。测试一个产品的逻辑功能,比如说:一个删除功能,点击删除按钮,删除以后这个数据消失,这就是一个逻辑功能测试;还要考虑界面和界面元素排版是否合理,这个是界面测试;还要考虑用户的使用体验,是否方便使用,这是易用性测试;当然还要考虑安装卸载测试、兼容性测试这些。

逻辑功能测试(狭义功能测试、业务测试)

检查功能能否正常使用

UI(用户界面)测试

检查用户界面是否正常

文档测试

检查文本错误、功能是否齐全、逻辑、语言是否清晰

易用性测试

按照需求文档进行测试,检查用户界面是否符合大部分用户使用习惯。如果感觉不符合用户体验、用户操作行为,和需求进行比较,如果不一致,提bug;如果一致,提建议。

安装和卸载测试

cs架构(客户端-服务端)

检查卸载安装功能是否正常以及安装卸载速度

1、软件在不同操作系统下安装的过程

2、软件安装后的是否能够正常运行,安装后的文件夹及文件是否写到了指定的目录里。

3、软件安装各个选项的组合是否符合概要设计说明

4、软件安装向导的UI测试

5、软件安装过程是否可以取消,点击取消后,写入的文件是否如概要设计说明处理

6、软件安装过程中意外情况的处理是否符合需求(如死机,重启,断电)

7、安装过程是否是可以回溯的(即是否可以点上一步重新选择)、

8、软件安装过程中是否支持快捷键,快捷键的设置是否符合用户要求

9、对某些软件要考虑客户端的安装、服务器端的安装、数据库的安装及单机版和网络版的安装

兼容性测试

硬件兼容性测试和软件兼容性测试

浏览器兼容性

IE、谷歌、火狐、edge等

平台兼容性

移动端:Android(小米、oppo、三星等)、iOS、鸿蒙

pc端:Windows、Mac

自身兼容性

同软件不同版本是否兼容

其他软件兼容性

不同软件不同版本是否兼容

数据兼容性
性能测试

通过压测工具,给系统设置对应的并发量,来查看服务器的吞吐量、响应时间、错误率,以及内存、CPU这些指标,来找出系统的性能问题。

关注点
时间性能(响应速度)

浏览器非常常见。

用户体验258原则:2秒响应很OK,2-5秒可以接受,5-8秒勉强接受,超过8秒体验很差。

ANR(Application not responding)应用程序无响应。

空间性能(对资源的利用)

CPU、内存、磁盘、网络消耗

一般性能测试

软件正常运行,不向其施加任何压力的测试。

稳定性测试(可靠性测试)

持续运行被测系统,检查系统运行时的稳定性。

检查服务器、代码稳定性,程序稳定性

负载测试

让被测系统在其能够忍受的压力范围之内持续运行,来测试系统的稳定性。

检查服务器的容量

疲劳测试

高负载的情况下,持续运行被测系统。

压力测试

不断增加负载,直到系统崩溃为止。

检查程序崩溃的极限

可移植测试
安全性测试

白盒测试

把盒子打开,去研究里面的源代码和程序结构。

语句覆盖、判断覆盖、条件覆盖、路径覆盖

灰盒测试

介于黑盒测试、白盒测试之间的一种测试。不仅关心系统的输入与输出,还关心系统的运行状态的测试


是否运行程序

动态测试

运行被测程序,输入测试数据,检查实际输出结果和预期输出结果是否一致的过程。

白盒测试、黑盒测试、灰盒测试

静态测试

不运行被测试软件,只静态的检查程序代码、界面、文档中可能存在的错误的过程。

白盒测试


是否自动化

手工测试

自动化测试

将用例编写成脚本,执行代码,进行测试。

未来行业发展趋势


按地域划分

本地化测试

国际化测试


其他测试分类

确认测试

检查反馈的bug有没有被正确修复的测试。

回归测试

修改旧代码之后,我们要重新进行测试,来确认修改bug没有产生新的问题。通常做法就是对之前编写的用例,重新进行测试。

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

回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。

冒烟测试

在对一个软件进行系统大规模测试之前,先检查基本功能、基本模块能否正常运行,是否具备可测性。

测试小组再正式测试一个新版本之前,先测试一下软件的基本功能,如果没有实现,则打回开发组重新开发。

随机测试

代表为:monkey测试

模拟用户随机乱点检查程序是否会崩溃的测试。

所有输入数据和操作都是随机生成的,目的是模拟用户的真实操作,来发现一些边缘性的错误。

探索测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值