微信号:grzlwx

介绍:光荣之路官方资讯

工作总结(下)--如何定位web系统前后台的bug

2016-02-19 23:08 光荣之路

吴老的《selenium webdriver 实战宝典》出版了!

相关阅读:工作总结(上)--如何定位web系统前后台的bug

2.后台bug定位:根据后台日志文件
本系统是使用secureCRT进行日志获取,或者服务器控制方面的操作(关闭和重启)
重启的一般情况:
(1)热部署 (新增部分功能,或者修改部分bug) (2)发布新版本 (整个系统)(3)内存溢出,此时重启服务器即可

由于项目中有线程程序,./shutdown脚本关闭tomcat程序,不能把启动的线程全部关闭,造成服务器启动线程未关闭的错误,所以
Linux系统中重启Tomcat的一般步骤:(一般是先关闭进程,然后进行重启 ,如果 /要删除某个文件:rm 文件名,或者不为空的文件夹:rm -rf 文件夹名)
cd  usr/local/     //测试服务器名称/bin
ps -exf             //看测试服务器下运行的项目的主进程(最前面的数字为PID进程号)
kill -9 PID        //强制关闭某一项目的主进程
./startup.sh      //     ./**.sh  即执行重启shell脚本文件   ,此时在测试服务器的bin下面,直接执行即可,其余的加上  chmod a+x   shell脚本文件,也可用./执行
(小知识:
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)

3.如何查看日志?

一台服务器可以部署多个应用,
cd  usr/local/测试服务器名称/logs               //查看先进入到服务器的logs目录下
tail -f catalina.out                                    //监视catalina.out 文件的尾部内容(默认10行)

4.日志中常见的问题

获取日志文件中常遇到的问题:
(1)编码问题:tomcat是新的,需要改编码    修改tomcat的server.xml文件<Connector port="8080" URIEncoding="UTF-8"/>
特别是windows下的项目重新部署到linux系统下,
(2)空指针:程序问题,一般没有考虑到为空情况,或者主外键约束的数据为空,或者删除关联数据,导致为空
(3)长度过长,超过最大长度,测试环境修改数据库字段长度后生产环境未修改,导致报错!!
(4)非法数据:
(5)内存溢出:重启

5.一般的问题原因总结:

程序:为空判断,增删改查,不同公众号调用的接口也不一样
数据初始化:数据库表结构和数据初始化,权限配置,

特别注意生产环境上的用户数据修改,此时用户在使用,很重要!!!服务号一个月4条,全部使用掉了!!

故障无法重现时:
(1)看日志,根据日志定位原因,则在测试环境中按照日志提示构造条件相同的测试案例测试,尝试在测试环境中将问题重现。问开发
(2)测试环境和配置与实际的工程环境和配置有哪些差异等等。同时主动与开发负责人、工程实施人员以及有经验的项目经理讨论,分析可能导致的原因。

配置环境不一致导致!!
测试环境ok,生产环境新增时保存失败,查看后台日志报长度溢出,数据库内容字段要求和生产环境不一致!!

6.辅助工具:linux和SQL

linux查看日志
SQL用来筛选数据或直接进行数据修改状态,多用于集成测试过程中前后流程相连接,发布产品--下单--付款

三.浏览器兼容性和网页规范标准测试

浏览器兼容性测试(偏主流浏览器,如谷歌,火狐,IE8以上):
https://dev.windows.com/en-us/microsoft-edge/tools/staticscan/

W3C网页验证:(判断网页书写是否符合规范,记住此处必须去掉权限控制,单个单元页面url需要跟参数)
https://validator.w3.org/

W3C手机端页面检测如手机微信菜单下的页面):
https://validator.w3.org/mobile-alpha/

另外结合我平时的工作和前不久看到的一盘文章,和大家分享一下互联网测试与传统测试有什么不一样

