? ????(Introduction)

???????????????????????????й????л????????????????????????????????????????????????????????????????????1?????????????????????????????????????????Ρ?????????????1983??IEEE??????????????????????????л??????????????????????????????????漲?????????ū????????????????????

?????????????????????????????????????????????????????Σ?????????????尷??μ?????????????????????????????????У???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????г??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Ρ????????????????????????á??????????????????????????????????????????????????????????????????????????ε????????????????????????????Χ??????????e?????????????????ε???顢????????????????????????????????????????????????????????????????????ù????????????????????

????????????????????????????????????????????к??м????????磬?????????????????????????????????????????????????????????????????У????????????????????????????????????????????????ζ?????????????????????????????????????????????


???????????????????????????Ρ?????????????????????????????????????ε????????????????????????ζ?????????????????????????????????????????????????????????С?

??????????????????????????????????????????????????????????????????

????????????????????????????????????????????Ρ?????????????????Ρ??????????Ρ?????????????Σ?????????????????κ?????Σ??????????????????κ?????Ρ????????????????????????????????????????????????????????????????????????????Щ??????????????????Ρ?

????????????????????μ?????????????????????汻???????????????????????????????????Σ????????????????????????????????????????淶???????????????????????????????????????????????Щ????????????????????????????????в???????????????????????????????????????????и?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

??????1982???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Ч?????????????????????????????????????Щ?????????????????????????????е???????У?????????????????????????????????????????????????????????????е??????????????????????????????????????????????????????????????磺
?????????????????????У????????
????y=Function(x);
???????????????????????Function()?????????????????????????У????ò??????????????Base::Function()?????????????????Derived::Function()?????????
????????????????????????????????????????????壬??м?????????????????????????????????в?????????????????????????????????????????????????????????????ζ??в??????????????????????????ù???????????????????????????????????????????????????????????????????????á???????????????????????????????μ????????

?? ?????????????(Object-Orient Test Model)


???????????????????????????????????????????????????????OOA???????????????OOD????????????????OOP????????Ρ???????β?????????????????????????????????????????????????????????????????????????γ?????????????????????????????????????Ч????????????????????????????????????????????????????????????????????????????????????????????????????в?????????????????????ε???????????????????????????????????????????塣?????????????????
??????????????????????
??????????????0 ???????????????????????????????????????????????????

??????????????OOA Test:??????????????? ??????????OOD Test:??????????????
??????????????OOP Test:?????????????????????? OO Unit Test:????????????
??????????????OO Integrate Test:???????????????OO System Test:?????????????


????OOA Test??OOD Test ?????????????????????????????????????????????У??????????????????????OOP Test??????????????????????в????????????????????????????????????????????????????????????????????????????嵥?????????????????????????C++???????????????????????????????????????????????????????????????????????????????????????????????в????????????????????????????????????????????????????????????????????????μ?OOD??OOD Test???????????????????????????????????????????????????ε????????????????????????????????OOA??OOA Test?????


????????????????ε??????????????????壬???????????塢???????????в?????????????????????????????OOA??OOD??OOP??????????????????????????????????????????????????????


?? ???????????????(OOA Test)


?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????OOA????"??E-R?????????????????????????е????????????????????????е?????????????????γ?????????"???????????????????????????????


????OOA??????????????????????????????????????????????????е??????????????????C++?е???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????OOA????????????????????????????ν?????????????????????OOA?????????????????????????????????????????????????????????????????????????????Щ??????????????????????????????????????????????????????????????????OOA??????????????????????????


????????OOA????????????????????????????????????OOA??ε??????????????????棺
?????? ??????????????
?????? ?????????????
?????? ???????????????
?????? ???????????????????????
?????? ??????????????????????
????
????1 ???????????????
????OOA????????????????????е?????????????豸?????????????????漰???????????????????μ?[2]????????????????????·??濼???
????1.1 ?????????????棬????????????????漰??????????????????????????С?
????1.2 ?????????????ж??????????????????????????????????????????????????????????????
????1.3 ????????????????????й???????????????????????????
????1.4 ???????????????????????????????????????????????????????仯????????????????????ü??????????????
????1.5 ???????б???????????????????????????????????????????????????????????
????1.6 ???????????????t??????????á?


????2 ?????????????
??????Coad?????У?????????????????????????????????????????е?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?? 2.1 ?????????????????????·????????
????????2.1.1 ??????е??????????????????????????????????к??в????????????????????????????????????????????
????????2.1.2 ??????е???????????????????????????????????????????????????????????
????????2.1.3 ???????????????????????????????????????????????????????
????????2.1.4 ???????????????????????2?????
????????2.1.5 ???????????и??????????????????
????2.2 ?????????????????????·????????
????????2.2.1 ???壨??????????????????????????????????????
????????2.2.2 ???壨???????????????????????????????????????á?
????????2.2.3 ???壨??????????????????????????????????????????
????????2.2.4 ??????????????????????????????μ??????????????壨??????


