学习web测试bug定位方法总结(借鉴)
在知乎看到这篇文章不错,为了加强记忆敲了一遍。已将链接放在标题中。
前台错误
前台的bug通常是功能、界面和兼容性等相关,涉及到jstl,jsp,js,css,html方面比较多。
bug主要有两块,一是js写的有问题,可通过F12在console中查看报错信息,一般浏览器都会显示报错的js,对于出错的js可以在Sources下查看报错的资源文件,基本上都会找到错误原因的变量未定义,参数未定义等,js错误都是很好解决的。
第二个页面中的bug,现在web项目基本上没有做静态页面的都是动态了,所以页面中要么使用了小脚本要么使用了EL表达式来存值。页面报错在控制台可以看到错误行号和附近代码。
图片不显示。在浏览器输入地址,如果能打开图片就是后台问题,如果打不开就是前台问题。
可以根据响应的值判断一些bug所在:
(1)响应中没有数据,则是后端数据没有返回,前端展示为空,则为后端问题。例如,
新增一个数据,没有显示,通过请求中可以看到数据total为0,则是后端数据没有返回。
(2)响应中有数据,但是前端显示错误了,可以根据字段值判断是否前端显示中取错了字段显示,可以判断是前端绑定字段错误问题。
(3)响应中有数据,但是跟自己操作的结果不一致,可以根据数据库查询,如果数据库也没有记录,可能是代码有问题,没有记录操作。
后台错误
根据后台日志文件查找错误
后台涉及servlet,jms,ejb,还有很多框架,struts,hibernate,spring,ibatis等。bug比较难改,但是好找。主要就是看控制台报错,然后定位错误行号。如果配置文件没有问题,那么一般报错就是空指针,或者数组下标越界。看附近的变量,看方法的参数基本上可以定位错误。
重启的一般情况:
(1)热部署(新增部分功能,或者修改部分bug)
(2)发布新版本(整个系统)
(3)内存溢出,此时重启服务即可
由于项目中有线程程序,./shutdowm脚本关闭Tomcat程序,不能把启动的线程全部关闭,造成服务器启动线程未关闭的错误。Linux中重启Tomcat的一般步骤(一般是先关闭进程,然后进行重启,如果要删除某个文件 rm 文件名,或者不为空的文件夹 rm -rf 文件夹名称)
cd usr/local/ //测试服务器名称/bin
ps -exf //看测试服务器下运行的项目的主进程(最前面的数字为PID进程号)
kill -9 PID //强制关闭某一项目的主进程
ps aux和ps -ef命令区别
ps aux 是用BSD的格式来显示 java这个进程
显示的项目有:USER,PID,%CPU,%MEM,VSZ,RSS,TTY,STAT,START,TIME,COMMAND
ps -ef 是用标准的格式显示java这个进程
显示的项目有:UID,PID,PPID,C,STIME,TTY,TIME,CMD)
如何查看日志
(1)编码问题:tomcat是新的,需要改编码修改tomcat的server.xml文件<Connector port="8080"URIEncoding="UTF-8"/>,特别是windows下的项目重新部署到linux系统下。
(2)空指针:程序问题,一般没有考虑到为空的情况,或者主外键约束的数据为空,或者删除关联数据,导致为空。
(3)长度过长:超过最大长度,测试环境修改数据库字段长度后生产环境未修改,导致报错。
(4)非法数据
(5)内存溢出:重启
一般的问题原因总结
程序:为空判断,增删改查
数据初始化:数据库表结构和数据初始化,权限配置
故障无法重现时:
(1)看日志,根据日志定原因,则在测试环境中按照日志提示构造条件相同的测试案例测试,尝试在测试环境中将问题重现。问开发。
(2)测试环境和配置与实际的工程环境和配置有哪些差异等。同时主动与开发负责人、工程实施人员以及有经验的项目经理讨论,分析可能导致的原因。
辅助工具:Linux和sql
linux 查看日志
QL用来筛选数据或直接进行数据修改状态,多用于集成测试过程中前后流程相连接
作者:王嘉
链接:https://zhuanlan.zhihu.com/p/31145844
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。