首页 / 知识
关于单元测试:如何使用集合的组合作为测试数据
2023-04-11 13:47:00

How to use combinations of sets as test data
我想用一组边缘情况和正常值的元组测试一个函数。 例如,当测试一个函数,只要给定三个形成有效三角形的长度,它就会返回
绝对地,尤其是处理许多这样的排列/组合时,我绝对可以看到第一遍是一个问题。 有趣的python实现,尽管我基于" Algorithm 515"在C和Ocaml中编写了一个不错的代码(请参见下文)。他在Fortran中编写了他的著作,因为那是所有" Algorithm XX"论文(当时是汇编语言或c语言)的普遍用法。我不得不重新编写它,并做了一些小的改进以使用数组而不是数字范围。这是一个随机访问,我仍在努力获得Knuth第4卷第2卷中提到的方法的一些不错的实现。我将向读者解释这种方法的工作原理。虽然如果有人好奇,我不会反对写些东西。
?"算法515:根据词典索引生成向量"; Buckles,B. P.和Lybanon,M. ACM在数学软件上的交易,第1卷。 3,第2号,1977年6月。 使用全新的Python 2.6,您可以使用带有itertools模块的标准解决方案,该模块返回iterables的笛卡尔积:
您可以提供" repeat"参数来使用迭代器及其自身来执行产品:
您还可以通过组合来调整某些内容:
如果顺序很重要,则可以进行排列:
当然,所有很酷的东西并不能完全完成同一件事,但是您可以以某种方式使用它们来解决您的问题。 只要记住您可以使用list(),tuple()和set()将元组或列表转换为集合,反之亦然。 有趣的问题!
我可以通过选择组合来做到这一点,类似于python中的以下内容。最难的部分可能是首次通过验证,即 最好使一组您知道都为真的测试用例(例如,对于这个三角情况为3,4,5),以及一组您知道都为假的测试用例(例如,0,1) ,inf)。然后,您可以更轻松地验证测试是否正确。
我认为您可以使用行测试属性(在MbUnit和NUnit的更高版本中提供)来执行此操作,您可以在其中指定几组来填充一个单元测试。 尽管可以创建大量测试数据并查看会发生什么,但是尝试最小化正在使用的数据更为有效。 从典型的质量检查角度来看,您将希望确定输入的不同分类。为每个分类生成一组输入值,并确定适当的输出。 这是输入值类别的样本
... 对此功能的输入分类列表满意后,即可创建实际的测试数据。测试每个项目的所有排列可能会很有帮助。 (例如(2,3,4),(2、4、3),(3、2、4),(3、4、2),(4、2、3),(4、3、2))通常,您会发现缺少一些分类(例如,将inf作为输入参数的概念)。 一段时间内的随机数据也可能会有所帮助,因为它可以在代码中发现奇怪的错误,但通常没有效果。 更有可能的是,在某些应用附加规则的特定上下文中使用了此函数(例如,仅整数值或值必须以0.01为增量等)将这些添加到输入参数的分类列表中。 |
最新内容
相关内容
python元组怎么用
python元组怎么用,数据,位置,培训,系统,一致,函数,操作,数据类型,外部,个数,python的元组:tuple内部只有两个可以操作的函数[count()/index()]python单元测试中的函数整理
python单元测试中的函数整理,培训,环境,测试,方法,函数,单元,条件,实例,里面,以上,python单元测试中的函数整理1、setUp准备环境。执行每个测python计算集合交集的符号
python计算集合交集的符号,培训,符号,参数,更多,语法,实例,元素,以上,两个,教程,python计算集合交集的符号说明1、可以使用&符号来计算两个或python集合的并集操作
python集合的并集操作,培训,操作,参数,更多,语法,符号,实例,元素,以上,两个,python集合的并集操作说明1、可以使用|符号来计算两个或更多集合python集合的差集如何计算
python集合的差集如何计算,培训,参数,更多,语法,符号,实例,元素,以上,两个,方法,python集合的差集如何计算说明1、可以使用-符号来计算两个或python判断两个集合是否相等
python判断两个集合是否相等,培训,两个,元素,语法,实例,以上,参数,方法,教程,更多,python判断两个集合是否相等说明可以使用==运算符判断两个python如何判断集合的超集
python如何判断集合的超集,培训,元素,语法,实例,以上,参数,方法,教程,更多,python如何判断集合的超集说明1、可以使用>=运算符判断当前集合python集合魔法函数有哪些
python集合魔法函数有哪些,培训,方法,函数,对象,魔法,字典,实例,以上,教程,更多,python集合魔法函数有哪些说明1、_len_调用len()方法时,就是关于单元测试:如何使初级程序员编写
关于单元测试:如何使初级程序员编写测试?,关于单元测试:如何使初级程序员编写测试?,试了,程序员,你写,有一个,How to make junior progra关于单元测试:如何模拟Sealed类?
关于单元测试:如何模拟Sealed类?,关于单元测试:如何模拟Sealed类?,模拟,模式,密封,密封类,How do you mock a Sealed class?模拟密封课程如何为Visual Studio C ++设置单元
如何为Visual Studio C ++设置单元测试,如何为Visual Studio C ++设置单元测试,测试框架,单元测试,套件,链接,How to set up unit te关于单元测试:TDD和BDD之间的主要区
关于单元测试:TDD和BDD之间的主要区别是什么?,关于单元测试:TDD和BDD之间的主要区别是什么?,测试驱动开发,我在,社区,热门话题,What are