如何自动产生测试数据?
要测试一个函数是否正确,一般是怎么自动生成测试数据?如果有这样的程序,那编写这个函数就没有意义了,感觉很矛盾?一般的发行库,比如C的标准库,在发布之前都会经历怎么样的测试?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
要测试一个函数是否正确,一般是怎么自动生成测试数据?如果有这样的程序,那编写这个函数就没有意义了,感觉很矛盾?一般的发行库,比如C的标准库,在发布之前都会经历怎么样的测试?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
自动生成测试数据并不代表要完全重现函数的所有功能,例如测试排序函数的数据只需要随机生成一组数据和最朴素的排序算法排好的数据,然而可以用来测试所有类型的排序算法;
你的矛盾毫无逻辑。
假设现在有一个函数计算两个数的和 Sum函数,你的测试数据可以是任何两个数a,b。按你的意思是,你可以自动生成a,b两个数,那么Sum就没有意义了,很明显Sum函数是测试a,b作为输入项的前提。
你的矛盾毫无逻辑。
自动产生数据其实应用范围很小,仅仅是需要大量填充时才这么干。
一般的测试都是手工指定数据的,因为边界条件我们是知道或者大约知道的,只需要检查(一个正常值)和边界附近的数据即可。
测试就是用来增强我们发布软件时的信心的,你的软件是否完成了既定目标,在经历测试前你并不一定知晓以及信息不足。所以决定测试量的就是我们对目标软件的了解程度和我们的信心。了解充分以及信心十足,那完全可以只做少量的测试。