测试软件/程序
之前,每次实现一个函数,我们都只调用一次开结果,调用中用到的数据也总是很简单。这样做,从软件测试的角度而言,是很不够的。
真要全面的测试一个软件/程序,涉及的方面很多,最基本的就可以分为功能和性能两大类。两大类下各自又有很多细分。
对于我们在本课中学习的算法程序而言,因为它们的时空复杂度都是已知,如果进行性能测试,最终得到的数据能够衡量的其实是你的计算机的软硬件系统,而不是算法本身。因此,我们暂且只关注功能方面就好了。
算法都是经典算法,我们之所以要验证程序功能,不是为了验证算法原理,而是要验证具体实现的正确性。以此为出发点,那么最简单直接的方式就是构造多个测试数据,“灌进去”运行!
测试排序算法
构造数据集
当前我们要测试的是排序算法,针对它的数据集可以从三个方面下手:
- 随机数列
- 正序数列
- 倒序数列
正好对应排序算法计算时间复杂度时的一般情况,最好情况和最坏情况。
这些数据集,都可以通过程序来生成。下面整个函数,可以同时生成随机、正序和倒序的数列:
import random
def generateTestData(start, end,