千锋教育-做有情怀、有良心、有品质的IT职业教育机构

400-811-9990
当前位置:首页  >  技术文章  >  正文

软件测试工程师面试应对如何定位软件缺陷

时间:2021-02-08 11:21     来源:千锋教育 作者:qyf

  相信很多做软件测试的小伙伴,在面试软件测试岗位的时候,经常会被面试官问到一个问题,那就是应对如何定位软件缺陷的问题!下面小编给大家举一个例子,以一个Web应用的注册登陆功能为例,跟大家说说我们该如何定位软件的bug!

  首先,给大家看一个如下所示的软件的注册和登陆页面。先简单的说一下业务规则:使用手机号注册成功后可以使用该账号进行登陆。

图片1

图片2

  没错,业务就是这么简单。假设我们发现了一个Bug:按照注册页面的提示,输入了正确的数据和信息,点了确认按钮,页面也提示,注册成功,然后跳转到登陆页面,当再用注册时提交的信息去登录时,发现提示用户名或者密码错误,根本无法登陆。

  相信这么说,大家都能够理解吧!接下来我们就说说该如何定位bug!

  首先从数据库的角度,通过查看数据库中数据的方式先定位:到底是注册出问题,还是登陆出问题了。

图片3

  上表即为用户信息表。

  A)如果从表中可以查找到注册的用户数据,说明注册功能没有问题,是登陆功能出问题了;(需要继续定位)

  B)如果表中没有数据,则说明是注册功能出问题了,(登陆功能有没有问题待定)。(需要继续定位)

  沿着思路A,注册没有问题,登陆出问题。那我们就要考虑是不是有这样的一种情况:A1:登陆页面的表单没有将登陆信息提交出去。我们在这个地方:

  1)我们可以使用查看页面源代码的方式去判断页面有没有表单的提交方法:

图片4

  2)我们也可以使用抓包工具Fiddler,进行数据抓包,判断有没有数据从该页面被传出

图片5

  通过这两个操作,我们可以得到两个结论:

  A11:登陆的表单数据提交出去了,那就是后面的问题(继续定位)

  A12:登陆的表单数据没有提交出去,那就是登陆页面代码错误(定位成功)

  沿着A11的思路继续,数据传出去了,对应的接收位置的代码是否准确的接收了呢?这个需要和开发人员或者接口设计人员进行沟通接口处理程序是如何运行的。例如下面的一段代码就是PHP页面如何接收POST请求传来的表单数据,后面程序就要处理传来的数据了。(事关机密无法粘贴出来啊)

图片6

  这个程序能不能够正确的处理传过来的数据:

  A111:这个接收请求数据的程序没有问题,那就需要继续看(继续定位)

  A112:这个接受请求数据的程序有问题,那就表明该内容有问题。(定位成功)

  下面,接着看A111的思路,接收数据的程序也没有问题,那就看从数据库里面查询数据是不是出问题了。我们看一下查询用户名和密码的程序代码:

  function checkUser($name,$password){

  $conn=new Mysql();

  $sql="select * from user where name='{$name}' and password='{$password}';";

  $result=$conn->sql($sql);

  if($result){

  return true;

  }

  else{

  echo '' . "";

  }

  $conn->close();

  如果通过检查该部分和数据库连接的代码我们就可以终确定问题:

  A1111:数据库连接判断的语句出问题(定位成功)

  A1112:程序的返回值出问题。(定位成功)

  思路A都讨论完了,那接着讨论思路B:注册之后数据表中并没有注册数据的产生。类似于A。我们首先就要检查注册页面的表单数据有没有提交出去。检测方法和登陆一样,看代码也好,用工具也行。

  B1:注册页面的数据没有提交出去,开发人员就写了个静态页面,不管输入什么都是注册成功。(定位成功)

  B2:注册页面的数据提交出去了。(继续定位)

  通过查看接收注册数据的程序,方法同上。

  B21:如果发现没有准确接收注册数据,那就表明发现问题。(Bug定位成功)

  B22:如果数据接收程序无误,表名要继续定位。(继续定位)

  注册功能是一个向数据库中插入数据的过程,我们可以检查数据的插入操作语句和相关的处理程序是否正确:(定位成功)

  如果我们从整个业务运行的全过程去说明的话,我把整个过程拆解成如下图所示的10个步骤:

图片7

  ① 提交注册信息到数据处理程序

  ② 数据处理程序进行数据判断和处理

  ③ 将数据添加到数据库

  ④ 数据库给出处理结果

  ⑤ 数据处理程序将结果返回给注册页面

  ⑥ 提交登陆信息到数据处理程序

  ⑦ 数据处理程序进行数据判断和处理

  ⑧ 将查询数据上传到数据库中进行比对

  ⑨ 获取查询数据的结果

  ⑩ 数据处理程序将结果返回给登陆页面

  综上所述每一个环节都有可能出问题,我们要使用一切可能的办法和手段进行bug定位和查找。所以测试工程师拿多少工资,跟你所掌握的技术和找bug的能力、定位bug的能力有着非常直接和紧密的关系。

  学习软件测试,可以参考千锋提供的软件测试学习路线,内容包含软件测试环境配置与管理,数据库测试技术,软件测试编程技术,应用程序测试技术,互联网/移动互联网测试技术等,根据千锋提供的软件测试学习路线图,可以让你对学好软件测试需要掌握的知识有个清晰的了解,并能快速入门软件测试。

相关文章

  • 北京总部地址:北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
    北京沙河校区:北京市昌平区沙阳路18号北京科技职业技术学院广场服务楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 深圳校区地址:深圳市宝安区宝安大道5010号西部硅谷B座A区6层A605/B座C区1层108
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 上海校区地址:上海市宝山区同济支路199号智慧七立方3号楼2-4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 广州校区地址:广州市白云区永平街永泰学山塘学山文化创意谷A1栋六楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 郑州二七区校区地址:郑州市二七区航海中路60号海为科技园C区10层
    郑州高新区校区地址:郑州市高新区金梭路与银杏路交叉口教育科技产业园南门D座4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 大连校区地址:辽宁省大连市高新园区爱贤街10号大连设计城A座901
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 武汉金融港校区地址:武汉市东新区光谷大道77号金融港B18栋三楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 成都校区地址:成都市高新区肖家河沿街138号肖家河大厦三楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 西安校区地址:西安市雁塔区高新六路52号立人科技C座西区4楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 杭州旺田校区:浙江省杭州市江干区九堡旺田书画城A座4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 青岛校区地址:青岛市市北区龙城路31号卓越世纪中心4号楼5层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 重庆校区地址:重庆市九龙坡区科园一路3号渝高大厦9楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 长沙校区地址:湖南省长沙市岳麓区麓谷企业广场A2栋三单元306号
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 哈尔滨校区地址:哈尔滨市松北区世泽路689号 科技创新城4号楼1101
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 南京校区地址:南京市建邺区应天大街780号弘辉产业园1栋2层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 太原校区地址:太原市小店区长治路230号能源互联网大厦6层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 沈阳校区地址:辽宁省沈阳市浑南区世纪路16号东大软件园B园B1座A201
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 合肥校区地址:合肥市包河区徽州大道396号东方广场B座12A
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 千锋教育服务号

    关注千锋学习站小程序
    随时随地免费学习课程

  • 千锋教育移动站

    扫一扫快速进入
    千锋移动端页面

  • 千锋互联服务号

    扫码匿名提建议
    直达CEO信箱