????3 ???????????????
?????????????????????????????????????????OOA????????????????????????????????????????????????????????·??棺
????3.1 ??George Miller ??"7+2"?????????????????7?????????н????????????????????й鰱??
????3.2 ???????????????????????????????????????????
????3.3 ?????????????????????????????????????OOA??????ò??????????????????OOA ??????????
????3.4 ?????????????????????????????????????????????????й?????


????4 ???????????????????????
?????????????????????????????????????????????????????????????????????????????????????????????·??濼???
????4.1 ??????????????????????????????????????????á?
????4.2 ????????????????????????????????????С?
????4.3 ???????????????????????????????????С?
????4.4 ???????????????????????????????????????
????4.5 ????????????????е?λ????????????????????????????????????????????
????4.6 ?????????????????????????????????
????4.7 ???????????????????????
????4.8 ?????????????????????????????????????1-????-????????????

????5 ??????????????????????
????????????????????????????????????????????????????????????????????????OOA ????????????????????????????μ?[3]??????????????????????????????·?????У?
????5.1 ??????????????????????????????????
????5.2 ???????????????????????????????????????
????5.3 ????????????????????????????????
????5.4 ?????????????е?????????????????????????
????5.5 ??????????????????????????????????

?? ??????????????(OOD Test)


?????????????????????????"????????????????????????????????????????????Щ????????????????????????????????????????????????????????????????ε?????"??


?????????????????OOD??????"???????"????OOA????????????????????????????????????????????????????????OOD ??????????????????????????????????????????????????????????OOD??????OOA?????????????????????OOA????????????????????????OOD??OOA ???????????????????????OOD??????????????????????????????????????????????????????????????????????????????ú?????????????????????????????OOD?????????????????????????????????OOA?????????????????????濼???
?????? ?????????????
?????? ?????????ν??????
?????? ?????????????


????1 ?????????????
????OOD????????????OOA???????????????????????????????????????????е???????????????????????t???????????????????????????á????????????
????1.1 ???????OOA??????????????
????1.2 ?????????OOA?ж?????????
????1.3 ????????OOA?ж???????
????1.4 ??????????????????????????
????1.5 ????????????????????
????1.6 ???е??????C++?????????????????????


????2 ?????????ν??????
?????????????????????й????????OOD?????ν??????????OOA?в?????????????????????????????????????????????????????????????????????????????????ν?????????????????乹?????????????????????????????·??棺
????2.1 ???ν???????????ж??????
????2.2 ?????????OOA??????????????????
????2.3 ????????OOA??????????????????
????2.4 ?????????и?????е????????
????2.5 ????????????????????????е????????


????3 ????????????
????????????????????????ν???????????????????????????????????????á???????????????????????????????????????????????????????????????????????ν???????????????????£?
????3.1 ????????й?????????????????????????????????????????????????????????
????3.2 ???з?????C++???????????????????????????????????????????
????3.3 ????ν?????????????С??


?? ?????????????(OOP Test)


?????????????????????м?С???????????????????????????????????????????????????????????????????????????????????????????????????????????????????д?????????????????????ж??????????????????????????????????????????????????????????????????????????????????????????????????????????????е?????????????????????μ???????????????????????????????????????????????????????????ó?????"??"????????????????????????ò????????????????е???????????????


???????????????????????????????С???????????????????????????Э?????????????????????????????????????????????????????????????????????????????????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 ?????????????????
??????????????????????????????????С????????????????????????????????????????????????????????????????????????????е???????????б???????????????д???????????????????????????????????????????????á?????????????????????????????н?????????????????????????????????????????????????????????ú????????????????????????????????????????????????????????????????????????????????????н??????????????????????????????????????????????????л???????????????????????????????OOD???????????????????????????????????????????????????????OOD?????????????????????ò???OOA????????????????

?? ??????????????(OO Unit Test)


?????????????????????????????????????????????????顣???????????????????????????????Щ????????????????????????????ж???????á?????????????????????????????????????????·??????????????????????????????????μ?[6]??????????????????????ɡ?


??????????????????е????????????????????????????????????????????????????????????????????С????潫???????????????????????????????????????????????е???д????????????????????????????????????????????????????裺


????1. ????????????????????????е?????????????У???????е?????????????????С?


