对文件的探索-软件测试技术实战(7)

发表于:2017-7-17 10:46

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:51Testing    来源:51Testing软件测试网原创

分享:
  3.1.6  通过查看Log日志探索
  通信系统、嵌入式系统等是没有用户界面的,对这类系统进行探索式测试时,查看系统日志是一种最好的选择。在Linux/UNIX系统中,可以对日志文件进行以下操作(假设log日志为a.log):
  >tail a.log | grep error;
  >tail a.log | grep fail。
  如果有查询结果,就可以顺藤摸瓜,查找问题所在。当然,并不是通信系统、嵌入式系统中才可以用这种方法,其他系统也可以使用,甚至会挖掘出一些隐藏的、没有爆发的缺陷。
  案例3-5:java.net.SocketException。
  在某网站接口测试中发现一个自动化测试用例没有通过,经过使用> tail a.log | grep error,发现如下结果:
  java.net.SocketException: Software caused connection abort: socket write error
  at java.net.SocketOutputStream.socketWrite0(Native Method)
  at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
  at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
  at org.apache.jk.common.ChannelSocket.send(ChannelSocket.java:531)
  at org.apache.jk.common.JkInputStream.endMessage(JkInputStream.java:121)
  at org.apache.jk.core.MsgContext.action(MsgContext.java:301)
  通过这个结果,开发人员进一步查询,发现到问题的根本原因是MySQL的连接超时8小时,若空闲超过8小时,MySQL就会自动断开连接造成的。
  3.1.7  在开头/结尾处进行探索
  在文件开头或者结尾处进行操作往往也会发现缺陷。
  案例3-6:文章结尾的输入。
  测试一个文本编辑软件,在编辑的文本中的其他地方插入一些文字都没有问题,但是在文本的最后插入一些文字,再保存后重新打开,被插入的文字不见了。
  案例3-7:移动记录到第一条。
  通过上下箭头试图把记录上下移动一个单位,测试发现当移动到非第一条时没有问题,但是移动到第一条时,系统立刻卡住没有任何反应。经过排查,发现是由于开发人员在计算时把第一个标记位的"0"记为"1"造成的问题。
  3.1.8  多次执行同样操作进行探索
  这也是一种经常发现缺陷的情形。比如,软件可以打开任意多个窗口,你试图打开这样的10个、20个、50个,甚至100个窗口,然后进行操作,看系统会有什么反应。这样的问题往往会导致响应速度变慢,甚至系统宕机。
  案例3-8:ERP软件多窗口操作。
  某ERP软件可以同时打开多个窗口来编辑库存信息。测试工程师小张打开1~30个窗口没有问题,但是打开第31个窗口后,系统发生了死机的情形。后来经需求、设计、项目经理、开发、测试等一起讨论,综合各方面因素后决定,最多只允许打开20个窗口,当用户试图打开第21个窗口时,系统将给出"本系统最多只允许打开20个窗口"的提示信息。
  3.1.9  通过复制/粘贴进行探索
  在文本框中编辑时,往往会用键盘手工进行输入,如果通过复制/粘贴进行操作,也许会发现一些缺陷。一种类型的缺陷是在复制时复制了字符串前后的空格,而程序没有对其进行判断,显示时也把前后空格显示出来。另外一种情形如图3-1所示。
  
图3-1  富文本编辑器
  这种类型的文本框不允许通过鼠标进行复制和粘贴,必须使用Ctrl+C、Ctrl+V。对于这种情形,需要认真测试。另外,这种情况下,从安全性角度考虑:可以输入简单的HTML标记符,如<a href="…">、<b>、</b>、<br>、<font size="1">、</font>…,但是不允许输入存在安全风险性的标记,如<script>、</script>、docment.cookie、alert…等。
  案例3-9:富文本编辑器安全性测试。
  富文本框测试用例见表3-6。
  3.1.10  通过测试结果进行探索
  通过某个测试的测试结果,还可以设计出更多、更深入的测试用例。比如,在用户注册时,发现【取消】按键的功能没有起作用,这样就必须对系统中所有表单提交功能中,对含有的【取消】按键都进行测试。再如,在对电子商务测试过程中发现,用支付宝付款存在问题,那就必须测试微信、银行借记卡、银行信用卡付款是否同样存在问题。另外,根据软件缺陷的80/20法则,如果在某个模块中测试出很多问题,那么就需要对这个模块进行更详尽的测试,以便发现更多的缺陷。关于软件缺陷的80/20法则,本书1.2.4节"原则4缺陷集群性"进行了更深入的介绍。
  案例3-10:关于删除的缺陷。
  测试某个网站。
  测试步骤:
  (1)登录系统;
  (2)对某一篇文章非本人提交的评论点击删除;
  (3)提示:你没有权限进行删除操作;
  (4)该评论没有被删除;
  (5)跳转到其他页面;
  (6)返回到刚才试图删除的文章页面。
  结果:
  该评论已经不存在。
  根据这个测试结果,考虑到本网站还有BBS模块,于是测试工程师对BBS帖子的删除进行了类似的操作,发现了同样的问题。
  测试步骤:
  (1)登录系统;
  (2)对某一条非本人提交的BBS回帖进行删除操作;
  (3)提示:你没有权限;
  (4)该回帖没有被删除;
  (5)跳转到其他页面;
  (6)返回到刚才试图删除的回帖页面。
  结果:
  该回帖已经不存在。
本文选自《软件测试技术实战-设计、工具及管理》第三章,本站经人民邮电出版社和作者的授权。
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
相关推荐:
软件白盒测试-软件测试技术实战(6)
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号