【2017年整理】第九章异常处理与程序调试.ppt
文本预览下载声明
执行结果: * * 执行结果: Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 课堂练习二: 课堂练习二 * * Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 三、调试 如果总能写出正确的代码,并在第一次第一次测试时就能正确执行,当然很好。但实际编程过程中并不总是如此顺利。 如何测试代码是否正确,常用的方法有: 黑盒测试—通过特定规范执行路径 白盒测试—通过代码执行路径 将调试作为一个搜索过程—使用二分查找的方法,分离并检查错误来源 * * Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 1、测试和调试 在调试程序过程中我们需要一些方法: 测试方法—使用不同的例子运行代码看其是否正确的方法 调试方法—已经发现程序中有问题,如何修正程序的方法 * * Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 何时进行测试?何时进行调试? 实际上,如果我们能弄清楚如何设计代码,那么测试和调试会更加简单。优秀的程序员会有这样的经验: 将代码分解成独立的模块,从而独立地测试和调试; 写出好的文档(写明输入、输出的期望是什么;即使代码没有执行对测试的限制,这种文档也是有价值的); 记录下可能的各种假设; * * Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 测试之前要完成的工作: 确保代码可以运行 剔除语法错误 剔除静态语义错误 事实上,Python解释器可以自动处理上述两种错误 准备一套预期结果(即对于一个特定的输入,期待会有怎样的输出) * * Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 2、测试套件 我们希望找到一系列输入,它们很有可能暴露错误,且不会花太多时间,但却十分有效,这就是所谓测试套件。 将输入分解为子集,为代码正确性提供等效信息; 构造测试套件,其中至少包含每个子集的一个元素; 运行测试套件。 * * Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 例9-10:测试套件应用 输入空间是所有的整数对 可能的子集: x为正,y为正 x为负,y为负 x为正,y为负 x为负,y为正 x=0,y=0 x=0,y!=0 x!=0,y=0 * * Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 输入空间的划分原则: 上例中当然也可以有其他的输入选择,例如x是质数,y不是;y是质数,x不是;x和y都是质数;x和y都不是质数。但这与问题不相关。 实际上输入空间经常具有自然边界: 如:整数有正、负、零值; 根据这个观点可以将测试数据划分为9个子集(见上页): 将x=0,y!=0划分为x=0,y为正数和x=0,y为负数 x!=0,y=0也同样划分 * * Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 测试方法: 随机测试—代码的正确率随测试次数的增加而增加; 黑盒测试:在测试时,把程序看作
显示全部