局部探索式测试法


读了《探索式软件测试》这本书,觉得非常不错,把我已看的部分总结一下。

首先需要明白,所有的软件测试都会执行4个基本任务:接收输入、产生输出、存储数据、进行运算。
这里阐述一下用户输入的定义:输入必须导致软件运行代码,并以某种方式作为相应(不响应也是响应的一种)
关于合法输入和非法输入
一般需求文档中针对某个字段,会规定使用的字符类型。如测试电话号码,输入中文、英文就是非法输入。开发也必须要十分精确地知道什么是合法输入。针对非法输入,开发一般会写一段error-handling代码(实际上也许开发并不喜欢写这些代码,更喜欢写功能代码)。
开发处理非法输入的三种方式:

  • 1、输入筛选器 ;2、输入检查 ;3、使用异常处理

1、输入筛选器:会屏蔽掉非法输入,在我测试过程中,常见的有如下3种:a、使用下拉框,只让用户选择不能输入,如用户能从篮球、足球中选择

<select>
  <option value ="basketball">篮球/option>
  <option value ="football">足球</option>
</select>

b、对字符数进行限制,如控制input框中最多允许输入55个字符,
<input type="text" name="email" maxlength="55" />
c、对字符类型进行限制,控制input框中只能输入数字,如:

<input id="Text1" type="text" onkeypress="return IsNum(event)" />
    <script language="javascript" type="text/javascript">
        function IsNum(e) {
            var k = window.event ? e.keyCode : e.which;
            if (((k >= 48) && (k <= 57)) || k == 8 || k == 0) {
            } else {
                if (window.event) {
                    window.event.returnValue = false;
                }
                else {
                    e.preventDefault(); //for firefox 
                }
            }
        } 
    </script>

从测试的角度,需要检查如下方面:
a、开发是否正确实现了此功能,如果不小心把一个非法输入放到合法输入中,后果是很严重的。
b、是否可以绕过屏蔽器。如通过控制台编辑html源码修改选择的值,这都是很严重的问题。
2、输入检查:它会接收一个输入值,如果(if)输入合法,会处理它,否则(else)就产生一条比较精确错误信息并中止处理。
仔细阅读每一条错误信息,或许就能找到开发的实现思路,再不济也可以检查该信息是否写错了。此外,信息一般会指出当前值不合法的原因以及怎样修改会变成正确的值。
3、异常处理:不是针对一条具体的输入进行检查,而是把一段代码当做一个整体对待,产生的错误信息也比较笼统。
如果发现这种信息,可以反复测同一段函数,或稍微修改,看看会不会出错,或者是运行其他一些调用该函数的用例。比如,你在测试修改单据时,填了某个数字报404,此时可以试着把数字减到1000以内,或者更高。我曾测过一个大于1000的数前端没有格式化千分符,导致传入后端报错,使单据新增报404.

优质内容筛选与推荐>>
1、[SDOI2010]大陆争霸
2、运算符的优先级
3、在Leangoo里怎么设置背景?
4、Shared_ptr智能指针
5、2014-07-18笔试面试总结(前端)


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号