????2. ????????????????????????????????У???????????????????????С??????????????????????????????????裬?????????????????????????????????????????????IP???????????????????????У????????????????С?????????????????????????????????Щ??????????????磺
????? if (-1==write (fid?? buffer?? amount)) error_out();
?????????????write()?????????????ж???????????????????д??????д???????????????????????????????д??????????????????????????
????? ?????????????ú???strrchr()???????????????????????д???????strchr()????????????????????????????????
????? ?????н?if (strncmp(str1??str2??strlen(str1)))??д????if (strncmp(str1??str2??strlen(str2)))???????????????????????str1??str2??????????????????


????????????????????????????????????????????????????????????????в???????????????????????????????????????????????ж????????????????????


???????????????????????????????????????????????????????????????????????????????????????л????????????????????????????δ????????????[7]?У?Brian Marick ????????????????
????1. ??е????????????????????
????????[7]?е?????????????????????????????????????????????????????2????a????е???????????????????????b????????????????????????????????????磺
???????踸??Bass???????????????Inherited()??Redefined()??????Derived???Redefined()??????????????Derived::Redefined()?????????2????????Derived::Inherited()????????е???Redefined()?????(?磺x=x/Redefined())????????2????????????????


????2. ?????????????????????
??????????????裬Base::Redefined()??Derived::Redefined()??????????????????????в??????????????С????????????? Derived::Redefined()???2????????????????????????????????????????????????????????????? Base::Redefined()??????????????????????Derived::Redfined()?μ?????????????????????????????磺
????Base::Redefined()???????????
????If (value<0) message ("less");
????else if (value==0) message ("equal");
????else message ("more");
????Derived::Redfined()?ж????
????If (value<0) message ("less");
????else if (value==0) message ("It is equal");
????else
????{message ("more");
????if (value==88)message("luck");}
????????е?????????Derived::Redfined()????????????????????value==0????????????????????value==88??????


????????м???????????????????????????????????????????????????????????????????????????????????????й???????????????????μ??????????????????к?????????????????????????????????????ж??????????????????????????????????а?????????????????????????????е??????????????????????????????????????????????????????????????????????????ο?[10]?й?????δ?MtSS??????????????????

?? ??????????????(OO Integrate Test)
??
????????????????????????????????????????????в????????????????????????????????С???????????????????????????????????????????У????????????????????????????????????????????????????????????????????????????????????????????е??????????????????????????????????????????????????????????в????????????????????????????????????????????????С?????????????????ж????????????????????????????????????????????????????????????????????


??????????????????????????????????????????????????Щ????????????????????????????????????????????????????????????????????????????????á???????????????????????????У?????о???????????ж???????


?????????????????????????У???????????????????????????е??Щ??????????????????"?????????"??????????????????????????????????ù?????????International Software Automation ?????Panorama-2 forWindows95??Rational?????Rose C++ Analyzer?????"?????????"?????????OOD???????????????????????????????????仰????????????????OOP????????????


?????????????????????????????????????????y?????????????????????ο?????????????????????????????????????????????????????????y??е??????????????????????????????????????????????????е?????????????????????????????????????????????????????????????????????????????????????????????????????????е??Щ???????
??????????????е???????


??????????????????????ο????в??裺
????1. ????????????ο?OOD????????????????????????????????????????????????????????????綨???
????2. ???????????
????3. ???y??????????????????й?????
????4. ?????????????????????????????????????????????????????????????????????????


???????????????????????????????????????????????????????????????Щ?????????????????????в????????????????緢????????????????????????????????????????????????????????????????????????????????ɡ?

?? ??????????????(OO System Test)


????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????淶???????????????????????????????????????????????????????????????????????????????????????е???????????????????Э????????????????????????????????ZXM10?????????????????????????????????豸???????????????E1?????豸?????????????????????????????


????????????t??????????????????????????????????????????????????????????е????豸????????????????????Ρ????????????òο?OOA????????????????????????????????????????????????"????"??????????????????????????????????????????????濴???????????????????????


??????????????????????????????????????????????????????????
????? ???????????????????????????????????????????????????????????????????????????????????ú????????????????????????????????????????
????? ????????????????????????????????????Щ??????????????????????????????????????????????????????????????????????????????????????????
????? ????????????????????????????????????????????????У??????????????????????????紫?????????????????????????????????????????????????????????
????? ????????????????????????????????????????б?????????????????????????????????????Щ??????????????????????????????????????а????????????
????? ??????????????????????????????ж???????????????????????????????????????????òο??????????????????
????? ?????????????????????????????á??????????????????????????????????
????? ???/ж??????install/uninstall test??????


?????????????????????????????????????????????????????????????