软件测试的本质是什么?
作者:网络转载 发布时间:[ 2013/8/19 16:17:31 ] 推荐标签:
在输入正确用户名的情况下:
1、输入正确的密码名是还否可以登录,
2、那么错误输入0 呢?1呢?2呢?......直到
99999999999999999999999999999999999999999999999999 ,
3、如果密码不是数字,而是字符呢,a 、b、c ... aa、bb 、cc .....
4、如果是大写呢 A 、B、C.... AA 、BB、CC.....
5、如果是大小写呢 Aa、Ab ....
6、如果是小写+数字呢 1a 、1b 、1c ....2a 、2b 、2c.....
7、如果是小写+数字呢 1A 、1B 、1Cc....2A 、2A 、2A.....
8、如果是小写+数字呢 1Aa 、1Bb 、1Cc ....1Aa 、1Bb 、1Cc.....
9、如果有特殊字符呢 @#¥%……&*
10、如果输入字符有空格呢 a b、adbc ee......
11、如果是其它字符+大小写字母+数字呢+空格呢 !@#&+123AIBKIkklzcb ......
......
12、再换正确的密码,错误的文件名再来一次。
13、用错误的用户名和密码再把上面的情况验证一次。(这样会匹配到所有的用户名密码)
14、什么都不输,直接点击登录
这样穷举下去,哪怕世界上超级的计算机,也需要计算十年、几百年才能验证所有情况。如果觉得某些测试条件是重复的或都无必要的或都为了节省时间,而将其剔除,那么不能称为作完全测试。
软件测试是有风险的
好吧!你已经知道了完全测试是有风险的,如果决定不去测试所有的情况,那么我们选择了风险。在上面的邮箱登录的例子中,(假如)由于程序的所使用语言的特定,有些字符在存储的时候会被转义,如& 会被转义为_ 存储,一个叫“&&” 用户,一个叫“ __”的用户,使用了相同的密码,碰巧程序员没考虑到这种情况,那么程序该如何登录呢?(我也不知道,这只是个假设的例子)
对于一个免费开放的邮箱来说,会有成千上万的用户每天都有用户注册登录,如果有用户遇到了上面的问题呢?程序该如何处理?当然,对于一个邮箱系统,你可能不以为然,他的修复速度与成本都不算高,假如,这个用户有非常保密且重要的邮件,结果被别一个用户登录查看了呢?假如这不是一个邮箱系统,而是一个银行系统呢?那有可能用户的财产会受到损失。(相比较而言,互联网产品(B/S架构)比客户端产品(C/S架构)的修复速度与成本要低)
这样说有些耸人听闻,又不能全部测试,不测试又会漏掉软件缺陷。软件终归要分布的,此时测试要停止,但是如果这么快停止下来,还有测试没做。怎么办?
如上图所示,纵轴是表示缺陷的数量,横轴表示测试工作量。缺陷的数量随着测试工作的进展在不段减少;但测试有费用也随着工作量在不段提高。
也是说要想发现更多的缺陷必须投入更多费用(这个费用包括时间、人才,物力), 对一个新项目,我们前提可能1天发现10个缺陷。到后面可能10天发现1个缺陷,或者发现一个缺陷所需要的时间更长,我们有必要是去为发现一个缺陷而继续增加费用么?本来不存在完美的产品,我们的目标是找到合适的测试量,使投入(测试费用)与回报(修复缺陷数)达到优。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11