1.最大的不同:互联网产品需要自己部署和运营,用户使用瘦客户端(浏览器,app或一个需要安装的client),核心的数据和业务逻辑在互联网公司的机房,在IDC,在云端。如:我们做的系统用户只需一个浏览器,服务器用的阿里云,部署和运营只需要一个运维人员即可。

考虑现网(生产环境)存在下面两个问题:

(1)如何发布功能到现网
互联网测试完一般可直接发布,测试周期短,有时候需要进行灰度发布,先让部分用户用起来,发布完做生产验证。

(2)如何保证测试环境和生产环境同步
测试环境比较难搞,拿我们做的懒企鹅来说,牵扯的系统平台比较多,用到很多微信平台的接口,这个很难自己搭建或者用mock。另外保证测试环境和到生产环境都是好的,需要代码和数据库,以及环境配置都要保持一致,这需要相应的机制和工具来验证和同步。

2.互联网产品节奏很快
之前在的软件公司,基本是进行二次开发,周期长,每次都需要经过下面几个完整的测试流程:
客户提出需求--BA和客户沟通,确定出需求和解决方案--测试人员根据需求说明书和解决方案编写测试用例---进行概要评审--进行详细设计评审--开始测试--回归测试--生产验证。

现在的互联网产品测试基本为:
产品经理确定好测试需求--开发人员写详设-(此阶段可以进行设计bug检查)--开发人员开发--测试人员测试,上线
来不及测试设计,来不及自动化,短时间内如何保证测试的覆盖率和质量?--(探索式测试应势而生)

3.更多的人参与到测试中
互联网公司有专门的测试团队的比较少,一般开发和测试比例: 7:1,如何保证质量?
(1)开发人员的自测
开发人员进行单元测试,测试用例的通过率,同一个版本拉代码的次数
(2)产品或运营人员的体验
在这里基本我就相当于用户,进行产品体验,或者根据免费试用者反馈的意见进行优化
(3)发布之前的评审
注意环境,配置,数据方面的问题

4.有一些是免测试的
并不是所有发布到生产环境的东西都需要在测试环境检验,如:图片样式改动,小bug修复,但是哪些免测是个复杂的问题

5.海量用户带来的挑战
(1)性能方面
如何做轻量级的性能测试
(2)浏览器的兼容性
例如:实习时测试的中国移动的CRM系统只针对IE浏览器,所以对浏览器兼容性没有太大的要求
但是现在的系统大多基于主流的火狐,谷歌,IE6以上,放弃浏览器兼容就等于放弃一部分客户。

6.测试工具和技术方面
传统的企业花钱购买商业软件,如QTP,loadrunner,或者自己开发的项目管理工具 DMP
大部分的互联网公司使用开源或自主研发的,如 selenium,appium,robotium,monkeyrunner

相同点:
1.都需要非常熟悉产品和业务
2.都需要了解产品的技术(深度测试方面性能分析,内存泄露,web服务器,cache,代理)
3.具体的测试技术
4.测试设计的方法

所以基本的大方向是没有变化的,还是技术至上,附一张虫师关于测试人员的技术体系共勉!

<完>

(作者:小丸子~ 来源:http://www.cnblogs.com/alwayswyy/p/5192589.html)

(原文标题:工作总结--如何定位web系统前后台的bug,以及bug分析/测试感想)

公益传播测试知识、技能与正能量!感谢作者!
分享测试生活,思考测试人生!欢迎投稿!
文章图片来自网络,如有侵权请见谅,请联系我们妥善处理。
735821166@qq.com

光荣之路
软件测试培训


官网:www.gloryroad.cn

微信公众号:gloryroadtrain

性能测试QQ群:415987441
测试招聘QQ群: 203715128
自动化3群QQ: 371211499

Python群:457561756

 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 Go 1.6 发布,默认使用 Cgo ,支持 HTTP/2 Golang语言--【基础知识】访问数据库 TCP 应答时间参数对网络性能的影响 值得你关注的23款企业级服务工具 PostCSS深入学习:Grunt配置