对于软件测试的理解
软件测试就是在产品发布前尽量找bug,发布中模拟真实场景保证用户使用无障碍,发布后对产品进行进行体验
软件测试阶段
- 需求文档
合理的软件测试其实从需求就开始介入,对产品需求进行测试:这需求是什么;为什么会有这需求;这需求会对旧功能产生什么影响。通过测试人员敏锐严谨的逻辑思维有可能在产品的萌生阶段就找到产品的bug。 - UE和UI
UE就是用户交互,对产品各个操作如何跳转,如何限制,如何联系作描述,测试此时介入就是要找出各种交互存在的不合理性。UI用户界面,对界面的不美观提出建议 - 开发代码
软件开发阶段,有能力的测试人员应该参与单元测试,对开发的代码逻辑进行测试,对代码集成后进行集成测试。如果是app,摸清app的全部设计到http请求额接口,是调用本项目自己的api还是被人家的api,所传的参数,返回的参数。 - 提测产品
(1)开发提测通过后(minishowcase:参与人员:测试,产品,交互设计师,开发)测试开始测试。
一轮测试:100%覆盖测试用例,想方设法找bug,bug你想找,总是会有源源不断的bug。
(2)二轮测试:一轮测试严重级别以上bug100%解决,回归一轮测试的bug,根据bug修改可能引发的其他问题进行测试。
(3)release:这个是公用正式环境的数据库。二轮测试的bug100%解决,跑主要流程。
(4)发布
软件测试策略
功能测试
- 用例设计
一条用例包含:用例编号,用例标题,前置条件,操作步骤,预期结果,优先级。一般常用的用例设计方法有:
(1)边界值,对场景的边界进行测试。例如时间输入限制为20140501到20170501,边界值就取20140501和前一天20140430,20170501和后一天20170502
(2)等价类,等价类要划分有效等价类和无效等价类,还是上面的例子,有效等价类有1:8个数字;2:20140501到20170501.无效等价类:1非数字,2:不是8个数字;3:<20140501;4:>20170501;
(3)猜错法。顾名思义猜错法便是对程序有可能出现的问题作出猜测,这个跟经验关系比较大,测试过程中要总结。下面的总结是跟了一个产品从0到3.0的版本的经验:
产品:打车app
(1)网络猜错,首先需要知道app的哪个操作会设计到网络请求,每个设计到网络请求的操作都要设置一个完全断网和弱网的情况。断网:操作,需要给出网络断开提示,重连,需要给出socket正在重连提示。弱网,操作,需要转圈表示正在请求或正在加载,需要增加一个超时提示。网络状况的模拟用Charles工具,超级给力。司机端和乘客端的网络猜错交互:
乘客端下完单后断网,司机接乘客单后改变订单状态,乘客联网,乘客应该要跳转到正确的状态。司机弱网,给司机派单后司机接不到单,司机网络恢复正常,再给司机派单,司机应该是要正常能收到单据。这个是测试程序对错误的解决方案是否正确处理。
(2)位置上传猜错
司机端位置30秒上传一次,在30秒内上传多次不同的位置,看乘客端该如何变化
乘客在获取位置时网络异常,再次获取不同于上次的位置,该如何显示司机的位置
(3)第三方库猜错
app用到了百度鹰眼,百度地图,在搜索模块跟其他用到百度地图的app作搜索对比,跟百度用到百度地图的app作对比,对我们的程序保留怀疑的态度。 - 测试工具
自动化测试
- 接口自动化
- web UI自动化
- 安卓UI自动化
性能测试
- 稳定性
- 压力