目前,管后端也兼管测试,想想如果我创业开公司招测试人员,会希望一个普通测试人员要做到哪些呢,记录于此:
往往新需求开发完了,所有人都在关注新需求,新界面,新体验,然后从后端上线,到发版并提交各应用市场审核,到审核通过并上架,再到用户主动升级app,这个过程是很长的,android应用市场全走完可能要一周,appstore在审核严格的时候,可能两周都走不完这个空档期,所以老版本的兼容测试是一定要走的,就算新版本全铺开了,也有大量用户一段时间内不升级。
开发打测试包后交给测试人员,测试便开始了,但是开发打完线上包时,并不意味着测试结束。此前是在测试环境下,测测试包,各种观察也更仔细些,耗时耗力地抓各种细节。但是打了线上包之后,需要在包提交到应用市场前,回归app的基本功能和新功能,此时不需要做压力测试或者极限测试,只需要走大体流程,毕竟测试环境和线上环境是两个不同的环境,也有可能上线过程有遗漏,测试环境没问题,并不代表线上就一定OK。以前就有血的教训:测试环境好好的,线上环境一启动就闪退,结果提交到应用市场被打回,浪费大量时间。
比如测试app一个类似发朋友圈的功能,一定要明确文字最少是多少个字,最多是多少个字,图片最小是多少张,最多选择多少张。再或者用户注册功能时,也一定要明确『用户名』最少是多少个字,最多是多少个字,这些极限情况是一定要测到。当选择上限进行测试时,很有可能因为程序出现承载的上限而变得处理很慢,体验很差,此时就需要跟产品沟通下调这个上限值。比如产品拍脑袋说用户一次上传照片最多可以100张,结果实测发现当100张时,wifi条件下都需要等待5分钟才能处理完,用户几乎不可能有这样的耐心,明显不适合了。
多数公司的测试是不会写代码的,如果能写代码,还能看个堆栈信息,那就完全可以把开发的活干了。反正勉强能写个脚本就算很不错了,所以往往全是黑盒测试,直白一点就是全靠界面上点吧点吧来完成测试,这其实是不够的,当然让测试去读开发的代码也不现实。但测试应该做到观察后端日志或者是手机端的日志,有时界面上一切良好,但实际是有问题的,通过观察日志却能一眼发现问题。比如以前遇到手机端为了调试方便,所有向服务端提交的数据进行了json格式化处理,方便阅读,但是这样导致提交的数据量变大很多,日志存储和数据库都浪费了空间,而界面上没有任何问题,结果最后app就被测试放行直接发版了。还有一次手机端同学开发时将缓存全关闭,测试也在界面上点击,自然也不会发现问题,但是上线之后瞬间发现服务器压力翻倍了。
当然测试需要些基本素质。专业素质上至少他应该知道什么啥叫白盒、黑盒,啥叫单元测试,啥叫系统测试,KB/MB/GB的换算,啥叫json,啥叫xml,http请求啥叫POST,啥叫GET。做事态度上,善于记录问题,懂得沟通的技巧,跟反馈问题的用户有足够的耐心,工作上细心不放过细节。
特别说明一点,UI验收是设计人员的事,功能验收是产品人员的事,功能自测是开发人员的事,这都不是测试人员的事。往往会有老板认为,招了个测试,那么app应该再也不闪退,再也不出问题,也会有开发认为代码写完就是完事了,也不管功能走不走得通,测试人员应该7x24小时在线提供测试服务。