《软件测试技术实战 设计、工具及管理》联载-13

简介: 《软件测试技术实战 设计、工具及管理》联载-13

3.1.6  通过查看Log日志探索


通信系统、嵌入式系统等是没有用户界面的,对这类系统进行探索式测试时,查看系统日志是一种最好的选择。在Linux/UNIX系统中,可以对日志文件进行以下操作(假设log日志为a.log):

>tail a.log |grep error

>tail a.log |grep fail


如果有查询结果,就可以顺藤摸瓜,查找问题所在。当然,并不是通信系统、嵌入式系统中才可以用这种方法,其他系统也可以使用,甚至会挖掘出一些隐藏的、没有爆发的缺陷。


案例3-5java.net.SocketException

在某网站接口测试中发现一个自动化测试用例没有通过,经过使用> tail a.log | grep error,发现如下结果:

java.net.SocketException:Software caused connection abort: socket write error

atjava.net.SocketOutputStream.socketWrite0(Native Method)

atjava.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)

atjava.net.SocketOutputStream.write(SocketOutputStream.java:136)

atorg.apache.jk.common.ChannelSocket.send(ChannelSocket.java:531)

atorg.apache.jk.common.JkInputStream.endMessage(JkInputStream.java:121)

atorg.apache.jk.core.MsgContext.action(MsgContext.java:301)


通过这个结果,开发人员进一步查询,发现到问题的根本原因是MgSQL的连接超时8小时。若空闲超过8小时,MgSQL就会自动断开连接造成的。


3.1.7  在开头/结尾处进行探索


在文件开头或者结尾处进行操作往往也会发现缺陷。


案例3-6:文章结尾的输入。

测试一个文本编辑软件,在编辑的文本中的其他地方插入一些文字都没有问题,但是在文本的最后插入一些文字,再保存后重新打开,被插入的文字不见了。


案例3-7:移动记录到第一条。

通过上下箭头试图把记录上下移动一个单位,测试发现当移动到非第一条时没有问题,但是移动到第一条时,系统立刻卡住没有任何反应。经过排查,发现是由于开发人员在计算时把第一个标记位的“0”记为“1”造成的问题。


3.1.8  多次执行同样操作进行探索


这也是一种经常发现缺陷的情形。比如,软件可以打开任意多个窗口,你试图打开这样的10个、20个、50个,甚至100个窗口,然后进行操作,看系统会有什么反应。这样的问题往往会导致响应速度变慢,甚至系统宕机。


案例3-8ERP软件多窗口操作。

ERP软件可以同时打开多个窗口来编辑库存信息。测试工程师小张打开130个窗口没有问题,但是打开第31个窗口后,系统发生了死机的情形。后来经需求、设计、项目经理、开发、测试等一起讨论,综合各方面因素后决定,最多只允许打开20个窗口,当用户试图打开第21个窗口时,系统将给出“本系统最多只允许打开20个窗口”的提示信息。


3.1.9  通过复制/粘贴进行探索


在文本框中编辑时,往往会用键盘手工进行输入,如果通过复制/粘贴进行操作,也许会发现一些缺陷。一种类型的缺陷是在复制时复制了字符串前后的空格,而程序没有对其进行判断,显示时也把前后空格显示出来。另外一种情形如图3-1所示。


image.png

3-1  富文本编辑器


这种类型的文本框不允许通过鼠标进行复制和粘贴,必须使用Ctrl+CCtrl+V。对于这种情形,需要认真测试。另外,这种情况下,从安全性角度考虑:可以输入简单的HTML标记符,如<a href="…">[J1] <b></b><br><font size="1"></font>…,但是不允许输入存在安全风险性的标记,如<script>[J2] </script>docment.cookiealert…等。


案例3-9:富文本编辑器安全性测试。

富文本框测试用例见表3-6


3-6                                                       富文本框测试用例

操作

期待输出

进入HTML编辑框,输入“<a href="https://www.baidu.com">百度</a>

显示“百度”,点击百度超链接后进入百度网站

