面向客户端测试与面向服务端测试

前言

产品在早期的研发过程中,特别是初创团队,可能根本就没有专门的测试人员。(当初我参与的第一个手游项目就是这样,但也因此,项目组的程序、策划、美术每个人,都得反反复复跑游戏,充当测试的角色)。

测试是保证产品质量的一个重要环节,而测试人员本身的专业能力直接影响测试质量。
作为程序员,经常会听到到面向对象和面向过程这类词汇。那么“测试人员”,是否也有类似的分类呢?!答案是肯定的。
在我平时的工作中,接触到的测试人员,基本都是本文标题中所提到的面向客户端测试,能够做到面向服务端测试的寥寥无几。

面向客户端测试

这是一项门槛非常低的工作,基本只要有点常识就能做。所需要完成的工作,无非就是拿着手机各种点点点,看看界面显示是否正常,客户端会不会崩溃。
有些细心的测试人员,会做的更好一些。比如:
根据实际的产品逻辑,想一些比较容易忽略的操作,来进一步验证软件的稳定性。

但是!!! 面向客户端测试终归是有局限性的,怎么都跳不出客户端的那几个操作,那几个界面信息。

面向服务端测试

面向服务端测试(或者称为面向接口测试),这应该可以算是测试人员能力的一个分界线,可惜绝大多数测试人员都止步于此。
这是有门槛的,需要测试人员有一定程序能力(能写脚本)和计算机方面的知识(Http、Socket通讯细节等)。

这里以银行转账为例。

用户A通过手机银行往用户B账户转账。
那么客户端这边在输入金额这一块肯定是需要做限制的,比如正数,小数点保留两位等。
但是服务端可能并没有做限制。
所以用户可以绕开客户端界面,直接发送转账协议,把其中的金额改成负数,这就导致用户A的金额不减反增。
(平时报道的很多漏洞,有不少就是这样类似的原因)

当然这只是一个玩笑,但也足够体现出跳出客户端界面约束,面向服务端测试的重要性。

面向服务端测试还有很多内容,比如:性能测试。(这有点偏向服务端开发人员的工作)

当然面向服务端测试有许多现成的工具,虽然多了些学习成本,但的确可以减少测试人员的工作量。
(还是非常值得学习使用的!)

还需要…

以上只是具体的测试方法,而在实际项目中,测试规范也异常重要!
一般来说,测试流程应该是一轮一轮的完整进行,而不是一边开发,一边测试。
“一边开发,一边测试” 本身并没有问题,但是这不能算是测试阶段,只能算作是开发阶段!
只要客户端与服务端功能还未全部完成,期间进行的各种测试,都不能作为产品上线的依托。

当客户端,服务端代码不做修改之后,依旧需要进行一轮完整的测试!

其实,测试这一职业就是简化版的程序员,也需要不断的学习充电! 共勉!!!

转载本站文章请注明作者(xtutu)和出处 xtutu