这个需求很简单,怎么实现我不管,明天上线...
一句话、或者简单描述的需求,需要你设计测试用例,我相信大家或多或少都见到过吧?
我想起上一次面试某厂,面试官也出了个这种题。我觉得这种需求作为面试题出现还是可以接受的,如果作为真正的生产需求,我不知道提需求的人会不会被打?
今天就不聊生产场景下的,就以面试题的角度,梳理总结一下应对这种题目的套路。
参考题目
借用一个网上看到的题目,支付场景下的:
微信支持余额支付时,不足的部分可以信用卡补充一起支付,但针对使用余额支付的部分给予 3% 的优惠(直接用于本次支付中)
考察点
看到题目,内心是不是一万只草泥马奔过?好想直接打回需求,但是这毕竟是在面试,首先我们要知道面试官的考察点在哪里。
我觉得最重要的是这 2 点:
- 考察遇到这种不合理需求时的处理方式
- 考察测试基本功,设计测试时候是否足够发散
解题套路
1. 处理方式
拿到这种需求,内心肯定是拒绝的,我觉得可以向面试官询问一些更多的需求信息,比如应用场景等来让你有更多的了解。
当然了,就算面试官继续补充了点信息给你,肯定还是不够的。
那么我觉得可以说:这个需求不够明确,有不少的信息还需要补充,通常我们一般是打回处理的。
但是到这里还没结束。毕竟是在面试,你肯定还是要设计测试用例的。
我会继续说:不过基于当前的信息,我来说一下我考虑到的点,相关疑问点之后也会提给产品,让其确认。
到了 show 基本功的时候了。
2. 设计用例
设计用例是我们测试人的基本能力,也是最重要的能力。需要我们可以足够发散,既能跳进去扣细节,也可以跳出去考虑上下文。
因为题目没有给出上下文,所以我们可以把想到的问题也罗列出来,作为待确认即可。
剩下的就可以站在多维度:功能、性能、安全、易用、兼容等角度,运用:场景法、等价类、边界值等手段来进行设计了。
参考:
* 适用微信版本?(海外版\国内版\Android\IOS) * 适用的微信支付方式?(扫码\被扫) * 是否有存在支付优惠?(红包\直减) * 支付状态不同,对应的后端处理、和前端交互提示?(超时支付、不支付、支付但金额不足、支付超额) * 支持的货币有哪些? * 支付同时的临时动作(首次开通微信支付、支付时开通免密、支付时查看消息后再支付等等), * 不进行判定的方式、余额精度?比如需要余额大于 1 元? * 支持的信用卡种类 * 信用卡额度限制 * 测试 3% 优惠的精度 * 信用卡扣费失败,第三方的异常返回码处理 * 优惠支付后是否可退可改? * 优惠有没有使用次数限制? * 是否优惠只针对定向用户? * 交易是否可追溯、可核查 * 高并发场景,性能测试 * 调用请求是否有 鉴权判断。用户敏感信息是否是密文 * 是否有风控能力、能识别异常支付、非法支付、危险支付 ... ...
其实还有很多的地方需要考虑,但是面试时候只要表现出你的发散能力足够就可以了。
反思
最后,对话题进行一些延伸。
很多人喜欢自嘲自己是“点工”,没什么技术含量。确实,我觉得对于“点”来说,技术含量确实不大,重要的还是测试思维。
但是仔细思考一下,其实点点点也并不是那么容易的。
点点点是测试过程中的一项重要手段,但是想要做好绝对不是无脑的点,一定是有计划、有思路、有条理的点。
而且,随着当下环境对测试人的要求越来越高,测试人不能只局限于点点点表象。在你点的过程中,很多问题值得去深入研究一下:
- 测试的功能背后的逻辑是怎么实现的?
- 开发为什么要这么写?
- 对于这种场景一般的实现方式时哪些?
- 背后涉及到的中间件特点是什么?使用场景都哪些?
- 这种场景的测试是否有可以提炼出来的方法论?
- 如何更高效的做好这类的测试
... ...
现在圈子里对于测试开发趋之若鹜,搞得业务测试就该被鄙视一样。
其实我觉得做业务测试没关系,怕的是自己把自己局限在业务里,纵向、横向的思考一下?是不是还有很多要学习的呢?
把罗列出的知识都学一下,你肯定不是现在的你了。
共勉一下!