一、对系统整体的了解

Server端:jsp+Servlet+json

数据库sql、MySQL、oracle等

前台: 涉及到 jstl,jsp,js,css,htm等方面

后台:servlet,jms,ejb, 还有很多框架,struts,hibernate,spring,ibatis

Jsp:分不清前后台的,因为这里涉及到一个运行时刻的问题,它们的运行时刻是不同。

用户发出请求后,服务器解析用户请求,转至对应的jsp,这个时候可以说是整个jsp都是后台程序。

而Jsp做出响应后,把响应的内容返回给浏览器,这个时候浏览器就只看见html,css,javascript,这个时候所有的程序又都是前台程序。

二、前后台bug定位

1. 前台的bug通常是功能、界面和兼容性等有关;后台的bug与性能和安全性有关。

前台bug定位:按F12在控制台中查看报错信息,对于出错的js可以在Sources下查看对应报错的资源文件,写入缺陷管理工具提交给开发即可

或者使用一些抓包工具,抓取请求相应过程中的资源文件

前台bug注意以下三个方面:

1)网站前台的权限控制:没有权限的用户是不能直接输入url的方式来进行访问的,必须进行登录。以后涉及到权限的测试,一定不能漏掉url的方式也需要验证一下。而在单个页面进行W3C测试时则需要去掉该权限控制。

2)网站前台的title,对于这个也很容易忽视。进入到不同的功能页面,title显示应该是有,并且要和你进入的页面一致。title就是在浏览器最左上角看到的那些文字

3)http和https的注意点:https是一种安全链接,它是需要证书的,而http就是普通链接,所以在你的系统中客户会要求某些关键的地方 希望加上这种安全连接,那么此时你需要注意的是,对于不需要的安全链接的地方千万也要去重点测试,有些开发会很容易忽略这一点。

你要打开HTTPS开头的网站,前提是该网站安装了SSL证书,只有安装了SSL证书的网站,并且开启了443端口,你才可以通过HTTPS加密协议无访问。如果没有则不能访问。

你可要测试,比如在某个网站http协议后面加个s去访问,看能否访问成功,能成功,会显示绿色安全小锁,否则就不能访问。给你举几个安装了ssl证书,可要https访问的网站,1号店,天猫,淘宝,支付宝,百度,沃通CA,工信部网站等等

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)浏览器的兼容性

  现在的系统大多基于主流的火狐,谷歌,IE8以上,放弃浏览器兼容就等于放弃一部分客户。

6.测试工具和技术方面

  传统的企业花钱购买商业软件,如QTP,loadrunner,或者自己开发的项目管理工具 DMP

  大部分的互联网公司使用开源或自主研发的,如 selenium,appium,robotium,monkeyrunner,jmeter

  相同点:

  1.都需要非常熟悉产品和业务

  2.都需要了解产品的技术(深度测试方面性能分析,内存泄露,web服务器,cache,代理)

  3.具体的测试技术

  4.测试设计的方法

     5.测试人员的技术体系:

