面向對象程序是把功能的實現分布在類中。能正確實現功能的類,通過消息傳遞來協同實現設計要求的功能。正是這種面向對象程序風格,將出現的錯誤能精確的確定在某一具體的類。因此,在面向對象編程(OOP)階段,忽略類功能實現的細則,將測試的目光集中在類功能的實現和相應的面向對象程序風格,主要體現為以下兩個方面(假設編程使用C++語言)。
☆ 數據成員是否滿足數據封裝的要求
☆ 類是否實現了要求的功能
1 數據成員是否滿足數據封裝的要求
數據封裝是數據和數據有關的操作的集合。檢查數據成員是否滿足數據封裝的要求,基本原則是數據成員是否被外界(數據成員所屬的類或子類以外的調用)直接調用。更直觀的說,當改編數據成員的結構時,是否影響了類的對外接口,是否會導致相應外界必須改動。值得注意,有時強制的類型轉換會破壞數據的封裝特性。例如:
class Hiden
{private:
int a=1;
char *p= "hiden";}
class Visible
{public:
int b=2;
char *s= "visible";}
…..
…..
Hiden pp;
Visible *qq=(Visible *)&pp;
在上面的程序段中,pp的數據成員可以通過qq被隨意訪問。
2 類是否實現了要求的功能
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/