标签:其它 哪些 意思 格式 构造 也有 code throw checked
健壮性与正确性是不同的——一个倾向于使程序尽可能保持运行,即使遇到错误,一个倾向于使程序尽可能正确,不在意保持运行
异常分为两种——checked exception与unchecked exception
二者的区别在于:
那么结合我之前对继承关系的理解,——前置条件不能加强,后置条件不能减弱
如果父类抛出了一个异常,子类抛出一个更具体的异常——?
这我能理解。因为异常也可以看做方法的后置条件,后置条件不能减弱,固异常变得更加具体是完全符合的
如果父类抛出了一个异常,子类可以不抛出异常————???
那么这个就只能够理解为”不抛出任何异常是比抛出某一种异常更加具体的条件。”, 我们可以就这样理解,不跑出异常相当于把异常抛出的条件无限加强。
防御式编程(Avoiding debugging),顾名思义,就是为了减少bug的出现而采用的一系列措施。
听起来很厉害哈哈哈哈,说得倒轻巧。
其实这第一道防线的意思就是减少bug的一些编程技巧,比如说:
也就是老生常谈的fail fast
使用Assertion是一个重要技巧,但是哪些东西需要使用asserrtion呢,这也有一些套路的
。。。。。。(这里真的没有什么内容啊)
测试用例很重要,但是也很繁琐。本学期软件构造课的实验中,对我来说的最大的噩梦就是为自己的代码写test用例了。
简而言之,就是通过对方法的输入空间和解空间,根据方法的特性来设定测试用例。
一个简单的例子:
如果要测试BigInteger.multiply(BigInteger b)
如何划分?
然后只要按照这些划分来写测试用例即可。
这是一个很浅显的例子,事实上ppt与mit的reading中都明确给出了关于等价类划分的一套证明,但我认为如果要理解测试用例的书写,只需要理解
即可。
选择测试用例的划分是编程时经常用到的技巧,但是对于考试题来说,还必须会将测试用例书写下来才行。不要到考场上才慌慌张张想着怎么排版按什么格式
黑盒测试就是在不知道方法的内部实现的情况下,只根据前置条件和后置条件对方法进行测试,这是最常用的。
而白盒测试则是对方法的内部实现进行测试 例子?
软件构造-犯错的艺术——健壮性与正确性,异常,防御式编程,debugging与test的思考与总结
标签:其它 哪些 意思 格式 构造 也有 code throw checked
原文地址:https://www.cnblogs.com/giere/p/11074043.html