测试管理之如何快速定位bug
白羽 2018-07-06 来源 :网络 阅读 20 评论 0

摘要:本文将带你了解测试管理之如何快速定位bug,希望对大家学测试管理有所帮助。


对于一个测试人员来说,发现bug不是最难的,定位bug的 root cause 却是比较困难的,特别是哪些隐藏在代码中比较深的bug,以下是我的一些快速定位bug的心得,希望可以抛砖引玉。

  要定位问题,首先要熟悉代码,我觉得熟悉代码的两个有效的方式是:

  (1)本地运行

  (2)接口测试

  (3)Debug代码

  拿到被测应用后,第一步就是把开发的代码的svn地址拿过来,check out到本地,能在IDE里面run起来,在淘宝有一个比较好的eclipse插件 叫 HSF Jetty插件,可以比较快速的把开发代码跑起来。

  插件地址:http://tools.taobao.net/site/store/product_detail.htm?product_id=65

  拿到开发代码以后,对代码中的核心接口可以写一些接口测试脚本,写脚本有几个好处,一个是提高测试深度,二是可以持续集成测试,三是可以熟悉代码,了解每个接口的功能和逻辑。

  如果你没有时间去写详细的接口测试脚本,那么Debug代码我认为是熟悉代码最快,最简单的方式之一,另外一种比较简单的方式是走读代码,但是相对来说难度比较大,debug代码就是从页面操作为入口,看每一个操作会进入到哪段代码。

  在测试执行的时候如果发现了bug,首先去看下相关的代码,逻辑是否正确。

  下面说说整个的一个过程:

  加入我测试的页面是admin.uz.daily.taobao.net/siteAdmin.htm 这个页面,在淘宝大部分是webx工程,那么对应的类应该SiteAdmin.java

  在eclipse 中可以直接通过Crtl + shift + R 快捷键打开资源,找到对应的文件。这里放部分代码:

long loginUserId = super.getUserId();
/*

   

  可以看出这里是处理登录的。如果没有登录就跳到登录页面

*/
 
  

     if (loginUserId <= 0) {
           super.goLoginPage(nav);
           return;
       }
 
/*   
  可以看出这里是处理白名单的,如果不在白名单则跳到
*/
       boolean isSuperUser = whiteListAuthorityAO.isSuperUser(loginUserId);
       if (!isSuperUser) {
           super.toError(nav, "对不起,你没有权限");
           return;
       }
       TurbineRunData rundata = TurbineUtil.getTurbineRunData(request);
       HttpServletResponse response = rundata.getResponse();
       PrintWriter out = null;
       try {
           out = response.getWriter();
           if (uid == null || opt == null) {
              out.println("Usage:http://"
                     + configInfoManager.getDaogouHost()
                     + "/admin/SiteAdmin.do?uid=%userId%&opt=[onLine|offLine]");
              return;
           }
           long userId = Long.parseLong(uid);
           TaeSiteDO site = siteManager.getTaeSite(userId);
           if (site == null) {
              out.println("模板站点不存在,用户ID:" + userId);
              return;
           }
           if (opt.equalsIgnoreCase("offLine"))
              site.setStatus(0);
           else if (opt.equalsIgnoreCase("onLine"))
              site.setStatus(1);
           siteService.saveOrUpdateDomain(site);
           out.println("模板站点已更新,状态:" + site.getStatus());
           String nick = getUserNick(userId);
           whiteListAO.remove(nick, super.getUserNick(),
                  Constants.DG_WHITE_LIST_TEMPLATE_TYPE);
           out.println("已从模板站点白名单中删除:"+nick);
       } catch (IOException e) {
           throw new WebxException(e);
       } finally {
           if (out != null)
              out.close();
       }
   
  测试之前可以先看下这段代码,在测试时可以先验证一下未登录,和没有白名单的场景,看看是否到对应的代码上。
 

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标软件测试之测试管理频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
加入IT交流圈
JAVA工程师交流群 +加入
大数据架构师交流群 +加入
人工智能Python交流群 +加入
WEB/H5前端交流群 +加入
大数据岗位高薪定向就业名额  提前锁定高薪职位
软件测试直通车

  • 资料索取

  • 答疑解惑

  • 技术交流

  • 职业测评

  • 面试技巧

  • 高薪秘籍
海同名师推荐 更多>>
张军 联系TA
10年项目开发经验,精通pc、mobile平台软件开发主流技术和框架
杨成江 联系TA
青春为马 不负韶华
翟健 联系TA
熟悉系大型项目开发业务流程,精通C、Java语言
黄骈 联系TA
认证System Analyst,System Architect
程光淼 联系TA
精通C、C++等语言、智能芯片开发
热门就业培训班 更多>>
【零基础】人工智能+Python全栈开发课程
登顶技术风口浪潮巅峰 年薪百万不是梦
【零基础】JavaEE高级开发工程师课程
小白0基础入学 8000起薪轻松进名企
【零基础】大数据与分布式架构师课程
掌握大数据分布式架构 冲击年薪50W+
测试管理30天热搜词 更多>>
X
免费获取海同IT培训资料
验证码手机号,获得海同独家IT培训资料
获取验证码
提交

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号