测试、调试、异常、断言
期中测试选择题
1.while循环作为主体循环时最多可以包含一个“break”语句和最多包含一个“pass”语句
错误分析:
while True:
if i > 0:
break
elif i==0:
break
else:
print(i)
测试
1.测试最重要的目的是证明错误的存在,而不是证明程序没有错误;测试的关键就是找到一组输出,可以称为测试套件;
2.测试分为两类:
黑盒测试:基于规范探索路径的启发式方法
好处:
1、测试者和开发者来自不同人群
2、避免生成测试套件时将代码的错误潜伏在其中
3、就是实现发生变化时,测试仍适合适用
白盒测试:基于代码路径启发式方法
经验准则:
1、测试所有if语句的所有分支
2、必须测试每个except子句
3、对于for循环,需要以下测试:未进入循环,循环体执行一次,循环体执行多次
4、对每个while循环,包括for的所有,对应于所有跳出循环的测试用例。
5、对于递归函数,测试用例应该包含函数没有递归调用就返回,只执行一次递归调用和执行多次递归调用的情况
3.测试分为两个阶段:
单元测试
测试者构建并执行测试,用来确定代码的每个独立单元是否正常工作。
集成测试
确定整个程序是否按照预期的运行。
集成测试比单元测试更具有挑战性。
调试
1.运行错误按照两个维度进行分类
显性-->隐性:显性错误有明显的表现,如程序奔溃或者运行时间异常长,隐性错误没有明显的表示,程序会正常结束不处任何问题--
除了会给出一个错误的答案
持续-->间歇:持续性错误在程序每次使用相同的输入运行时都会发生。间歇性错误仅在某些时候出现。间歇性错误是很常见的。
2.排除常见错误
1、以错误的顺序向函数传递实参;
2、拼错一个名称,如将大写字母写成小写;
3、变量重新初始化失败;
4、检验两个浮点数是否相等(==),而不是近似相等(请记住,浮点数的运
5、在应该检验对象相等(如id(L1) == id(L2))的时候,检验值相等
6、忘记了一些内置函数具有副作用;
7、忘记使用()将对function类型对象的引用转换为函数调用;
8、意外地创建了一个别名;
9、其他一些你常犯的错误
异常
1.程序因为一个异常被抛出而终止时,我们称派出了一个未处理的异常
注意:异常没有必要导致程序终止,异常被抛出时,可以也应该由程序进行处理,有时抛出异常的原因是程序中有错误,但很多时候,
异常时程序员可以也应该预料到的事情。打开一个不存在的文件等等
2.用try except来处理异常
断言
1.assert有两种形式:
assert Boolean expression或者assert Boolean expression,argument
执行assert语句时,先对布尔表达式求值,为True,程序向下运行;为FALSE,就抛出一个AssersionError异常;
2.断言是一种非常有用的防御性编程工具,可以确保函数参数具有恰当的类型;同时也是一种非常有用的调试工具,可以确保中间值符合预期,
或者确保函数返回一个可接受的值。
本文来自博客园,作者:爱吃帮帮糖,转载请注明原文链接:https://www.cnblogs.com/monkeyT/p/9374222.html