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

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


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

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

  (1)本地运行

  (2)接口测试

  (3)Debug代码

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

  插件地址://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://"
                     + 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培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

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

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程