测试是通过构造可能的数据集输入然后对程序的运行结果进行比较,而正确性论证是通过对代码的逻辑分析来判断是否存在异常。
优点:
缺点:
优点:
缺点:
测试是黑盒而正确性论证是白盒。测试的自由度高但覆盖的情况相对较少,而正确性论证覆盖的情况全面但自由度较差。
测试和正确性论证的选择主要还是和代码的规模有关,代码量小,测试比较好,代码量大,正确性论证比较好。
首先从多项式计算到傻瓜电梯,让编程从面向过程改变为面向对象。然后扩展电梯功能,引入了多线程。这一部分除了线程的操作外,还有线程的安全。除了完成规定的任务,还要考虑数据的安全。之后引入规格化设计,在程序功能逐渐完善同时,也要考虑到我们的代码能否被他人看懂,能否便于移植,所以我们更要考虑程序实现中规格的规范,通过前置条件,后置条件对调用方法进行规范,对正确性进行统一的验证。最后引入了很多自动化测试,在代码规模提升后引入程序来进行自动化的覆盖全面的测试,抽象全面的论证程序的正确性。
从第一次的面向对象的尝试开始,能够准确地设计每个模块,区分各个模块的功能。后面的自动化测试也让我了解到之前的代码有太多冗余的地方,能够进行精简。同时工程化能力也得到了提升。
工程化开发在一个程序代码量较大时是有必要的,对个人或是团队都有所助力。保证了统一性,能更好的维护和管理。
在学习代码规格时需填写自己之前的代码这一点个人认为不太好,最好是一开始就能了解到,再按规格去编写代码。
原文:https://www.cnblogs.com/rasalghul/p/9220995.html