健壮性与正确性是不一样的——一个倾向于使程序尽量保持运行,即便遇到错误,一个倾向于使程序尽量正确,不在乎保持运行java
异常分为两种——checked exception与unchecked exception编程
两者的区别在于:ide
那么结合我以前对继承关系的理解,——前置条件不能增强,后置条件不能减弱函数
若是父类抛出了一个异常,子类抛出一个更具体的异常——?测试
这我能理解。由于异常也能够看作方法的后置条件,后置条件不能减弱,固异常变得更加具体是彻底符合的debug
若是父类抛出了一个异常,子类能够不抛出异常————???3d
那么这个就只可以理解为”不抛出任何异常是比抛出某一种异常更加具体的条件。”, 咱们能够就这样理解,不跑出异常至关于把异常抛出的条件无限增强。对象
防护式编程(Avoiding debugging),顾名思义,就是为了减小bug的出现而采用的一系列措施。blog
听起来很厉害哈哈哈哈,说得倒轻巧。继承
其实这第一道防线的意思就是减小bug的一些编程技巧,好比说:
也就是老生常谈的fail fast
使用Assertion是一个重要技巧,可是哪些东西须要使用asserrtion呢,这也有一些套路的
。。。。。。(这里真的没有什么内容啊)
测试用例很重要,可是也很繁琐。本学期软件构造课的实验中,对我来讲的最大的噩梦就是为本身的代码写test用例了。
简而言之,就是经过对方法的输入空间和解空间,根据方法的特性来设定测试用例。
一个简单的例子:
若是要测试BigInteger.multiply(BigInteger b)
如何划分?
而后只要按照这些划分来写测试用例便可。
这是一个很浅显的例子,事实上ppt与mit的reading中都明确给出了关于等价类划分的一套证实,但我认为若是要理解测试用例的书写,只须要理解
便可。
选择测试用例的划分是编程时常常用到的技巧,可是对于考试题来讲,还必须会将测试用例书写下来才行。不要到考场上才慌慌张张想着怎么排版按什么格式
黑盒测试就是在不知道方法的内部实现的状况下,只根据前置条件和后置条件对方法进行测试,这是最经常使用的。
而白盒测试则是对方法的内部实现进行测试 例子?