本文章转载于搜狗测试
提到随机测试,大家可能认为随机测试就是随便点点,真的是这样吗?其实,随机测试也是需要策略的,不然,漫无目的的随机测试很可能是事倍功半,浪费大量时间,发现问题却寥寥无几。那么,作为新人的我们应该怎么进行随机测试呢?
首先,按照被测产品对象来分:一类是迭代产品,我们对这个产品已经很熟悉了,一类是新产品,只有需求文档,对这个产品并不熟悉。
迭代产品的随机测试
随机测试的前提:
熟悉被测试对象:
只有很好的熟悉被测试对象,才能在有效的时间内将随机测试进行的更好,找到更多问题
熟悉在用例测试阶段所发现的缺陷及其分布情况:熟悉bug的分布是很有必要的,根据80-20原则中,80%的缺陷存在于20%的模块中,熟悉bug及bug分布会增加随机测试思路以及选择测试点
测试人员具备一定的测试经验,对缺陷敏感:针对这项,是需要测试人员平时积累的,对缺陷比较敏感,可以举一反三。
测试思维技巧
模拟用户使用场景,想想用户都会做些什么 我们在测试的时候,要多想想用户如果用此功能,他们都会哪些操作呢?我们要把自己当成用户,按照用户使用习惯进行测试.比如完成从登陆到买票整个流程。
想想以往提交的bug以及别人提交的bug 在脑海过一下自己或别人提交的bug,想想在这里是不是会出现类似的问题。尤其是一些典型的bug。如:ios输入法之前在短信界面发送后不清空联想条,那么在测试这一类应用(Line、bitesms、WhatsApp)中也同样需要试一下这个问题
哪些地方需要考虑适配或兼容 我们对测试的功能要能区别哪些会根据所依赖的环境不同,可能会产生问题的地方,以及哪些地方是分系统单独适配的。如:ios输入法测试所依赖的设备系统、机型、应用、特殊界面等
改变操作入口及路径 在测试时可以任意改变入口、路径等,由于入口不同可能会产生问题。如:在ios输入法中进入搜狗设置界面有从工具条进入,后台进入。
与其他软件进行交互性测试 软件与软件之间有时是会有影响的,在测试时也要考虑到在和哪些软件进行交互操作可能会有问题,如:ios输入法在二维码扫描界面挂起后台,进入到系统相机界面后返回会概率出现崩溃
同时进行多项操作 同时进行多项操作时会很容易出现问题,开发在写代码时对于同时进行多项操作的处理往往会被遗漏,但是这样的较生僻操作往往会出现比较严重的问题,如:ios输入法之前的一个bug,在长按任意按键后返回应用上级,再调起键盘时按键无响应;下滑键盘时转屏再转屏时按键无响应
考虑边界值 好多问题都会出现边界值上,测试时对于边界值要特别关注下,如:ios输入法最多输入63个字符、手势滑动候选时,尾候选高亮后再右滑
在前提条件较多的情况下进行测试 有时候在前提条件较多情况下操作会发现一些比较严重的问题,我们在测试时可以建立多个前提条件,然后进行一系列操作。如:ios输入法开启细胞词库和纠错后26下输入纠错为细胞词的拼音串时内核崩溃;ios6.x系统上双拼和纠错同时开启时在非挂起的程序中26键下输入后退格崩溃
想想当前界面元素的作用 产品在设计时界面中的每个元素(如:按钮、图片、文案等),都有一定的作用,那我们可以想想这些元素的作用是什么,像按钮,它的作用是点击事件,按下时必定有按下效果,还有行为动作,这就是我们要检查的点。如: ios输入板中编辑框文字为“点击此处添加正文”,其实这个文案就是一个提示的作用,当光标定位到编辑框的时候,这个提示文字就应该是消失,如果光标定位到编辑框时,这个提示没有消失且作为内容显示了,那么这个处理就是很不合理的。
考虑所选择的测试点会影响哪些功能 有些功能之间是有联系的,所以要想想自己测试的功能对原有功能有哪些影响。如:滑动键盘移动光标或候选对删除的影响。
针对于新产品的随机测试
对于一个新产品进行随机测试时,我觉得和迭代产品在前提条件和随机测试点选取上会有些不同,但在测试思路上都是一样的。
l 测试前提:
1.熟悉需求文档,了解被测对象
2.安装竞品,熟悉竞品
因为对于新产品是从未做过用例的执行,所以我们需要根据一个大体的方向去选取测试方向。
l 随机测试方向:
通过熟悉需求文档,将被测对象划分大体的测试范围:
Bug类测试范围:
1) UI界面检查
2) 各功能实现(包括边界值)
3) 性能
4) 交互
5) 隐形需求
6) 非常规操作
建议类提出范围
1.UI效果不好的地方
2.不易让用户感知使用的地方
3.提示文案有异议的地方
4.功能用着不爽的地方
5.对比竞品实现较好的地方