博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python自底向上的执行单元测试
阅读量:4172 次
发布时间:2019-05-26

本文共 1199 字,大约阅读时间需要 3 分钟。

在上一篇博客(python自顶向下的设计方法进行体育竞技分析,网址:http://blog.csdn.net/sxingming/article/details/51235650)中,

我们学习了自顶向下的设计:从顶层开始分解问题为更小的问题进行求解。程序写好后,需要通过运行程序进行测试,

测试的好方法也是分成小部分进行展开,即自底向上的执行:从底层模块开始一个一个进行测试,直至整个系统测试完。

根据程序规模的不同,测试方法如下:

软件测试

1》 小规模程序:直接运行即可。

2》中等规模程序:采用单元测试,即从结构图底层开始,逐步上升,先运行测试每个基础函数,再测试由基础函数组成的整体函数,这样方便定位错误。

3》较大规模程序:高级软件测试方法。

下面,我们以体育竞技分析程序为例子,进行单元测试:

在进行单元测试之前,需要找到python的安装目录,将体育竞技分析程序matchSimulate.py复制到文件夹python35\Lib中,如下图:

下图是体育竞技分析程序的结构图(部分变量名和函数名采用缩写,看明白意思即可):

从最底层的gameOver()函数开始测试,我们采用调用库函数的方法,如下:

>>> from matchSimulate import *

>>> gameOver(0,0)

False

>>> gameOver(13,15)

True

>>> gameOver(15,11)

True

上面通过直接输入某时刻的双方得分,来检测函数的执行结果,比如,得分是0:0,函数输出为False,表明比赛尚未结束。通过上面的测试,说明gameOver()函数是正确的。可以继续向上测试simulateOneGame()函数。

simulateOneGame()函数有一些概率行为,其输出是不确定的,测试它的最好方法是根据输出判断其行为是否合理,如下:

>>> simulateOneGame(0.5,0.5)

(12, 15)

>>> simulateOneGame(0.5,0.5)

(15, 14)

>>> simulateOneGame(0.8,0.2)

(15, 0)

>>> simulateOneGame(0.2,0.8)

(2, 15)

>>> simulateOneGame(0.75,0.25)

(15, 1)

2个球员的能力值相等时,比分也非常接近,当能力值相差很远时,比分则呈现出压倒性趋势,这与我们对函数的预期是一样的,

因此,simulateOneGame()函数也是正确的。

继续进行这样的单元测试,可以检测程序中的每一个函数,独立检验一个函数更容易发现错误,当把整个程序都检验一遍后,运行起来将会变得更加顺利,

通过模块设计方法分解问题,使我们能够编写更加复杂的程序,通过单元测试的方法分解问题,使我们能够调试运行复杂的程序。

(完)

你可能感兴趣的文章
一个使用Pro*C实现增删改查的小例子
查看>>
Pro*C中嵌入PlSql块小例
查看>>
Pro*C动态SQL使用小例
查看>>
OCI小例
查看>>
Save could not be completed. Eclipse国际化的问题解决
查看>>
Xblo(JSP+Servlet+JavaBean+Oracle单用户Blog)
查看>>
Unable to use IEC module under PortablePython_1.1_py2.5.4
查看>>
实用英文地址书写格式
查看>>
在oracle中通过connect by prior来实现递归查询!
查看>>
百度空间如何才能另存为 mht
查看>>
ORACLE 中ROWNUM用法总结! (转)
查看>>
如何更新ARXSGPO.xml
查看>>
Unable To View Status Diagram [ID 746806.1]
查看>>
Accounting 里的Debit 和 credit是如何区分的。。。
查看>>
10gR1中ora-00201,ora-01103错误的解决办法
查看>>
Oracle用户权限管理
查看>>
EdtiPlus-最好用的文本编辑器+使用技巧集萃
查看>>
oracle merge into 用法详解
查看>>
What is the difference between a pack slip and a pick slip?
查看>>
CSS基础
查看>>