- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课堂练习二: 课堂练习二 * * 三、调试 如果总能写出正确的代码,并在第一次第一次测试时就能正确执行,当然很好。但实际编程过程中并不总是如此顺利。 如何测试代码是否正确,常用的方法有: 黑盒测试—通过特定规范执行路径 白盒测试—通过代码执行路径 将调试作为一个有哪些信誉好的足球投注网站过程—使用二分查找的方法,分离并检查错误来源 * * 1、测试和调试 在调试程序过程中我们需要一些方法: 测试方法—使用不同的例子运行代码看其是否正确的方法 调试方法—已经发现程序中有问题,如何修正程序的方法 * * 何时进行测试?何时进行调试? 实际上,如果我们能弄清楚如何设计代码,那么测试和调试会更加简单。优秀的程序员会有这样的经验: 将代码分解成独立的模块,从而独立地测试和调试; 写出好的文档(写明输入、输出的期望是什么;即使代码没有执行对测试的限制,这种文档也是有价值的); 记录下可能的各种假设; * * 测试之前要完成的工作: 确保代码可以运行 剔除语法错误 剔除静态语义错误 事实上,Python解释器可以自动处理上述两种错误 准备一套预期结果(即对于一个特定的输入,期待会有怎样的输出) * * 2、测试套件 我们希望找到一系列输入,它们很有可能暴露错误,且不会花太多时间,但却十分有效,这就是所谓测试套件。 将输入分解为子集,为代码正确性提供等效信息; 构造测试套件,其中至少包含每个子集的一个元素; 运行测试套件。 * * 例10-9:测试套件应用 输入空间是所有的整数对 可能的子集: x为正,y为正 x为负,y为负 x为正,y为负 x为负,y为正 x=0,y=0 x=0,y!=0 x!=0,y=0 * * 输入空间的划分原则: 上例中当然也可以有其他的输入选择,例如x是质数,y不是;y是质数,x不是;x和y都是质数;x和y都不是质数。但这与问题不相关。 实际上输入空间经常具有自然边界: 如:整数有正、负、零值; 根据这个观点可以将测试数据划分为9个子集(见上页): 将x=0,y!=0划分为x=0,y为正数和x=0,y为负数 x!=0,y=0也同样划分 * * 测试方法: 随机测试—代码的正确率随测试次数的增加而增加; 黑盒测试:在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收和正确的输出 白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。 * * 3、黑盒测试 测试套件的设计使人们无需查看代码,其优点为: 编程者以外的其他人也可以使用其进行测试; 可以避免编程者潜在的偏见,使得发现错误更为容易; 同一个测试套件可以被重复利用,即使改变了程序代码。 * * 4、白盒测试 使用代码本身引导测试用例的设计; 一个好的白盒测试套件,也被称为穷举路径测试,代码片段的每一个路径至少都被检测一次; 当然,即使是一个穷举路径测试也可能遗漏错误,这取决于例子的选择。 * * 例10-10:求某个数的绝对值(使用白盒测试) 选择测试套件{-2,2},这是穷举路径; 但是遗漏了检测abs(-1); 测试的边界应该选择{-2,-1,2} 修改程序(if x=-1) * * 白盒测试的经验法则: 执行所有if语句的两条分支; 确保每一个except语句被执行; 对于每一个for循环,需要测试以下情况: 循环一次都未被执行; 循环体只被执行一次; 循环体被执行一次以上 对于每一个while循环,需要测试以下情况: 与for循环测试相同 还要测试所有退出循环的情况 对于递归,要测试没有递归、有一次递归和多次递归的情况。 * * 5、将二分查找思路用于调试 例10-11:用二分查找思路调试判回文程序。 * * 执行情况: * * 执行情况: 错误肯定在此之前 * * 执行情况: 说明silly(n)已经没问题,再去看isPal(x) * * 错误肯定在此之前 执行情况: * * 执行情况: 说明错误在此之前 * * 执行情况: 应将x的副本赋值给temp 修改完成后的程序: * * 执行结果: 四、使用自带IDEL调试程序 IDLE是Python自带的一个简易的IDE,具有程序调试的功能,并且提供交互环境和脚本文件调试两种模式。 打开IDLE后默认是一个交互环境,可以直接编写Python代码并且能试试查看输出,如图10-1所示。 单击[Debug]|[Debugger]会弹出Debug Control调试界面,如图10-2所示。 界面上有5个按钮:Go(运行)、Step(单步调试)、Over(跳过)、Out(跳出)和Qui
文档评论(0)