软件做异常测试?必知的22个测试点总结!
软件交付最终用户使用之前,需要进行各种类型的测试,其中就包括异常测试。
什么是异常测试?异常测试,是检测系统对异常情况的处理。异常测试覆盖硬件或软件异常时的处理。测试方应通过人为制造错误情况测试系统对错误操作、错误报文的反应,检查程序中的屏幕或页面是否给出了清晰且充分的提示或约束;一旦出现错误情况,系统是否能正常报告,并检查系统的错误提示是否清晰且充分;测试系统是否处理了用户的异常操作,还是造成死机或处理错误。
这里我们只针对异常测试案例的设计进行讨论。为了验证软件的健壮性、可靠性,我们需要对软件进行异常测试,设计软件异常测试的测试用例。为了更清晰的分析和解决问题,我们从四个方面入手,他们分别是:业务需求、操作需求、标准需求和经验需求。下面我们就从这四个方面详细阐述如何设计异常测试用例。
异常测试的测试点从业务需求方面:
1、特殊业务流程测试
测试软件不按照正规的流程,而是按照可能的但非正规的业务流程运行,是否会生成错误数据,或者造成原有数据的错误,甚至造成系统的瘫痪;
2、压力测试
主要是检查系统某些关键业务在极限情况下运行的能力,测试在这种情况下系统的运行、处理数据的情况,是否会造成系统瘫痪
3、修改系统的重要配置信息测试
在软件的配置界面进行重要信息的修改或删除,测试系统是否有相关限制提示,并测试如果修改错误,系统是否能够进行错误提示,引导用户修改,而不至于系统瘫痪
4、修改系统环境变量
在系统运行过程中,人为修改系统使用的环境变量参数,观察系统的反应
5、将系统的用户名和密码或权限进行修改
例如在系统运行过程中,修改数据库访问用户名或密码,观察系统的反应
6、对系统产品进行升级
老系统仍然在运行过程中,对系统进行升级操作
从操作需求方面:1、单引号操作
大多数基于SQL的数据库数据库数据库数据库系统在用户存储包含一个英文单引号的信息时会出现问题,所以每一个可以接受文字数字型的条目都要有包含一个或多个单引号的文本案例。当然,这类问题还应该包括英文双引号、&、<、>等特殊字符。在测试的时候应该注意其之前的提示和错误操作之后的恢复与补救措施等
2、必填项输入测试
测试每一个功能说明书上指出的屏幕上必须输入数据的字段和屏幕上每一个被说明为必须输入的字段,以保证它强制要求你在字段中输入数据。测试其如果没有输入相关数据的提示和后续操作
3、特殊字段类型测试
准备每一个功能说明书或界面中规定的特殊数据输入要求(身份证、日期、电话号码、邮编等)的字段的测试案例,输入的数据包括它不应该接受的数据类型,测试软件对错误输入的提示和后续操作
4、日期类型测试
日期类型要测试其边界值和日期格式类型的有效性测试。对于日期类型的边界值可能根据数据库不同而不同,比如sql server的最小日期是1753年1月1日;而对于有效性最常用的就是闰年的有效日期问题,准备这类测试用例来测试软件对于错误输入的提示和后续操作
5、web会话测试
对于采用b/s结构的软件,应该注意web会话测试。比如:在空白的浏览器中输入比较敏感的页面的URL,软件是否有相应的提示、强调应该先进行登录才能访问该界面
从标准需求方面:1、数据库服务器死机测试
在测试过程中强行关闭软件的数据库服务器或者用其它方式导致数据库死机,测试被测系统的提示是否准确以及其后的相关补救提示或操作
2、进行数据迁移工作
在系统运行过程中,对系统数据库进行迁移工作
3、数据表毁坏测试
非法删除或修改数据库中的表数据或者表,测试被测系统的提示是否准确以及其后的相关补救提示或操作
4、网络故障测试
在测试中中断网络或者人工增加网络流量,测试被测系统的提示是否准确以及其后的相关补救提示或操作
5、在对应的服务器上安装其他相关软件
在系统运行过程中,服务器上安装新的杀毒软件或者进行病毒库的更新,或更新或安装新的浏览器软件,或更新或安装新的输入法软件,或更新或安装新的办公软件
6、端口号被占用
不同服务使用了同一端口号
从经验需求方面:1、文件丢失测试
强行删除被测软件的一些文件,测试被测系统的提示是否准确以及其后的相关补救提示或操作;
2、文件丢失操作
在系统运行过程中,将系统对应的安装文件夹或生成文件夹进行移动或删除或修改文件夹的属性
3、服务器资源测试
通过人为手段,增加软件数据库服务器、web服务器或者中间件服务器等相关服务器的硬件资源,如:cpu、内存、硬盘等的负载,测试被测系统的反应和其后的补救提示或操作;
4、断电测试
在测试期间,对部分或者所有相关软件测试机器进行断电测试,测试软件的恢复能力
5、服务异常终止
通过人为手段将数据库服务、web服务等服务进行暂停,观察系统的反应
总结:只有通过异常测试的软件产品,才可以保证软件在正式上线后长时间的保持良好的运营状态,给最终用户以信心。异常测试的结果也有助于为我们进一步的系统优化设计积累经验,设计和测试是一个相互反馈的过程。
往期精彩阅读
长按:二维码关注
专注于开发技术研究与知识分享
公众号回复:”进群” 加微信群深入交流
回复 Java,Docker等关键字可获得学习资料