如何定位web前后台的BUG的更多相关文章

  1. 工作总结--如何定位web系统前后台的bug,以及bug分析/测试感想

    对于web项目前台和后台bug定位分析:一. 系统整体了解 懒企鹅营销服务平台用的架构:web前端: Bootstrap 3.0 组件丰富,兼容性好,界面美观 Server端: jsp+Servlet ...

  2. 【测试方法】Web测试中bug定位基本方法

    知识总结:Web测试中bug定位基本方法 涉及知识点:测试方法 在web测试过程中,经常会遇到页面中内容或数据显示错误,甚至不显示,第一反应就是BUG,没错,确实是BUG.进一步了解这个BUG的问题出 ...

  3. Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析

    加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 1.技术背景       在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链 ...

  4. 攻防世界web进阶题—bug

    攻防世界web进阶题-bug 1.打开题目看一下源码,没有问题 2.扫一下目录,没有问题 3.查一下网站的组成:php+Apache+Ubuntu 只有登录界面 这里可以可以想到:爆破.万能密码.进行 ...

  5. 技术分享 | WEB 端常见 Bug 解析

    对于 WEB 产品来说,有一些常见的 Bug,本章节挑选一些比较典型的 Bug 进行举例介绍. UI Bug 页面展示的时候,需要根据长度的边界值去设计用例进行验证.   一般来说都会有超长内容的验证 ...

  6. 移动Web开发的bug及解决方案

    我目前移动Web开发遇到的bug以及解决方案(慢慢补充当中). 1.android4.0以上一部分手机的webview中,当canvas小于屏幕大小时,绘图时会出现重影,就是说一个图只绘制了一遍,却出 ...

  7. 百度地图ip定位,不算bug的bug

    做为一个入行不足两年的菜鸟,能在博客园写下第一篇博客,是需要多大的勇气啊.主要还是怕大神们喷啊.其次自己文笔实在太差了. 哈哈~还请各位大神,口下留情啊. 首先说下我的需求:一个需要城市分站的手机站. ...

  8. 快速定位iOS线上BUG在哪个控制器崩溃

    快速定位iOS线上App崩溃在哪个控制器里面,需要和后台配合使用 下载本SDK并手动添加到项目里 新建所有的页面都继承于YZViewController 在AppDelegate的didFinishL ...

  9. 发现钉钉打卡定位算法的一个bug

    最近公司取消了指纹打卡,改用钉钉打卡. 天天用这个打卡上班,经常忘记,困扰. 最烦的是好几次明明人在办公室,打卡地址显示在10分钟前的位置,定位失败,不得不重新打卡. 经历过几次定位失败后,我就琢磨起 ...

随机推荐

  1. iOS cookie问题

    获取cookie时汉字应转换为UTF8格式

  2. 你真的了解UIGestureRecognizer吗?

    一:首先查看一下关于UIGestureRecognizer的定义 //当前手势状态 typedef NS_ENUM(NSInteger, UIGestureRecognizerState) { //尚 ...

  3. (转) 一步一步学习ASP.NET 5 (五)- TypeScript

    转发:微软MVP 卢建晖 的文章,希望对大家有帮助.原文:http://blog.csdn.net/kinfey/article/details/44568971 编者语 : 人总会多次犯错,历史上告 ...

  4. EnumMap

    以下内容基于jdk1.7.0_79源码: 什么是EnumMap Map接口的实现,其key-value映射中的key是Enum类型: 补充说明 其原理就是一个对象数组,数组的下标索引就是根据Map中的 ...

  5. JavaScript Patterns 5.1 Namespace Pattern

    global namespace object // global object var MYAPP = {}; // constructors MYAPP.Parent = function() { ...

  6. go sync.Mutex 设计思想与演化过程 (一)

    go语言在云计算时代将会如日中天,还抱着.NET不放的人将会被淘汰.学习go语言和.NET完全不一样,它有非常简单的runtime 和 类库.最好的办法就是将整个源代码读一遍,这是我见过最简洁的系统类 ...

  7. SharePoint2010新特性:InfoPath定义创建列表的界面

    在SharePoint2007的时候,自定义的列表可以使用CAML修改其展示页面,但是对于创建列表的页面,不容易自定义.现在在SharePoint2010中,增强了InfoPath Form Serv ...

  8. Python运算符,python入门到精通[五]

    运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算.例如:2+3,其操作数是2和3,而运算符则是“+”.在计算器语言中运算符大致可以分为5种类型:算术运算符.连接运算符.关系运算符.赋值运 ...

  9. SQL查询数据库中所有指定类型的字段名称和所在的表名

    --查询数据库中所有指定类型的字段名称和所在的表名 --eg: 下面查的是当前数据库中 所有字段类型为 nvarchar(max) 的字段名和表名 SELECT cols.object_id , co ...

  10. java word文档 转 html文件

    一.简介 一般word文件后缀有doc.docx两种.docx是office word 2007以及以后版本文档的扩展名:doc是office word 2003文档保存的扩展名.对于这两种格式的wo ...