“这是我参与更文挑战的第8天,活动详情查看: 更文挑战”
测试
测试这块笔者认为可以分为2大模块进行测试,一是基于功能测试,一是基于非功能测试。说到测试,那么就会存在版本的问题,如何管理?笔者建议master就是最新代码, 迭代周期后准备提测时,新建一个分支,测试人员在分支上进行测试。在master修复bug,然后 cherry-pick 的方式进行合并。若是改动较大,要么在分支上修改,要么 在次基础上重现新建分支
功能测试
功能测试又可以分为手动测试,点击后查看界面结果(或者查看数据库变化)的方式以及自动测试(基于接口/基于web UI界面)的方式。当程序处于较稳定阶段。 这时才引入自动化测试,过早过晚都不适宜。所选语言这块都可以,比如java、python、php,测试框架建议使用selenium,至于如何获取xpath浏览器自带copy功能。
非功能测试
操作异常
定义:恶意的操作导致浏览器控制台或后端接口异常,主要是防止特殊的骚操作导致异常,测试方法,基于第三方的工具,可以是postman、jmeter
边界值
定义:主要是正对字段长度的测试,比如 null、""、min、max,主要是防止未做效验。从而导致业务异常。测试方式:界面 + 接口方式,建议前端进行表单验证,后端可以基于JSR303标准, 再结合组的概念进行字段效验。
弱网测试
该测试点为健壮性测试,验证出现丢包、延时软件的处理机制。说白了就是提高用户的使用体验度,可以使用抓包工具比如fiddler。网页端自带网络限制功能,感兴趣的同学可以试试
重复提交
主要是防止重复提交,导致业务异常。一类通过快速多次点击事务性操作按钮,查看是否生成多条记录,一类通过接口测试,解决方案:一是前端可以在拦截器统一处理,加载loading,遮罩层防止 多次点击,二是后端基于token,或基于唯一key + uid进行处理。
渗透测试
目标是提高或修改用户权限。常见的场景:重置密码漏洞、上传文件后缀重命名漏洞、短信/邮箱轰炸、登录、注册页面爆破问题、点击劫持问题。
性能测试
建议性能测试服务器与其它服务器物理分开,避免出现因性能测试导致服务器不可用的问题,常用的工具用jmeter、Loadrunner进行测试。
总结
前期都是以测试功能为主,后面再慢慢引入非功能的测试项,反正测试的主要目的就是发现问题和暴露问题。