进入HTML编辑框,输入“<font size="4">百度</font>

“百度”显示为4号字体


进入HTML编辑框,输入“<script>alert(document.cookies)</script>

显示提示信息:<script></script>docment.cookiesalert等敏感字符不允许输入

进入HTML编辑框,输入“<a href=#?id=1&drop table customer >

显示提示信息:drop table等敏感字符不允许输入

……

……


3.1.10  通过测试结果进行探索

通过某个测试的测试结果,还可以设计出更多、更深入的测试用例。比如,在用户注册时,发现【取消】按键的功能没有起作用,这样就必须对系统中所有表单提交功能中,对含有的【取消】按键都进行测试。再如,在对电子商务测试过程中发现,用支付宝付款存在问题,那就必须测试微信、银行借记卡、银行信用卡付款是否同样存在问题。另外,根据软件缺陷的80/20法则,如果在某个模块中测试出很多问题,那么就需要对这个模块进行更详尽的测试,以便发现更多的缺陷。关于软件缺陷的80/20法则,本书第1.2.4节“原则4缺陷集群性”进行了更深入的介绍。


案例3-10:关于删除的缺陷。

测试某个网站。

测试步骤。[J3]

1)登录系统。

2)对某一篇文章非本人提交的评论点击删除。

3)提示:你没有权限进行删除操作。

4)该评论没有被删除。

5)跳转到其他页面。

6)返回到刚才试图删除的文章页面。


结果:

该评论已经不存在。

根据这个测试结果,考虑到本网站还有BBS模块,于是测试工程师对BBS帖子的删除进行了类似的操作,发现了同样的问题。

测试步骤。[J4]

1)登录系统。

2)对某一条非本人提交的BBS回帖进行删除操作。

3)提示:你没有权限。

4)该回帖没有被删除。

5)跳转到其他页面。

6)返回到刚才试图删除的回帖页面。

结果:

该回帖已经不存在。


顾翔凡言:

敏捷具有适用性,即使用了敏捷,也不要做成假敏捷,掌握敏捷的真谛。

目录
相关文章
|
敏捷开发 测试技术
软件测试技术实战 设计、工具及管理》联载-5
软件测试技术实战 设计、工具及管理》联载-5
61 0
|
监控 测试技术 Linux
软件测试技术实战 设计、工具及管理》联载-25
软件测试技术实战 设计、工具及管理》联载-25
64 0
|
缓存 网络协议 关系型数据库
《软件测试技术实战 设计、工具及管理》联载-22
《软件测试技术实战 设计、工具及管理》联载-22
81 0
《软件测试技术实战 设计、工具及管理》联载-22
|
测试技术
《软件测试技术实战 设计、工具及管理》联载-8
《软件测试技术实战 设计、工具及管理》联载-8
70 0
《软件测试技术实战 设计、工具及管理》联载-8
|
搜索推荐 Java 测试技术
软件测试技术实战 设计、工具及管理》联载-35
软件测试技术实战 设计、工具及管理》联载-35
69 0
软件测试技术实战 设计、工具及管理》联载-35
|
敏捷开发 SQL 测试技术
《软件测试技术实战 设计、工具及管理》联载-19
《软件测试技术实战 设计、工具及管理》联载-19
74 0
|
存储 云安全 安全
软件测试技术实战 设计、工具及管理》联载-27
软件测试技术实战 设计、工具及管理》联载-27
64 0
|
SQL 前端开发 关系型数据库
《软件测试技术实战 设计、工具及管理》联载-4
《软件测试技术实战 设计、工具及管理》联载-4
47 0
《软件测试技术实战 设计、工具及管理》联载-4
|
监控 测试技术 数据库
《软件测试技术实战 设计、工具及管理》联载-49
《软件测试技术实战 设计、工具及管理》联载-49
84 0
|
Java 测试技术 程序员
软件测试技术实战 设计、工具及管理》联载-31
软件测试技术实战 设计、工具及管理》联载-31
75 0
软件测试技术实战 设计、工具及管理》联载-31