作者H45 (!H45)
看板OOAD
标题[概念] 物件导向测试
时间Tue Jan 13 06:24:20 2009
物件导向测试 (Object-oriented testing)
前言:
软体测试在非物件导向与物件导向都是非常建议实行的一环,虽然许多测试的策略是相
同的,但是仍然有些性质是物件导向才有的,以下文章简述有关物件导向测试的特性。
参考书籍为:
Object-Oriented Software Engineering 2/e -
Practical Software Development using UML and Java
本文:
在物件导向的设计中,类别是一个非常重要的结构单位,为了找出软体的瑕疵、缺陷
、错误,适当的测试可以帮上大忙。
1. 在类别里面设计一个专门拿来测试的方法,此方法的目标为测试此类别的其他方法
2. 在一个继承树中测试父类别的方法与其子类别的方法所做的事情是一致的,要完成
此项测试,执行每个子类别的测试方法来确认即可。
设计测试的概念之一是:在不操作图形使用者介面的情况下测试程式码的正确性,要
完成这样的测试必须把使用者介面与系统的功能两者切割的非常乾净,测试者才能直
接透过系统提供的 API 来撰写对应的程式码,使得自动化的测试变得更容易。
另一种不错的测试策略是替系统撰写一个 Command-Line 的版本,使测试者可以直接
透过指令来操作系统,进行各式各样的系统测试。
在 Java 中,若要使软体具有可测试性,可以考虑在每个类别中加上 main 方法来测
试该类别的方法,并且在遇到任何瑕疵、缺陷、错误的时候将其报告出来。
杂谈:
设计测试的概念以及 Command-Line 版本的建议对非物件导向的设计方式也适用,上
面的「本文」真正和物件导向有关系的只有 1, 2 两点,而 1 描述的内容和「本文」
的最後一段一模一样……
至於 2 所提到的事情嘛,不就是 hashcode() 理当实作杂凑函数,compareTo() 乖乖
实作比较大小,toString() 好好实作转字串,不要额外做一些有的没有的嘛……这有
什麽好强调的呢? (小声问:「会有人想在 compareTo() 的函式中偷偷地将自己变大
吗;会有人想让上一行呼叫 toString() 的结果和下一行呼叫 toString() 的结果不
一样吗?」 (拜托,别让这世界变得更乱了,囧>))
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.247.13
1F:推 ferng1021 :在 Java 中也可以用 JUnit 来做测试 01/13 10:14
2F:→ H45 :关於各程式语言之 unit test 可参考 #16dZFPbG 01/13 10:41