软件测试——工作一年半对软件测试的理解

前提:个人工作与互联网相关,因此总结内容比较偏向这方面的,如有其他不同建议或者需要补充的,请各位留言拍砖,互相交流,互相学习!

一、什么是软件测试

软件测试就是尽量以最小的人力物力保证产品质量的过程,做好前期计划,做好中间过程,做好后期反馈和问题解决。

二、为什么需要软件测试

如果没有软件测试,则无法保证在测试过程中产品按照具体的需求完成,也没有人专职对产品的功能、逻辑等进行专项测试,无法保证质量的产品发布出去后是很容易有重大问题的,尤其是在产品用户量较大的情况下,引起的经济损失以及企业形象损失等无法预计。

三、软件测试工作的流程及测试工程师的工作内容

软件测试工作的流程主要包括:

(1)需求评审

(2)测试计划

(3)测试方案

(4)具体功能模块的划分、测试点的确定、测试用例的编写

(5)具体的测试执行

(6)bug的跟进与修复验证

(7)根据基本的发布标准,进行最终版本的回归,并完成发布

(8)产品发布之后继续跟进运营反馈的问题,复现现场,并协助分析和解决用户场景下的问题

四、软件测试过程中的bug分类

(1)用户体验上的——包括界面设计、流程跳转等

(2)功能性的——逻辑上错误,功能上未实现,或者在特定场景下出现的特殊问题

(3)兼容性的——包括外部环境的兼容性(与其他软件的兼容性),内部环境的兼容性(一个大的软件安装目录下新旧版本的文件兼容性(如A新+B旧,A旧+B新等));以及硬件与软件之间的兼容(比如硬件的接口修改了,导致软件无法访问的)

(4)性能上的——挂机时间较长或者某个操作次数频繁后,出现内存泄露,或者cpu占用过高

(5)异常情况——设计用例时可将该部分内容全部摘取出来(比如测试网速时,连接无网的WiFi,或者直接不连接WiFi等)

(6)安装卸载升级——全新安装卸载、覆盖安装卸载、升级功能

(7)权限相关的——比如app端需要通话、照片、照相机等权限的,这里都是需要特别注意验证的

五、测试用例的设计

测试用例的设计基本上可以按照bug的分类来进行,这样就可以比较全面的覆盖到:

(1)功能性(2)兼容性(3)性能(4)用户体验

另外,测试用例的设计上需要针对冒烟测试、详细测试、以及回归测试做区分,设计出不同的测试用例

以下为自己平时记录的心得:

这里关注的都是客户端内容(PC和android的)

输入页面为例,一般都包括输入框和确认按钮

功能性:
1、输入框内任何内容都不输入,点击确认按钮(注意:这里一定要增加判空逻辑,否则程序会抛出异常,导致崩溃;其他类似)
2、输入框只输入一个框,其他不输入(以此类推),点击确认按钮
3、输入框内输入格式错误(包括其他不允许输入的字符、带.的不输入点,如IP只输入数字、输入长度限制、特殊字符限制),点击确认按钮
4、针对输入框部分可输入,部分可选情况,只输入必须输入的,点击确认按钮
5、输入框输入正确内容和格式,点击确认按钮(能够正确设置成功?)

性能:
1、输入内容有问题时,点击确认按钮多久能够给出响应?
2、输入内容正确时,多久能够设置成功,给出正确响应?

交互:
1、输入框展示(主tab内容)、输入框排布、以及确认按钮排版、风格一致
2、输入框正确、错误提示

兼容性:
1、国际大环境兼容性:
客户端产品要关注的兼容性——不同操作系统
如果是web端——关注不同的浏览器
如果是手机端——关注不同的手机型号、手机系统

2、睦邻友好兼容性:
跟其他的软件之间的兼容性
跟一些需要顾及到安全性的产品的兼容性
跟一些驱动层相关的产品的兼容性

3、内部兼容性:
自己的产品之间——新老文件的兼容性
自己的产品跟兄弟产品之间——相互调用的兼容性(我们的产品调用其他产品的dll等)
发布更新过程中的兼容性问题——比如有些模块升级之后,老的依然在内存中,必须得产品主程序重启才行;因此这种情况下就必须对原来程序加载老的和加载新的,进行测试,
看是否会存在问题

六、测试方法总结

主要包括以下多种,均为自己平时总结:

1、传统测试方法:
关注功能、逻辑、用户体验等,与需求文档对照,总结测试点,编写测试用例,进行测试

2、比较测试方法:
此种方法比较适合于有产品调用我们的dll时采用,确定程序流程,老版本正常和不正常的地方,修改为新版本后,验证老版本不正常的地方得以修改,正常的地方依然正常

3、类比测试方法:
该种方法也可以叫做迁移测试法,比如考虑下载或者上传的加密问题,在一个项目中学习到这个注意事项后,在其他的项目中也就需要关注这一点

4、通用测试方法:
涉及到安全的产品及与用户本身隐私有关的产品,都必须进行加密,并且需要外界无法解密;对于一些需要常驻的进程或者可能会常驻的进程,需要关注性能方面的测试(挂太久会不会崩掉;
程序会不会出现卡死或者紊乱)

5、正向逆向结合测试方法:比如程序web端与app端进行联动对应测试等

6、工具与真实环境对比测试:

7、测试正常及异常情况均需要考虑

原文地址:https://www.cnblogs.com/keke-xiaoxiami/p/4313713.html