您的位置:首页 > 其它

局部探索式测试法

2015-07-15 22:04 232 查看
读了《探索式软件测试》这本书,觉得非常不错,把我已看的部分总结一下。


首先需要明白,所有的软件测试都会执行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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: