一、什么是软件测试
软件测试就是尽量以最小的人力物力保证产品质量的过程,做好前期计划,做好中间过程,做好后期反馈和问题解决。
二、为什么需要软件测试
如果没有软件测试,则无法保证在测试过程中产品按照具体的需求完成,也没有人专职对产品的功能、逻辑等进行专项测试,无法保证质量的产品发布出去后是很容易有重大问题的,尤其是在产品用户量较大的情况下,引起的经济损失以及企业形象损失等无法预计。
三、软件测试工作的流程及测试工程师的工作内容
软件测试工作的流程主要包括:
(1)需求评审
(2)测试计划
(3)测试方案
(4)具体功能模块的划分、测试点的确定、测试用例的编写
(5)具体的测试执行
(6)bug的跟进与修复验证
(7)根据基本的发布标准,进行最终版本的回归,并完成发布
(8)产品发布之后继续跟进运营反馈的问题,复现现场,并协助分析和解决用户场景下的问题
四、软件测试过程中的bug分类
(1)用户体验上的——包括界面设计、流程跳转等
(2)功能性的——逻辑上错误,功能上未实现,或者在特定场景下出现的特殊问题
(3)兼容性的——包括外部环境的兼容性(与其他软件的兼容性),内部环境的兼容性(一个大的软件安装目录下新旧版本的文件兼容性(如A新+B旧,A旧+B新等));以及硬件与软件之间的兼容(比如硬件的接口修改了,导致软件无法访问的)
(4)性能上的——挂机时间较长或者某个操作次数频繁后,出现内存泄露,或者cpu占用过高
(5)异常情况——设计用例时可将该部分内容全部摘取出来(比如测试网速时,连接无网的WiFi,或者直接不连接WiFi等)
(6)安装卸载升级——全新安装卸载、覆盖安装卸载、升级功能
五、测试用例的设计
测试用例的设计基本上可以按照bug的分类来进行,这样就可以比较全面的覆盖到:
(1)功能性(2)兼容性(3)性能(4)用户体验
另外,测试用例的设计上需要针对冒烟测试、详细测试、以及回归测试做区分,设计出不同的测试用例
以下为自己平时记录的心得:
这里关注的都是客户端内容(PC和android的)
输入页面为例,一般都包括输入框和确认按钮
功能性:
1、输入框内任何内容都不输入,点击确认按钮(注意:这里一定要增加判空逻辑,否则程序会抛出异常,导致崩溃;其他类似)
2、输入框只输入一个框,其他不输入(以此类推),点击确认按钮
3、输入框内输入格式错误(包括其他不允许输入的字符、带.的不输入点,如IP只输入数字、输入长度限制、特殊字符限制),点击确认按钮
4、针对输入框部分可输入,部分可选情况,只输入必须输入的,点击确认按钮
5、输入框输入正确内容和格式,点击确认按钮(能够正确设置成功?)
性能:
1、输入内容有问题时,点击确认按钮多久能够给出响应?
2、输入内容正确时,多久能够设置成功,给出正确响应?
交互:
1、输入框展示(主tab内容)、输入框排布、以及确认按钮排版、风格一致
2、输入框正确、错误提示
兼容性:
1、国际大环境兼容性:
客户端产品要关注的兼容性——不同操作系统
如果是web端——关注不同的浏览器
如果是手机端——关注不同的手机型号、手机系统
2、睦邻友好兼容性:
跟其他的软件之间的兼容性
跟一些需要顾及到安全性的产品的兼容性
跟一些驱动层相关的产品的兼容性