版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件測(cè)試
軟件錯(cuò)誤案例
軟件測(cè)試的目的和原則
軟件測(cè)試用例設(shè)計(jì)
軟件測(cè)試策略
軟件測(cè)試種類
程序調(diào)試軟件錯(cuò)誤案例※1994年12月30日;ThomasR.Nicely博士在實(shí)驗(yàn)中,發(fā)現(xiàn)了奔騰CPU的除法問(wèn)題
(4195835∕3145727)×31435727―4195835=?
5億美元VS27000年/次;企業(yè)VS公眾迪斯尼獅子王故事※2003年8月,位于美國(guó)俄亥俄州的第一能源(FirstEnergy)公司下屬的電力監(jiān)測(cè)與控制管理系統(tǒng)“XA/21”出現(xiàn)軟件錯(cuò)誤,導(dǎo)致北美東北部大規(guī)模停電;
※2003年4月,一個(gè)軟件故障導(dǎo)致美國(guó)航空集團(tuán)公司損失數(shù)千美元,因?yàn)橛行C(jī)票的價(jià)格被誤定為1.86美元;
※千年蟲(chóng)問(wèn)題:更換或升級(jí)類似程序以解決潛在的2000年問(wèn)題的費(fèi)用已經(jīng)達(dá)到數(shù)千億?!?996年6月4日,阿麗亞娜5型火箭第一次鑒定發(fā)射,因火箭導(dǎo)航電腦軟件系統(tǒng)發(fā)生故障而失??;
41秒=71億美元,十幾個(gè)國(guó)家,數(shù)萬(wàn)技術(shù)人員※1999年12月3日,美國(guó)航天局的火星極地登陸者號(hào)探測(cè)器試圖在火星表面著陸時(shí)失蹤;
※美國(guó)愛(ài)國(guó)者導(dǎo)彈防御系統(tǒng)首次應(yīng)用在海灣戰(zhàn)爭(zhēng)中對(duì)抗伊拉克飛毛腿導(dǎo)彈的防御戰(zhàn)中,一次在沙特阿拉伯的多哈擊斃了28名美國(guó)士兵;軟件測(cè)試的目的和原則基本概念軟件測(cè)試的目的軟件測(cè)試的原則軟件測(cè)試的對(duì)象測(cè)試信息流(測(cè)試過(guò)程)測(cè)試與軟件開(kāi)發(fā)各階段的關(guān)系軟件測(cè)試概念經(jīng)典定義:是在規(guī)定條件下對(duì)程序進(jìn)行操作,以發(fā)現(xiàn)錯(cuò)誤,對(duì)軟件質(zhì)量進(jìn)行評(píng)估。IEEE定義:“使用人工或自動(dòng)手段來(lái)運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清楚預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別”。軟件缺陷的定義1. 軟件未實(shí)現(xiàn)產(chǎn)品說(shuō)明書(shū)要求的功能。2. 軟件出現(xiàn)了產(chǎn)品說(shuō)明書(shū)指明不應(yīng)該出現(xiàn)的錯(cuò)誤。3. 軟件實(shí)現(xiàn)了產(chǎn)品說(shuō)明書(shū)未提到的功能。4. 軟件未實(shí)現(xiàn)產(chǎn)品說(shuō)明書(shū)雖未明確提及但應(yīng)該實(shí)現(xiàn)的目標(biāo)。5. 軟件難以理解、不易使用、運(yùn)行緩慢或者——從測(cè)試員的角度看——最終用戶會(huì)認(rèn)為不好。軟件測(cè)試的目的基于不同立場(chǎng),存在兩種測(cè)試目的。用戶:希望測(cè)試暴露軟件中隱藏的錯(cuò)誤和缺陷。開(kāi)發(fā)者:希望測(cè)試表明軟件不存在錯(cuò)誤,驗(yàn)證軟件已實(shí)現(xiàn)預(yù)期功能,確立人們對(duì)軟件質(zhì)量的信心。Myers軟件測(cè)試目的(1)測(cè)試是程序的執(zhí)行過(guò)程,目的在于發(fā)現(xiàn)錯(cuò)誤;(2)一個(gè)好的測(cè)試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;(3)一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。換言之,測(cè)試的目的是以最少的時(shí)間和人力,系統(tǒng)地找出軟件中潛在的各種錯(cuò)誤和缺陷。
測(cè)試不能表明軟件中不存在錯(cuò)誤,它只能說(shuō)明軟件中存在錯(cuò)誤。
軟件測(cè)試的原則1.應(yīng)當(dāng)把“盡早地和不斷地進(jìn)行軟件測(cè)試”作為軟件開(kāi)發(fā)者的座右銘。2.測(cè)試用例應(yīng)由測(cè)試輸入數(shù)據(jù)、預(yù)期輸出結(jié)果兩部分組成。3.程序員應(yīng)避免檢查自己的程序。4.在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)包括合理的輸入條件和不合理的輸入條件。5.充分注意測(cè)試中的群集現(xiàn)象。6.嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。7.應(yīng)當(dāng)對(duì)每一個(gè)測(cè)試結(jié)果做全面檢查。8.妥善保存測(cè)試計(jì)劃,測(cè)試用例,出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。
9.完全測(cè)試是不可能的。10.軟件測(cè)試是有風(fēng)險(xiǎn)的行為。
最優(yōu)測(cè)試量測(cè)試不足過(guò)度測(cè)試測(cè)試費(fèi)用漏掉的缺陷圖3-2每一個(gè)軟件項(xiàng)目都有一個(gè)最優(yōu)的測(cè)試量11.測(cè)試無(wú)法顯示潛伏的軟件缺陷。12.注意殺蟲(chóng)劑怪事:對(duì)測(cè)試的免疫力。13.并非所有的軟件缺陷都要修復(fù)。14.軟件測(cè)試員在產(chǎn)品小組中不受歡迎。
MikhailRakhunov測(cè)試十原則
1.Testearlyandtestoften.
2.Integratetheapplicationdevelopmentandtestinglifecycles.You‘llgetbetterresultsandyouwon’thavetomediatebetweentwoarmedcampsinyourITshop.
3.Formalizeatestingmethodology;you‘lltesteverythingthesamewayandyou’llgetuniformresults.
4.Developacomprehensivetestplan;itformsthebasisforthetestingmethodology.
5.Usebothstaticanddynamictesting.
6.Defineyourexpectedresults.
7.Understandthebusinessreasonbehindtheapplication.You‘llwriteabetterapplicationandbettertestingscripts.
8.Usemultiplelevelsandtypesoftesting(regression,systems,integration,stressandload).
9.Reviewandinspectthework,itwilllowercosts.
10.Don’tletyourprogrammerschecktheirownwork;they‘llmisstheirownerrors.MikhailRakhunov測(cè)試十原則人際關(guān)系十大挑戰(zhàn)
10獲得軟件測(cè)試培訓(xùn)
9與開(kāi)發(fā)人員保持良好關(guān)系
8無(wú)測(cè)試工具
7使管理人員了解測(cè)試
6與客戶保持交流
5分配測(cè)試時(shí)間
4測(cè)試“扔過(guò)墻“的軟件
3滿足不斷變化的需求
2解決兩難問(wèn)題
1學(xué)會(huì)如何說(shuō)不
軟件測(cè)試的對(duì)象
軟件測(cè)試并不等于程序測(cè)試。軟件測(cè)試應(yīng)貫穿于軟件定義與開(kāi)發(fā)的整個(gè)期間。軟件測(cè)試的對(duì)象:需求規(guī)格說(shuō)明、概要設(shè)計(jì)規(guī)格說(shuō)明、詳細(xì)設(shè)計(jì)規(guī)格說(shuō)明、源程序……為把握各個(gè)環(huán)節(jié)的正確性,需要V&V。驗(yàn)證(Verification)Areweproducingtheproductright?表明滿足規(guī)定要求;強(qiáng)調(diào)過(guò)程的正確性。確認(rèn)(Validation):Areweproducingtherightproduct?表明滿足預(yù)期用途或應(yīng)用要求;強(qiáng)調(diào)結(jié)果的正確性。測(cè)試信息流(測(cè)試過(guò)程)測(cè)試信息流軟件配置:軟件需求規(guī)格說(shuō)明、軟件設(shè)計(jì)規(guī)格說(shuō)明、源代碼等;測(cè)試配置:測(cè)試計(jì)劃、測(cè)試用例、測(cè)試程序等;測(cè)試工具:測(cè)試數(shù)據(jù)自動(dòng)生成程序、靜態(tài)分析程序、動(dòng)態(tài)分析程序、測(cè)試結(jié)果分析程序、以及驅(qū)動(dòng)測(cè)試的測(cè)試數(shù)據(jù)庫(kù)等等。測(cè)試結(jié)果分析:比較實(shí)測(cè)結(jié)果與預(yù)期結(jié)果,評(píng)價(jià)錯(cuò)誤是否發(fā)生。排錯(cuò)(調(diào)試):對(duì)已經(jīng)發(fā)現(xiàn)的錯(cuò)誤進(jìn)行錯(cuò)誤定位和確定出錯(cuò)性質(zhì),并改正這些錯(cuò)誤,同時(shí)修改相關(guān)的文檔。修正后的文檔再測(cè)試:直到通過(guò)測(cè)試為止。通過(guò)收集和分析測(cè)試結(jié)果數(shù)據(jù),對(duì)軟件建立可靠性模型利用可靠性分析,評(píng)價(jià)軟件質(zhì)量:
軟件的質(zhì)量和可靠性達(dá)到可以接受的程度;
所做的測(cè)試不足以發(fā)現(xiàn)嚴(yán)重的錯(cuò)誤;如果測(cè)試發(fā)現(xiàn)不了錯(cuò)誤,可以肯定,測(cè)試配置考慮得不夠細(xì)致充分,錯(cuò)誤仍然潛伏在軟件中。測(cè)試與軟件開(kāi)發(fā)各階段的關(guān)系軟件開(kāi)發(fā)過(guò)程是一個(gè)自頂向下,逐步細(xì)化的過(guò)程軟件計(jì)劃階段定義軟件作用域軟件需求分析建立軟件信息域、功能和性能需求、約束等軟件設(shè)計(jì)把設(shè)計(jì)用某種程序設(shè)計(jì)語(yǔ)言轉(zhuǎn)換成程序代碼測(cè)試過(guò)程是依相反順序安排的自底向上,逐步集成的過(guò)程。軟件測(cè)試模型-V模型軟件測(cè)試模型-W模型軟件測(cè)試模型-V模型按照軟件開(kāi)發(fā)過(guò)程的階段來(lái)分根據(jù)測(cè)試執(zhí)行的特點(diǎn)來(lái)分按照測(cè)試用例依據(jù)的信息軟件測(cè)試方法分類1、按照軟件開(kāi)發(fā)過(guò)程的階段來(lái)分
(1)、軟件開(kāi)發(fā)過(guò)程中的測(cè)試
單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試;(2)軟件產(chǎn)品測(cè)試功能測(cè)試、性能測(cè)試、a測(cè)試、B測(cè)試;
(3)專門(mén)的軟件產(chǎn)品測(cè)試可靠性測(cè)試、標(biāo)準(zhǔn)符合性測(cè)試、互操作性測(cè)試、安全性測(cè)試、強(qiáng)度測(cè)試
2、根據(jù)測(cè)試執(zhí)行的特點(diǎn)來(lái)分(1)、動(dòng)態(tài)測(cè)試(2)、靜態(tài)測(cè)試3、按照測(cè)試方法來(lái)分(1)、白盒測(cè)試(2)、黒盒測(cè)試(3)、灰盒測(cè)試黑盒測(cè)試本質(zhì)特征:把測(cè)試對(duì)象看做一個(gè)黑盒子;測(cè)試依據(jù):完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)需求規(guī)格說(shuō)明書(shū);測(cè)試目的:檢查程序的功能是否符合它的功能說(shuō)明;黑盒測(cè)試又叫做功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。黑盒測(cè)試方法主要發(fā)現(xiàn)以下錯(cuò)誤:
是否有不正確或遺漏了的功能?
輸入能否正確地接受?能否輸出正確的結(jié)果?性能上是否能夠滿足要求?
是否有初始化或終止性錯(cuò)誤?
用黑盒方法測(cè)試程序,必須:窮舉所有可能的輸入條件;容易引發(fā)爆炸問(wèn)題。如:程序P有:
輸入量X和Y;
輸出量Z。限制:X、Y、Z的字長(zhǎng)為32位。要求:計(jì)算黑盒方法的測(cè)試數(shù)目。白盒測(cè)試本質(zhì)特征:把測(cè)試對(duì)象看做透明盒子;測(cè)試依據(jù):利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例測(cè)試目的:對(duì)程序內(nèi)部邏輯路徑進(jìn)行測(cè)試白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。白盒測(cè)試方法主要檢查:對(duì)程序模塊的所有獨(dú)立的執(zhí)行路徑至少測(cè)試一次;對(duì)所有的邏輯判定,取“真”與取“假”的兩種情況都至少測(cè)試一次;在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán);測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性等。窮舉測(cè)試:窮舉程序內(nèi)部的所有路徑;導(dǎo)致爆炸問(wèn)題;如下圖:計(jì)算路徑數(shù)量。黑盒測(cè)試的測(cè)試用例設(shè)計(jì)
等價(jià)類劃分
邊界值分析
錯(cuò)誤推測(cè)法
因果圖場(chǎng)景分析法等價(jià)類劃分依據(jù):完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說(shuō)明來(lái)設(shè)計(jì)測(cè)試用例。概念:等價(jià)類是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的。測(cè)試某等價(jià)類的代表值就等價(jià)于對(duì)這一類其它值的測(cè)試思想:等價(jià)類劃分方法把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分,然后從每一部分中選取少數(shù)有代表性的數(shù)據(jù)做為測(cè)試用例。步驟:劃分等價(jià)類(列出等價(jià)類表)*
選取測(cè)試用例等價(jià)類劃分等價(jià)類的劃分有兩種不同的情況:
①
有效等價(jià)類:是指對(duì)于程序的規(guī)格說(shuō)明來(lái)說(shuō),是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。
②
無(wú)效等價(jià)類:是指對(duì)于程序的規(guī)格說(shuō)明來(lái)說(shuō),是不合理的,無(wú)意義的輸入數(shù)據(jù)構(gòu)成的集合。在設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮有效等價(jià)類和無(wú)效等價(jià)類的設(shè)計(jì)。劃分等價(jià)類劃分等價(jià)類等價(jià)類的原則。
(1)
如果輸入條件規(guī)定了取值范圍,或值的個(gè)數(shù),則可以確立一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類。
例如,在程序的規(guī)格說(shuō)明中,對(duì)輸入條件有一句話:
“……項(xiàng)數(shù)可以從1到999……”
則有效等價(jià)類是“1≤項(xiàng)數(shù)≤999”兩個(gè)無(wú)效等價(jià)類是“項(xiàng)數(shù)<1”或“項(xiàng)數(shù)>999”。在數(shù)軸上表示成:
(2)如果輸入條件規(guī)定了輸入值的集合,或者是規(guī)定了“必須如何”的條件,這時(shí)可確立一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。例如,在Pascal語(yǔ)言中對(duì)變量標(biāo)識(shí)符規(guī)定為“以字母打頭的……串”。那么所有以字母打頭的構(gòu)成有效等價(jià)類,而不在此集合內(nèi)(不以字母打頭)的歸于無(wú)效等價(jià)類。
(3)如果輸入條件是一個(gè)布爾量,則可以確定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。
(4)如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序要對(duì)每個(gè)輸入值分別進(jìn)行處理。這時(shí)可為每一個(gè)輸入值確立一個(gè)有效等價(jià)類,此外針對(duì)這組值確立一個(gè)無(wú)效等價(jià)類,它是所有不允許的輸入值的集合。例如,在教師上崗方案中規(guī)定對(duì)教授、副教授、講師和助教分別計(jì)算分?jǐn)?shù),做相應(yīng)的處理。因此可以確定4個(gè)有效等價(jià)類為教授、副教授、講師和助教,一個(gè)無(wú)效等價(jià)類,它是所有不符合以上身分的人員的輸入值的集合。
(5)如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無(wú)效等價(jià)類(從不同角度違反規(guī)則)。例如,Pascal語(yǔ)言規(guī)定“一個(gè)語(yǔ)句必須以分號(hào)‘;’結(jié)束”??梢源_定:一個(gè)有效等價(jià)類“以‘;’結(jié)束”,若干個(gè)無(wú)效等價(jià)類“以‘:’結(jié)束”、“以‘,’結(jié)束”、“以‘’結(jié)束”、“以LF結(jié)束”等。確立測(cè)試用例
在確立了等價(jià)類之后,建立等價(jià)類表,列出所有劃分出的等價(jià)類。按以下原則選擇測(cè)試用例:
(1)
為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一編號(hào);
(2)
設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價(jià)類,重復(fù)這一步,直到所有的有效等價(jià)類都被覆蓋為止;
(3)
設(shè)計(jì)一個(gè)新的測(cè)試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無(wú)效等價(jià)類,重復(fù)這一步,直到所有的無(wú)效等價(jià)類都被覆蓋為止。舉例我們可以設(shè)三角形的3條邊分別為A,B,C。如果它們能夠構(gòu)成三角形的3條邊,必須滿足:A>0,B>0,C>0,且A+B>C,B+C>A,A+C>B。如果是等腰的,還要判斷A=B,或B=C,或A=C。如果是等邊的,則需判斷是否A=B,且B=C,且A=C。舉例輸入條件有效等價(jià)類無(wú)效等價(jià)類是否三角形的三條邊(A>0),(1)(B>0),(2)(C>0),(3)(A+B>C),(4)(B+C>A),(5)(A+C>B),(6)(A≤0),(7)(B≤0),(8)(C≤0),(9)(A+B≤C),(10)(B+C≤A),(11)(A+C≤B),(12)是否等腰三角形(A=B),(13)(B=C),(14)(C=A),(15)(A≠B)and(B≠C)and(C≠A)(16)是否等邊三角形(A=B)and(B=C)and(C=A)(17)(A≠B),(18)(B≠C),(19)(C≠A),(20)舉例序號(hào)【A,B,C】覆蓋等價(jià)類輸出1【3,4,5】(1),(2),(3),(4),(5),(6)一般三角形2【0,1,2】(7)不能構(gòu)成三角形3【1,0,2】(8)4【1,2,0】(9)5【1,2,3】(10)6【1,3,2】(11)7【3,1,2】(12)8【3,3,4】(1),(2),(3),(4),(5),(6),(13)等腰三角形9【3,4,4】(1),(2),(3),(4),(5),(6),(14)10【3,4,3】(1),(2),(3),(4),(5),(6),(15)11【3,4,5】(1),(2),(3),(4),(5),(6),(16)非等腰三角形12【3,3,3】(1),(2),(3),(4),(5),(6),(17)是等邊三角形13【3,4,4】(1),(2),(3),(4),(5),(6),(14),(18)非等邊三角形14【3,4,3】(1),(2),(3),(4),(5),(6),(15),(19)15【3,3,4】(1),(2),(3),(4),(5),(6),(13),(20)注意:
選擇分類時(shí)必須仔細(xì)——等價(jià)類劃分的目標(biāo)縮減測(cè)試用例集,但仍然足以測(cè)試軟件。因?yàn)檫x擇了不完全測(cè)試,就要冒風(fēng)險(xiǎn).
例2:某一PASCAL語(yǔ)言規(guī)定:標(biāo)識(shí)符是由字母開(kāi)頭;
后跟字母或數(shù)字的任意組合構(gòu)成。有效字符數(shù)為8個(gè)”且
標(biāo)識(shí)符必須先說(shuō)明,再使用。
在同一說(shuō)明語(yǔ)句中,標(biāo)識(shí)符至少必須有一個(gè)?!?/p>
用等價(jià)類劃分方法,建立輸入等價(jià)類表:下面選取了9個(gè)測(cè)試用例,它們覆蓋了所有的等價(jià)類。
①VARx,T1234567:REAL;
BEGINx:=3.414;
T1234567:=2.732;
...…(1),(2),(4),(8),(9),(12),(14)
②VAR:REAL;
(3)
③VARx,:REAL;(5)
④VART12345678:REAL;
(6)⑤VART12345......:REAL;
(7)
多于80個(gè)字符⑥VART$:CHAR;
(10)⑦VARGOTO:INTEGER;
(11)⑧VAR2T:REAL;
(13)⑨VARPAR:REAL;
(15)
BEGIN......
PAP:=SIN(3.14*0.8)/6;邊界值分析邊界值分析也是一種黑盒測(cè)試方法,是對(duì)等價(jià)類劃分方法的補(bǔ)充。人們從長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)得知,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。
比如,在做三角形計(jì)算時(shí),要輸入三角形的三個(gè)邊長(zhǎng):A、B和C。我們應(yīng)注意到這三個(gè)數(shù)值應(yīng)當(dāng)滿足
A>0、B>0、C>0、
A+B>C、A+C>B、B+C>A,才能構(gòu)成三角形。但如果把六個(gè)不等式中的任何一個(gè)大于號(hào)“>”錯(cuò)寫(xiě)成大于等于號(hào)“≥”,那就不能構(gòu)成三角形。問(wèn)題恰出現(xiàn)在容易被疏忽的邊界附近。思想:五點(diǎn)法或七點(diǎn)法練習(xí)1、偽代碼測(cè)試條件IFV_X>=5.PERFORM
RunningAELSE.PERFORMRunningBENDIF.V_X=4V_X=5V_X=6練習(xí)2、偽代碼測(cè)試條件IFV_X=5ANDV_Y=6.PERFORMA_SUCCESS.ELSE.PERFORMA_ERROR.ENDIF.V_X=5
且V_Y=6V_X≠5
且
V_Y=6V_X=5
且
V_Y≠6V_X≠5
且
V_Y≠6一些原則1)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值作為測(cè)試輸入數(shù)據(jù).
2)如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù),最小個(gè)數(shù),比最小個(gè)數(shù)少一,比最大個(gè)數(shù)多一的數(shù)作為測(cè)試數(shù)據(jù).
3)根據(jù)規(guī)格說(shuō)明的每個(gè)輸出條件,使用前面的原則1).
4)根據(jù)規(guī)格說(shuō)明的每個(gè)輸出條件,應(yīng)用前面的原則2).
5)如果程序的規(guī)格說(shuō)明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個(gè)元素和最后一個(gè)元素作為測(cè)試用例.
6)如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測(cè)試用例.
7)分析規(guī)格說(shuō)明,找出其它可能的邊界條件.邊界條件類型情況數(shù)值速度字符地點(diǎn)位置尺寸數(shù)量第一個(gè)/最后一個(gè)最小值/最大值開(kāi)始/完成超過(guò)/在內(nèi)空/滿最短/最長(zhǎng)最慢/最快最早/最遲最大/最小最高/最低相鄰/最遠(yuǎn)邊界條件特征情況錯(cuò)誤推測(cè)法人們也可以靠經(jīng)驗(yàn)和直覺(jué)推測(cè)程序中可能存在的各種錯(cuò)誤,從而有針對(duì)性地編寫(xiě)檢查這些錯(cuò)誤的例子。這就是錯(cuò)誤推測(cè)法。錯(cuò)誤推測(cè)法的基本想法是:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)它們選擇測(cè)試用例。因果圖
如果在測(cè)試時(shí)必須考慮輸入條件的各種組合,需要利用因果圖分析方法。
因果圖方法最終生成的就是判定表。它適合于檢查程序輸入條件的各種組合情況。用因果圖生成測(cè)試用例的基本步驟
(1)
分析軟件規(guī)格說(shuō)明描述中,哪些是原因,哪些是結(jié)果,并賦予標(biāo)識(shí)符。
(2)
分析原因與結(jié)果、原因與原因的對(duì)應(yīng)關(guān)系,畫(huà)因果圖。
(3)標(biāo)記特殊情況。
(4)
把因果圖轉(zhuǎn)換成判定表。
(5)
把判定表的每一列拿出來(lái)作為依據(jù),設(shè)計(jì)測(cè)試用例。
在因果圖中出現(xiàn)的基本符號(hào)
通常在因果圖中用Ci表示原因,用Ei表示結(jié)果,各結(jié)點(diǎn)表示狀態(tài),可取值“0”或“1”。“0”表示某狀態(tài)不出現(xiàn),“1”表示某狀態(tài)出現(xiàn)。主要的原因和結(jié)果之間的關(guān)系有:表示約束條件的符號(hào)
為了表示原因與原因之間,結(jié)果與結(jié)果之間可能存在的約束條件,在因果圖中可以附加一些表示約束條件的符號(hào)。
例如,有一個(gè)處理單價(jià)為5角錢(qián)的飲料的自動(dòng)售貨機(jī)軟件測(cè)試用例的設(shè)計(jì)。其規(guī)格說(shuō)明如下:
若投入5角錢(qián)或1元錢(qián)的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應(yīng)的飲料就送出來(lái)。若售貨機(jī)沒(méi)有零錢(qián)找,則一個(gè)顯示〖零錢(qián)找完〗的紅燈亮,這時(shí)在投入1元硬幣并押下按鈕后,飲料不送出來(lái)而且1元硬幣也退出來(lái);若有零錢(qián)找,則顯示〖零錢(qián)找完〗的紅燈滅,在送出飲料的同時(shí)退還5角硬幣?!?1)分析這一段說(shuō)明,列出原因和結(jié)果
原因:1.
售貨機(jī)有零錢(qián)找
2.
投入1元硬幣
3.
投入5角硬幣
4.
押下橙汁按鈕
5.
押下啤酒按鈕
建立中間結(jié)點(diǎn),表示處理中間狀態(tài)
11.
投入1元硬幣且押下飲料按鈕
12.
押下〖橙汁〗或〖啤酒〗的按鈕
13.
應(yīng)當(dāng)找5角零錢(qián)并且售貨機(jī)有零錢(qián)找
14.
錢(qián)已付清
結(jié)果:21.
售貨機(jī)〖零錢(qián)找完〗燈亮
22.
退還1元硬幣
23.
退還5角硬幣
24.
送出橙汁飲料
25.
送出啤酒飲料
(2)畫(huà)出因果圖。所有原因結(jié)點(diǎn)列在左 邊,所有結(jié)果結(jié)點(diǎn)列在右邊。
(3)
由于2與3,4與5不能同時(shí)發(fā)生,
分別加上約束條件E。
(4)因果圖
(5)轉(zhuǎn)換成判定表
場(chǎng)景法
現(xiàn)在的軟件幾乎都是用事件觸發(fā)來(lái)控制流程的,事件觸發(fā)時(shí)的情景便形成了場(chǎng)景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。提出這種測(cè)試思想的是Rational公司。用例場(chǎng)景用來(lái)描述流經(jīng)用例的路徑,從用例開(kāi)始到結(jié)束遍歷這條路徑上所有基本流和備選流?;玖骱蛡溥x流基本流和備選流按照上圖中每個(gè)經(jīng)過(guò)用例的路徑,可確定用例場(chǎng)景:場(chǎng)景1基本流場(chǎng)景2基本流備選流1場(chǎng)景3基本流備選流1備選流2場(chǎng)景4基本流備選流3場(chǎng)景5基本流備選流3備選流1場(chǎng)景6基本流備選流3備選流1備選流2場(chǎng)景7基本流備選流4場(chǎng)景8基本流備選流3備選流4注:為方便起見(jiàn),場(chǎng)景5、6和8只考慮了備選流3循環(huán)執(zhí)行一次的情況。舉例白盒測(cè)試的測(cè)試用例設(shè)計(jì)
邏輯覆蓋基本路徑測(cè)試邏輯覆蓋
語(yǔ)句覆蓋
判定覆蓋
條件覆蓋
判定-條件覆蓋
條件組合覆蓋邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計(jì)測(cè)試用例的技術(shù)。它屬白盒測(cè)試。設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得每一可執(zhí)行語(yǔ)句至少執(zhí)行一次一、語(yǔ)句覆蓋例一:程序Intfunction(boola,boolb,boolc){intx;X=0;If(a&&(b||c))X=1;returnx;}開(kāi)始X=0(a)AND(bORc)X=1T結(jié)束F測(cè)試用例
為了使上述程序中的每條語(yǔ)句都能夠至少執(zhí)行一次,我們構(gòu)造以下測(cè)試用例就可實(shí)現(xiàn)。
a=T,b=T,c=T。例二:1:PRINT“HelloWorld”2:IFDate$=“01-01-2000”THEN3:PRINT“HappyNewYear”4:ENDIF5:PRINT“Thedateis:”;Date$6:PRINT“Thetimeis:”;Time$7:END測(cè)試用例Date$ 執(zhí)行語(yǔ)句行01-01-20001,2,3,4,5,6,7設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得程序中每個(gè)判斷的取真分支和取假分支至少經(jīng)歷一次,判定覆蓋又稱為分支覆蓋。二、判定覆蓋例一:開(kāi)始X=0(a)AND(bORc)X=1T結(jié)束F測(cè)試用例為了使上述程序中的每個(gè)判定能夠至少執(zhí)行一次,我們構(gòu)造以下測(cè)試用例就可實(shí)現(xiàn)。a=T,b=T,c=T。a=F,b=F,c=F。例二:1:PRINT“HelloWorld”2:IFDate$=“01-01-2000”ANDTime$=“00:00:00”THEN3:PRINT“HappyNewYear”4:ENDIF5:PRINT“Thedateis:”;Date$6:PRINT“Thetimeis:”;Time$7:END測(cè)試用例Date$Time$執(zhí)行語(yǔ)句行01-01-000011:11:111,2,5,6,701-01-000000:00:001,2,5,6,701-01-200011:11:111,2,5,6,701-01-200000:00:001,2,3,4,5,6,7三、條件覆蓋設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得程序中每個(gè)判斷的每個(gè)邏輯條件的可能取值至少執(zhí)行一次。如在我們前面的例子中,判定:(a)AND(bORc)包含了三個(gè)條件:a,b,c。例一:開(kāi)始X=0(a)AND(bORc)X=1T結(jié)束F測(cè)試用例為了使程序達(dá)到100%的條件覆蓋,可是使用以下測(cè)試用例。a=F,b=T,c=F。a=T,b=F,c=T。注意仔細(xì)分析可發(fā)現(xiàn),上述用例在滿足條件覆蓋的同時(shí),把判定的兩個(gè)分支也覆蓋了,這是否可以說(shuō),達(dá)到條件覆蓋就必然實(shí)現(xiàn)了判定覆蓋呢?如選擇a=F,b=T,c=Ta=T,b=F,c=F發(fā)現(xiàn)覆蓋了條件的用例并未覆蓋分支。條件覆蓋序號(hào)abcA&&(b||c)條件覆蓋(%)判定覆蓋%1FTTF100502TFFF例二:1:PRINT“HelloWorld”2:IFDate$=“01-01-2000”ANDTime$=“00:00:00”THEN3:PRINT“HappyNewYear”4:ENDIF5:PRINT“Thedateis:”;Date$6:PRINT“Thetimeis:”;Time$7:END測(cè)試用例Date$Time$執(zhí)行語(yǔ)句行01-01-0000 11:11:111,2,5,6,701-01-000000:00:001,2,5,6,701-01-200011:11:111,2,5,6,701-01-200000:00:001,2,3,4,5,6,7四、判定-條件覆蓋設(shè)計(jì)足夠的測(cè)試用例,使得:判斷中每個(gè)條件的所有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判定的所有可能取值至少執(zhí)行一次。例一:開(kāi)始X=0(a)AND(bORc)X=1T結(jié)束F測(cè)試用例為了滿足100%條件判定組合覆蓋,使用以下測(cè)試用例。a=T,b=T,c=T。a=F,b=F,c=F。五、條件組合覆蓋設(shè)計(jì)足夠的測(cè)試用例,運(yùn)行被測(cè)程序,使得每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次。顯然,滿足多條件覆蓋的測(cè)試用例是一定滿足判定覆蓋、條件覆蓋和條件判定組合覆蓋的。測(cè)試用例(2^3=8)序號(hào)abcA&&(b||c)1TTTT2TTFT3TFTT4TFFF5FTTF6FTFF7FFTF8FFFF覆蓋率使用原則覆蓋率不是目的,只是一種手段不可能針對(duì)所有的覆蓋指標(biāo)進(jìn)行測(cè)試,但如果只考慮一種覆蓋率指標(biāo)也是不恰當(dāng)?shù)牟灰非蠼^對(duì)100%的覆蓋率各種覆蓋率評(píng)價(jià)覆蓋率度量評(píng)價(jià)標(biāo)準(zhǔn)可自動(dòng)化性可獲得性可理解性可維護(hù)性完整性語(yǔ)句覆蓋好好好好差判定覆蓋好好好好較差判定條件覆蓋較好好好好較好條件組合覆蓋較好較好較好好較好基本路徑測(cè)試基本路徑測(cè)試方法把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),程序中的循環(huán)體最多只執(zhí)行一次。它是在程序控制流圖的基礎(chǔ)上,分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,設(shè)計(jì)測(cè)試用例的方法。設(shè)計(jì)出的測(cè)試用例要保證在測(cè)試中,程序的每一個(gè)可執(zhí)行語(yǔ)句至少要執(zhí)行一次。
1.程序的控制流圖符號(hào)○為控制流圖的一個(gè)結(jié)點(diǎn),表示一個(gè)或多個(gè)無(wú)分支的PDL語(yǔ)句或源程序語(yǔ)句。箭頭為邊,表示控制流的方向。在選擇或多分支結(jié)構(gòu)中,分支的匯聚處應(yīng)有一個(gè)匯聚結(jié)點(diǎn)。邊和結(jié)點(diǎn)圈定的區(qū)域叫做區(qū)域,當(dāng)對(duì)區(qū)域計(jì)數(shù)時(shí),圖形外的區(qū)域也應(yīng)記為一個(gè)區(qū)域。如果判斷中的條件表達(dá)式是由一個(gè)或多個(gè)邏輯運(yùn)算符
(OR,AND,...)
連接的復(fù)合條件表達(dá)式,則需改為一系列只有單個(gè)條件的嵌套的判斷。2.程序環(huán)路復(fù)雜性程序的環(huán)路復(fù)雜性給出了程序基本路徑集中的獨(dú)立路徑條數(shù),這是確保程序中每個(gè)可執(zhí)行語(yǔ)句至少執(zhí)行一次所必需的測(cè)試用例數(shù)目的上界。從控制流圖來(lái)看,一條獨(dú)立路徑是至少包含有一條在其它獨(dú)立路徑中從未有過(guò)的邊的路徑。例如,在圖示的控制流圖中,一組獨(dú)立的路徑是
path1:1-11
path2:1-2-3-4-5-10-1-11
path3:1-2-3-6-8-9-10-1-11
path4:1-2-3-6-7-9-10-1-11路徑path1,path2,path3,path4組成了控制流圖的一個(gè)基本路徑集。3.導(dǎo)出測(cè)試用例導(dǎo)出測(cè)試用例,確?;韭窂郊械拿恳粭l路徑的執(zhí)行。根據(jù)判斷結(jié)點(diǎn)給出的條件,選擇適當(dāng)?shù)臄?shù)據(jù)以保證某一條路徑可以被測(cè)試到
—用邏輯覆蓋方法。每個(gè)測(cè)試用例執(zhí)行之后,與預(yù)期結(jié)果進(jìn)行比較。如果所有測(cè)試用例都執(zhí)行完畢,則可以確信程序中所有的可執(zhí)行語(yǔ)句至少被執(zhí)行了一次。必須注意,一些獨(dú)立的路徑(如例中的路徑1),往往不是完全孤立的,有時(shí)它是程序正常的控制流的一部分,這時(shí),這些路徑的測(cè)試可以是另一條路徑測(cè)試的一部分。
軟件測(cè)試的策略測(cè)試過(guò)程按4個(gè)步驟進(jìn)行,即單元測(cè)試、組裝測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。開(kāi)始是單元測(cè)試,集中對(duì)用源代碼實(shí)現(xiàn)的每一個(gè)程序單元進(jìn)行測(cè)試,檢查各個(gè)程序模塊是否正確地實(shí)現(xiàn)了規(guī)定的功能。組裝測(cè)試把已測(cè)試過(guò)的模塊組裝起來(lái),主要對(duì)與設(shè)計(jì)相關(guān)的軟件體系結(jié)構(gòu)的構(gòu)造進(jìn)行測(cè)試。確認(rèn)測(cè)試則是要檢查已實(shí)現(xiàn)的軟件是否滿足了需求規(guī)格說(shuō)明中確定了的各種需求,以及軟件配置是否完全、正確。系統(tǒng)測(cè)試把已經(jīng)經(jīng)過(guò)確認(rèn)的軟件納入實(shí)際運(yùn)行環(huán)境中,與其它系統(tǒng)成份組合在一起進(jìn)行測(cè)試。單元測(cè)試(UnitTesting)單元測(cè)試又稱模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的最小單位─程序模塊,進(jìn)行正確性檢驗(yàn)的測(cè)試工作。其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯(cuò)。單元測(cè)試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例。多個(gè)模塊可以平行地獨(dú)立進(jìn)行單元測(cè)試。1.單元測(cè)試的內(nèi)容在單元測(cè)試時(shí),測(cè)試者需要依據(jù)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)和源程序清單,主要采用白盒測(cè)試的測(cè)試用例,輔之以黑盒測(cè)試的測(cè)試用例,使之對(duì)任何合理的輸入和不合理的輸入,都能鑒別和響應(yīng)。
(1)模塊接口測(cè)試在單元測(cè)試的開(kāi)始,應(yīng)對(duì)通過(guò)被測(cè)模塊的數(shù)據(jù)流進(jìn)行測(cè)試。測(cè)試項(xiàng)目包括:調(diào)用本模塊的輸入?yún)?shù)是否正確;本模塊調(diào)用子模塊時(shí)輸入給子模塊的參數(shù)是否正確;全局量的定義在各模塊中是否一致;
在做內(nèi)外存交換時(shí)要考慮:文件屬性是否正確;
OPEN與CLOSE語(yǔ)句是否正確;緩沖區(qū)容量與記錄長(zhǎng)度是否匹配;在進(jìn)行讀寫(xiě)操作之前是否打開(kāi)了文件;在結(jié)束文件處理時(shí)是否關(guān)閉了文件;正文書(shū)寫(xiě)/輸入錯(cuò)誤,
I/O錯(cuò)誤是否檢查并做了處理。
(2)局部數(shù)據(jù)結(jié)構(gòu)測(cè)試不正確或不一致的數(shù)據(jù)類型說(shuō)明使用尚未賦值或尚未初始化的變量錯(cuò)誤的初始值或錯(cuò)誤的缺省值變量名拼寫(xiě)錯(cuò)或書(shū)寫(xiě)錯(cuò)不一致的數(shù)據(jù)類型全局?jǐn)?shù)據(jù)對(duì)模塊的影響
(3)路徑測(cè)試選擇適當(dāng)?shù)臏y(cè)試用例,對(duì)模塊中重要的執(zhí)行路徑進(jìn)行測(cè)試。應(yīng)當(dāng)設(shè)計(jì)測(cè)試用例查找由于錯(cuò)誤的計(jì)算、不正確的比較或不正常的控制流而導(dǎo)致的錯(cuò)誤。對(duì)基本執(zhí)行路徑和循環(huán)進(jìn)行測(cè)試可以發(fā)現(xiàn)大量的路徑錯(cuò)誤。(4)錯(cuò)誤處理測(cè)試出錯(cuò)的描述是否難以理解出錯(cuò)的描述是否能夠?qū)﹀e(cuò)誤定位顯示的錯(cuò)誤與實(shí)際的錯(cuò)誤是否相符對(duì)錯(cuò)誤條件的處理正確與否在對(duì)錯(cuò)誤進(jìn)行處理之前,錯(cuò)誤條件是否已經(jīng)引起系統(tǒng)的干預(yù)等(5)邊界測(cè)試注意數(shù)據(jù)流、控制流中剛好等于、大于或小于確定的比較值時(shí)出錯(cuò)的可能性。對(duì)這些地方要仔細(xì)地選擇測(cè)試用例,認(rèn)真加以測(cè)試。如果對(duì)模塊運(yùn)行時(shí)間有要求的話,還要專門(mén)進(jìn)行關(guān)鍵路徑測(cè)試,以確定最壞情況下和平均意義下影響模塊運(yùn)行時(shí)間的因素。
2.單元測(cè)試的步驟模塊并不是一個(gè)獨(dú)立的程序,在考慮測(cè)試模塊時(shí),同時(shí)要考慮它和外界的聯(lián)系,用一些輔助模塊去模擬與被測(cè)模塊相聯(lián)系的其它模塊。
驅(qū)動(dòng)模塊(driver)
樁模塊(stub)如果一個(gè)模塊以包的形式出現(xiàn),可將該模塊看成由幾個(gè)小程序組成。必須對(duì)其中的每個(gè)小程序先進(jìn)行單元測(cè)試要做的工作,對(duì)關(guān)鍵模塊還要做性能測(cè)試。對(duì)支持某些標(biāo)準(zhǔn)規(guī)程的程序,更要著手進(jìn)行互聯(lián)測(cè)試。組裝測(cè)試(IntegratedTesting)組裝測(cè)試(集成測(cè)試、聯(lián)合測(cè)試)通常,在單元測(cè)試的基礎(chǔ)上,需要將所有模塊按照設(shè)計(jì)要求組裝成為系統(tǒng)。這時(shí)需要考慮的問(wèn)題是:在把各個(gè)模塊連接起來(lái)的時(shí)侯,穿越模塊接口的數(shù)據(jù)是否會(huì)丟失;
一個(gè)模塊的功能是否會(huì)對(duì)另一個(gè)模塊的功能產(chǎn)生不利的影響;
各個(gè)子功能組合起來(lái),能否達(dá)到預(yù)期要求的父功能;
全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問(wèn)題;
單個(gè)模塊的誤差累積起來(lái),是否會(huì)放大,從而達(dá)到不能接受的程度。
把模塊組裝成為系統(tǒng)的方式有兩種一次性組裝方式增殖式組裝方式1.一次性組裝方式(bigbang)它是一種非增殖式組裝方式。也叫做整體拼裝。首先對(duì)每個(gè)模塊分別進(jìn)行模塊測(cè)試;然后把所有模塊組裝在一起進(jìn)行測(cè)試;最終得到要求的軟件系統(tǒng)。2.增殖式組裝方式這種組裝方式又稱漸增式組裝首先對(duì)一個(gè)個(gè)模塊進(jìn)行模塊測(cè)試,然后將這些模塊逐步組裝成較大的系統(tǒng)在組裝的過(guò)程中邊連接邊測(cè)試,以發(fā)現(xiàn)連接過(guò)程中產(chǎn)生的問(wèn)題。
(1)自頂向下的增殖方式這種組裝方式將模塊按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進(jìn)行組裝。自頂向下的增殖方式在測(cè)試過(guò)程中較早地驗(yàn)證了主要的控制和判斷點(diǎn)。選用按深度方向組裝的方式,可以首先實(shí)現(xiàn)和驗(yàn)證一個(gè)完整的軟件功能。(2)自底向上的增殖方式這種組裝的方式是從程序模塊結(jié)構(gòu)的最底層的模塊開(kāi)始組裝和測(cè)試。因?yàn)槟K是自底向上進(jìn)行組裝,所以不再需要樁模塊。自頂向下增殖的方式和自底向上增殖的方式各有優(yōu)缺點(diǎn)。一般來(lái)講,一種方式的優(yōu)點(diǎn)是另一種方式的缺點(diǎn)。(3)混合增殖式測(cè)試衍變的自頂向下的增殖測(cè)試強(qiáng)化輸入/輸出模塊和引入新算法模塊的測(cè)試;
再自底向上組裝成為功能相當(dāng)完整且相對(duì)獨(dú)立的子系統(tǒng);
然后由主模塊開(kāi)始自頂向下進(jìn)行增殖測(cè)試。自底向上
自頂向下的增殖測(cè)試首先對(duì)含讀操作的子系統(tǒng)自底向上直至根結(jié)點(diǎn)模塊進(jìn)行組裝和測(cè)試;
然后對(duì)含寫(xiě)操作的子系統(tǒng)做自頂向下的組裝與測(cè)試?;貧w測(cè)試這種方式采取自頂向下的方式測(cè)試被修改的模塊及其子模塊;
然后將這一部分視為子系統(tǒng),再自底向上測(cè)試。關(guān)鍵模塊問(wèn)題在組裝測(cè)試時(shí),應(yīng)當(dāng)確定關(guān)鍵模塊,對(duì)這些關(guān)鍵模塊及早進(jìn)行測(cè)試。關(guān)鍵模塊的特征:
①滿足某些軟件需求;
②在程序的模塊結(jié)構(gòu)中位于較高的層次(高層控制模塊);
③較復(fù)雜、較易發(fā)生錯(cuò)誤;
④有明確定義的性能要求。
確認(rèn)測(cè)試(ValidationTesting)確認(rèn)測(cè)試又稱有效性測(cè)試。任務(wù)是驗(yàn)證軟件的功能和性能及其它特性是否與用戶的要求一致。對(duì)軟件的功能和性能要求在軟件需求規(guī)格說(shuō)明書(shū)中已經(jīng)明確規(guī)定。它包含的信息就是軟件確認(rèn)測(cè)試的基礎(chǔ)。1.進(jìn)行有效性測(cè)試(黑盒測(cè)試)有效性測(cè)試是在模擬環(huán)境下,運(yùn)用黑盒測(cè)試方法,驗(yàn)證被測(cè)軟件是否滿足需求規(guī)格說(shuō)明書(shū)的需求。步驟:制定測(cè)試計(jì)劃、準(zhǔn)備測(cè)試方案、設(shè)計(jì)測(cè)試用例、執(zhí)行測(cè)試等。通過(guò)實(shí)施預(yù)定的測(cè)試計(jì)劃和測(cè)試步驟,確定軟件的特性是否與需求相符;所有的文檔都是正確且便于使用;同時(shí),對(duì)其它軟件需求,例如可移植性、兼容性、出錯(cuò)自動(dòng)恢復(fù)、可維護(hù)性等,也都要進(jìn)行測(cè)試在全部軟件測(cè)試的測(cè)試用例運(yùn)行完后,所有的測(cè)試結(jié)果可以分為兩類:
測(cè)試結(jié)果與預(yù)期的結(jié)果相符。
測(cè)試結(jié)果與預(yù)期的結(jié)果不符。2.軟件配置復(fù)查
軟件配置復(fù)查的目的是保證軟件配置的所有成分都齊全;各方面的質(zhì)量都符合要求;具有維護(hù)階段所必需的細(xì)節(jié);而且已經(jīng)編排好分類的目錄。應(yīng)當(dāng)嚴(yán)格遵守用戶手冊(cè)和操作手冊(cè)中規(guī)定的使用步驟,以便檢查完整性和正確性。3、α測(cè)試和β測(cè)試在軟件交付使用之后,用戶將如何實(shí)際使用程序,對(duì)于開(kāi)發(fā)者來(lái)說(shuō)是無(wú)法預(yù)測(cè)的。α測(cè)試是由一個(gè)用戶在開(kāi)發(fā)環(huán)境下進(jìn)行的測(cè)試,也可以是公司內(nèi)部的用戶在模擬實(shí)際操作環(huán)境下進(jìn)行的測(cè)試。α測(cè)試的目的是評(píng)價(jià)軟件產(chǎn)品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。注重產(chǎn)品界面和特色。α測(cè)試從軟件產(chǎn)品編碼結(jié)束之時(shí)開(kāi)始,也可以在確認(rèn)測(cè)試過(guò)程中產(chǎn)品達(dá)到一定的穩(wěn)定和可靠程度之后再開(kāi)始。
β測(cè)試是由軟件的多個(gè)用戶在實(shí)際使用環(huán)境下進(jìn)行的測(cè)試。測(cè)試時(shí),開(kāi)發(fā)者通常不在測(cè)試現(xiàn)場(chǎng)。因而,β測(cè)試是在開(kāi)發(fā)者無(wú)法控制的環(huán)境下進(jìn)行的軟件現(xiàn)場(chǎng)應(yīng)用。β測(cè)試主要衡量產(chǎn)品的FLURPS。著重于產(chǎn)品的支持性,包括文檔、客戶培訓(xùn)和支持產(chǎn)品生產(chǎn)能力。只有當(dāng)α測(cè)試達(dá)到一定的可靠程度時(shí),才能開(kāi)始β測(cè)試。4、驗(yàn)收測(cè)試(AcceptanceTesting)驗(yàn)收測(cè)試是以用戶為主的測(cè)試。軟件開(kāi)發(fā)人員和QA人員也應(yīng)參加。由用戶參加設(shè)計(jì)測(cè)試用例,使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測(cè)試。測(cè)試要點(diǎn):功能、性能、可移植性、兼容性、可維護(hù)性、錯(cuò)誤的恢復(fù)功能等。確認(rèn)測(cè)試的兩種結(jié)果:軟件可以接受軟件與客戶目標(biāo)有差異系統(tǒng)測(cè)試(SystemTesting)將軟件與計(jì)算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其它系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行環(huán)境下,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的組裝測(cè)試和確認(rèn)測(cè)試。系統(tǒng)測(cè)試的目的在于通過(guò)與系統(tǒng)的需求定義作比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合或與之矛盾的地方。測(cè)試種類功能測(cè)試 功能測(cè)試是在規(guī)定的一段時(shí)間內(nèi)運(yùn)行軟件系統(tǒng)的所有功能,以驗(yàn)證這個(gè)軟件系統(tǒng)有無(wú)嚴(yán)重錯(cuò)誤??煽啃詼y(cè)試 如果系統(tǒng)需求說(shuō)明書(shū)中有對(duì)可靠性的要求,則需進(jìn)行可靠性測(cè)試。 ①平均失效間隔時(shí)間MTBF(MeanTimeBetweenFailures)是否超過(guò)規(guī)定時(shí)限?
②因故障而停機(jī)的時(shí)間MTTR(MeanTimeToRepairs)在一年中應(yīng)不超過(guò)多少時(shí)間。
強(qiáng)度測(cè)試 強(qiáng)度測(cè)試是要檢查在系統(tǒng)運(yùn)行環(huán)境不正常乃至發(fā)生故障的情況下,系統(tǒng)可以運(yùn)行到何種程度的測(cè)試。例如:把輸入數(shù)據(jù)速率提高一個(gè)數(shù)量級(jí),確定輸入功能將如何響應(yīng)。設(shè)計(jì)需要占用最大存儲(chǔ)量或其它資源的測(cè)試用例進(jìn)行測(cè)試。設(shè)計(jì)出在虛擬存儲(chǔ)管理機(jī)制中引起“顛簸”的測(cè)試用例進(jìn)行測(cè)試。設(shè)計(jì)出會(huì)對(duì)磁盤(pán)常駐內(nèi)存的數(shù)據(jù)過(guò)度訪問(wèn)的測(cè)試用例進(jìn)行測(cè)試。
性能測(cè)試性能測(cè)試是要檢查系統(tǒng)是否滿足在需求說(shuō)明書(shū)中規(guī)定的性能。性能測(cè)試常常需要與強(qiáng)度測(cè)試結(jié)合起來(lái)進(jìn)行,并常要求同時(shí)進(jìn)行硬件和軟件檢測(cè)。通常,對(duì)軟件性能的檢測(cè)表現(xiàn)在以下幾個(gè)方面:響應(yīng)時(shí)間、吞吐量、輔助存儲(chǔ)區(qū),例如緩沖區(qū),工作區(qū)的大小等、處理精度,等等?;謴?fù)測(cè)試 恢復(fù)測(cè)試是要證實(shí)在克服硬件故障(包括掉電、硬件或網(wǎng)絡(luò)出錯(cuò)等)后,系統(tǒng)能否正常地繼續(xù)進(jìn)行工作,并不對(duì)系統(tǒng)造成任何損害。為此,可采用各種人工干預(yù)的手段,模擬硬件故障,故意造成軟件出錯(cuò)。并由此檢查:
錯(cuò)誤探測(cè)功能──系統(tǒng)能否發(fā)現(xiàn)硬件失效與故障;
能否切換或啟動(dòng)備用的硬件;在故障發(fā)生時(shí)能否保護(hù)正在運(yùn)行的作業(yè)和系統(tǒng)狀態(tài);在系統(tǒng)恢復(fù)后能否從最后記錄下來(lái)的無(wú)錯(cuò)誤狀態(tài)開(kāi)始繼續(xù)執(zhí)行作業(yè),等等。
掉電測(cè)試:其目的是測(cè)試軟件系統(tǒng)在發(fā)生電源中斷時(shí)能否保護(hù)當(dāng)時(shí)的狀態(tài)且不毀壞數(shù)據(jù),然后在電源恢復(fù)時(shí)從保留的斷點(diǎn)處重新進(jìn)行操作。
啟動(dòng)/停止測(cè)試 這類測(cè)試的目的是驗(yàn)證在機(jī)器啟動(dòng)及關(guān)機(jī)階段,軟件系統(tǒng)正確處理的能力。 這類測(cè)試包括
反復(fù)啟動(dòng)軟件系統(tǒng)
(例如,操作系統(tǒng)自舉、網(wǎng)絡(luò)的啟動(dòng)、應(yīng)用程序的調(diào)用等)
在盡可能多的情況下關(guān)機(jī)。配置測(cè)試這類測(cè)試是要檢查計(jì)算機(jī)系統(tǒng)內(nèi)各個(gè)設(shè)備或各種資源之間的相互聯(lián)結(jié)和功能分配中的錯(cuò)誤。它主要包括以下幾種:配置命令測(cè)試:驗(yàn)證全部配置命令的可操作性(有效性);特別對(duì)最大配置和最小配置要進(jìn)行測(cè)試。軟件配置和硬件配置都要測(cè)試。
安全性測(cè)試 安全性測(cè)試是要檢驗(yàn)在系統(tǒng)中已經(jīng)存在的系統(tǒng)安全性、保密性措施是否發(fā)揮作用,有無(wú)漏洞。模擬攻擊:正面攻擊或從側(cè)面、背面攻擊系統(tǒng)中易受損壞的那些部分;以系統(tǒng)輸入為突破口,利用輸入的容錯(cuò)性進(jìn)行正面攻擊;
申請(qǐng)和占用過(guò)多的資源壓垮系統(tǒng),以破壞安全措施,從而進(jìn)入系統(tǒng);故意使系統(tǒng)出錯(cuò),利用系統(tǒng)恢復(fù)的過(guò)程,竊取用戶口令及其它有用的信息;通過(guò)瀏覽殘留在計(jì)算機(jī)各種資源中的垃圾(無(wú)用信息),以獲取如口令,安全碼,譯碼關(guān)鍵字等信息;瀏覽全局?jǐn)?shù)據(jù),期望從中找到進(jìn)入系統(tǒng)的關(guān)鍵字;瀏覽那些邏輯上不存在,但物理上還存在的各種記錄和資料等??墒褂眯詼y(cè)試可使用性測(cè)試主要從使用的合理性和方便性等出發(fā),發(fā)現(xiàn)人為因素或使用上的問(wèn)題。要保證在足夠詳細(xì)的程度下,用戶界面便于使用;對(duì)輸入量可容錯(cuò)、響應(yīng)時(shí)間和響應(yīng)方式合理可行、輸出信息有意義、正確并前后一致;出錯(cuò)信息能夠引導(dǎo)用戶去解決問(wèn)題;軟件文檔全面、正規(guī)、確切??芍С中詼y(cè)試 這類測(cè)試是要驗(yàn)證系統(tǒng)的支持策略對(duì)于公司與用戶方面是否切實(shí)可行。它所采用的方法是
試運(yùn)行支持過(guò)程(如對(duì)有錯(cuò)部分打補(bǔ)丁的過(guò)程,熱線界面等);對(duì)其結(jié)果進(jìn)行質(zhì)量分析;
評(píng)審診斷工具;
維護(hù)過(guò)程、內(nèi)部維護(hù)文檔;
修復(fù)一個(gè)錯(cuò)誤所需平均最少時(shí)間。安裝測(cè)試 安裝測(cè)試的目的不是找軟件錯(cuò)誤,而是找安裝錯(cuò)誤。在安裝軟件系統(tǒng)時(shí),會(huì)有多種選擇。要分配和裝入文件與程序庫(kù)布置適用的硬件配置進(jìn)行程序的聯(lián)結(jié)。而安裝測(cè)試就是要找出在這些安裝過(guò)程中出現(xiàn)的錯(cuò)誤。過(guò)程測(cè)試在一些大型的系統(tǒng)中,部分工作由軟件自動(dòng)完成,其它工作則需由各種人員,包括操作員,數(shù)據(jù)庫(kù)管理員,終端用戶等,按一定規(guī)程同計(jì)算機(jī)配合,靠人工來(lái)完成。指定由人工完成的過(guò)程也需經(jīng)過(guò)仔細(xì)的檢查,這就是所謂的過(guò)程測(cè)試?;ミB測(cè)試互連測(cè)試是要驗(yàn)證兩個(gè)或多個(gè)不同的系統(tǒng)之間的互連性。兼容性測(cè)試這類測(cè)試主要想驗(yàn)證軟件產(chǎn)品在不同版本之間的兼容性。有兩類基本的兼容性測(cè)試:
向下兼容交錯(cuò)兼容容量測(cè)試容量測(cè)試是要檢驗(yàn)系統(tǒng)的能力最高能達(dá)到什么程度。例如,對(duì)于編譯程序,讓它處理特別長(zhǎng)的源程序;對(duì)于操作系統(tǒng),讓它的作業(yè)隊(duì)列“滿員”;對(duì)于信息檢索系統(tǒng),讓它使用頻率達(dá)到最大。 在使系統(tǒng)的全部資源達(dá)到“滿負(fù)荷”的情形下,測(cè)試系統(tǒng)的承受能力。
文檔測(cè)試 這種測(cè)試是檢查用戶文檔(如用戶手冊(cè))的清晰性和精確性。用戶文檔中所使用的例子必須在測(cè)試中一一試過(guò),確保敘述正確無(wú)誤。優(yōu)秀測(cè)試員應(yīng)具備的素質(zhì)具有編程方面的知識(shí),不會(huì)害怕進(jìn)入陌生環(huán)境。善于發(fā)現(xiàn)問(wèn)題的癥結(jié),喜歡解謎。不放過(guò)任何蛛絲馬跡具有創(chuàng)造性力求完美,不去苛求,而是盡力接近目標(biāo)判斷準(zhǔn)確注重策略和外交善于說(shuō)服ABCDEF測(cè)試過(guò)程需要三類輸入:(A)、(B)和(C)。請(qǐng)選擇正確的答案填入下圖中以完成測(cè)試信息處理的全過(guò)程。A
C. ①接口選擇 ②軟件配置 ③硬件配置 ④測(cè)試配置 ⑤測(cè)試環(huán)境 ⑥測(cè)試工具
DF. ①排錯(cuò) ②可靠性分析③結(jié)果分析④數(shù)據(jù)分類
答案:A.②B.④C.⑥D(zhuǎn).③E.①F.②例:應(yīng)用等價(jià)類劃分和邊界值分析方法對(duì)考試系統(tǒng)“輸入學(xué)生成績(jī)”設(shè)計(jì)測(cè)試用例需求描述:考試分三個(gè)專業(yè),準(zhǔn)考證號(hào)第一位為專業(yè)代號(hào),如:1-行政專業(yè),2-法律專業(yè),3-財(cái)經(jīng)專業(yè).行政專業(yè)準(zhǔn)考證號(hào)碼為:110001~111215法律專業(yè)準(zhǔn)考證號(hào)碼為:210001~212006財(cái)經(jīng)專業(yè)準(zhǔn)考證號(hào)碼為:310001~314015參考:有效等價(jià)類:(1)110001~111215(2)210001~212006(3)310001~314015
無(wú)效等價(jià)類:(4)-
~110000(5)111216~210000(6)212007~31000(7)314016~+
基本路徑法IntIsLeap(intyear)
{
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;
}
else
leap=0;
returnleap;
}【問(wèn)題1】請(qǐng)畫(huà)出以上代碼的控制流圖。【問(wèn)題2】請(qǐng)計(jì)算上述控制流圖的環(huán)路復(fù)雜度V(G)?!締?wèn)題3】假設(shè)輸入的取值范圍是1000<year<2001,請(qǐng)使用基本路徑測(cè)試法為變量year設(shè)計(jì)測(cè)試用例,使其滿足基本路徑覆蓋的要求。
某些元素的一個(gè)集合或排列這些元素被組織起來(lái)以實(shí)現(xiàn)某種方法,過(guò)程或借助處理信息進(jìn)行控制?;谟?jì)算機(jī)的系統(tǒng)基于計(jì)算機(jī)系統(tǒng)的系統(tǒng)元素系統(tǒng)元素軟件—
計(jì)算機(jī)程序、數(shù)據(jù)結(jié)構(gòu)、相關(guān)文檔硬件—
電子計(jì)算設(shè)備(如CPU,存儲(chǔ)器)和外部機(jī)電設(shè)備(如傳感器、馬達(dá)等)人—
硬件和軟件的用戶數(shù)據(jù)庫(kù)—
一個(gè)大型的有組織的信息集合文檔—
手冊(cè)、表格和其它用以描述系統(tǒng)使用和操作的信息過(guò)程—
定義每一種系統(tǒng)元素的特定使用步驟,或系統(tǒng)駐留的過(guò)程性環(huán)境系統(tǒng)的層次結(jié)構(gòu)基于計(jì)算機(jī)的系統(tǒng)本身可以成為一個(gè)更大的基于計(jì)算機(jī)系統(tǒng)中的一個(gè)元素,并稱為那個(gè)更大系統(tǒng)的宏元素。工廠自動(dòng)化
系統(tǒng)計(jì)算機(jī)系統(tǒng)工程計(jì)算機(jī)系統(tǒng)工程是一個(gè)問(wèn)題求解活動(dòng),目的是揭示、分析所期望的功能,并把它們分配到各個(gè)單獨(dú)的系統(tǒng)元素中去。系統(tǒng)工程師的任務(wù)與用戶合作確認(rèn)用戶的目標(biāo)和約束導(dǎo)出功能、性能、接口、設(shè)計(jì)約束和信息結(jié)構(gòu)的表示將它們分配到每一個(gè)系統(tǒng)元素中需求識(shí)別系統(tǒng)分析過(guò)程的第一步就是識(shí)別用戶要求分析員必須考慮以下問(wèn)題:功能和性能
可靠性和質(zhì)量
總的系統(tǒng)目標(biāo)
成本與進(jìn)度限制制造需求
市場(chǎng)與競(jìng)爭(zhēng)情況
有效的技術(shù)
將來(lái)可能的擴(kuò)充系統(tǒng)分析識(shí)別希望的功能和性能范圍確定系統(tǒng)的功能、性能、約束和接口將功能賦予一個(gè)或多個(gè)系統(tǒng)元素(即軟件、硬件、人等)提出一些候選方案并做評(píng)價(jià)
項(xiàng)目考慮商業(yè)考慮技術(shù)分析生產(chǎn)評(píng)估
對(duì)同一功能,可以分配不同的系統(tǒng)元素為選取最有效的分配方案,使用一組權(quán)衡準(zhǔn)則進(jìn)行評(píng)價(jià)人員問(wèn)題環(huán)境界面法律考慮1、項(xiàng)目考慮在預(yù)估的成本與進(jìn)度范圍內(nèi)所選的系統(tǒng)配置能否實(shí)現(xiàn)?與成本與進(jìn)度估算相關(guān)的風(fēng)險(xiǎn)有哪些?
2、商業(yè)考慮所選的系統(tǒng)配置是最可能有效益的解決方案嗎?能否成功地占領(lǐng)市場(chǎng)?最終的報(bào)償是否能表明所冒的開(kāi)發(fā)風(fēng)險(xiǎn)是值得的?
3、技術(shù)分析是否具備開(kāi)發(fā)所有系統(tǒng)元素的技術(shù)實(shí)力?能否確保功能和性能得到滿足?能否對(duì)這種系統(tǒng)配置進(jìn)行充分的維護(hù)?是否具備技術(shù)資源?與技術(shù)相關(guān)的風(fēng)險(xiǎn)有哪些?
4、生產(chǎn)評(píng)估生產(chǎn)工具與設(shè)備是否有效?必需的過(guò)程是否短缺?是否充分地實(shí)施了質(zhì)量保證?
5、人員問(wèn)題開(kāi)發(fā)人員是否得到培訓(xùn)?是否存在政治問(wèn)題?用戶是否了解這個(gè)系統(tǒng)將要做什么?
6、環(huán)境界面所提交的系統(tǒng)配置與系統(tǒng)的外部環(huán)境的接口是否合適?機(jī)器與機(jī)器、人與機(jī)器之間的通信是否以智能方式處理?
7、法律考慮這種配置是否會(huì)引入違法的責(zé)任風(fēng)險(xiǎn)?對(duì)責(zé)任問(wèn)題是否給予了足夠的保護(hù)?是否存在潛在的破壞問(wèn)題?
可行性研究問(wèn)題識(shí)別市場(chǎng)調(diào)查分析準(zhǔn)備環(huán)境分析物理分析功能分析信息分析動(dòng)態(tài)分析確立系統(tǒng)方案,作出各種估算模型評(píng)審
問(wèn)題的初步認(rèn)識(shí)了解系統(tǒng)應(yīng)解決的問(wèn)題,這些問(wèn)題是如何提出的設(shè)想這些問(wèn)題如何解決才能滿足要求了解問(wèn)題的結(jié)構(gòu)
市場(chǎng)調(diào)查了解市場(chǎng)對(duì)待開(kāi)發(fā)軟件的需求情況調(diào)查市場(chǎng)上已有的類似軟件系統(tǒng)的功能、性能、價(jià)格情況
分析準(zhǔn)備確立分析計(jì)劃規(guī)定由誰(shuí)參加分析作業(yè),任務(wù)分配對(duì)參加分析的人員進(jìn)行必要的培訓(xùn)
環(huán)境分析明確系統(tǒng)的目的和限制條件使用單位的狀況、經(jīng)營(yíng)方針和組織機(jī)構(gòu)使用單位的計(jì)算機(jī)利用情況相關(guān)的硬件、軟件及其它接口部分用戶的操作環(huán)境及操作要求習(xí)慣、法律、制度上對(duì)軟件的制約開(kāi)發(fā)能具備的技術(shù)條件和設(shè)備條件
物理分析了解實(shí)際業(yè)務(wù)活動(dòng)狀況,特別對(duì)一些活動(dòng)要點(diǎn)進(jìn)行分析明確在這些要點(diǎn)之間什么東西在流動(dòng),如何進(jìn)行流動(dòng)對(duì)物理流量進(jìn)行分析對(duì)其模型化,得到實(shí)際業(yè)務(wù)系統(tǒng)(當(dāng)前系統(tǒng))的物理模型
功能分析決定系統(tǒng)應(yīng)具備的功能(工作域)分析功能的結(jié)構(gòu):功能展開(kāi)和功能分配分析各功能之間的關(guān)系,整理它們之間傳遞的信息利用數(shù)據(jù)流圖,描述信息在系統(tǒng)流動(dòng)與處理的情況
信息分析調(diào)查系統(tǒng)的輸入、輸出、保存信息明確信息的結(jié)構(gòu)及各信息之間的關(guān)系調(diào)查各信息的信息量調(diào)查各種報(bào)表和文件的格式建立粗略的數(shù)據(jù)詞典,定義系統(tǒng)中使用的數(shù)據(jù)
動(dòng)態(tài)分析系統(tǒng)內(nèi)每一部分有幾種狀態(tài)各種狀態(tài)轉(zhuǎn)換的條件同步產(chǎn)生的條件與同步后狀態(tài)的變化
確立系統(tǒng)方案,進(jìn)行各種估算粗略地估算成本估算可能取得的效益提出可能需要的資源,包括人員、硬件、軟件等提出大概的進(jìn)度安排
模型評(píng)審將目標(biāo)系統(tǒng)的邏輯模型提出管理部分與用戶進(jìn)行評(píng)審復(fù)查問(wèn)題定義、工程規(guī)模和系統(tǒng)目標(biāo)
下一步工作如何開(kāi)展?系統(tǒng)工程的輸出是什么?可行性分析的輸出是什么?接下來(lái)要開(kāi)展什么工作?
計(jì)算機(jī)系統(tǒng)工程師選擇硬件元件的某種組合以構(gòu)成基于計(jì)算機(jī)系統(tǒng)的硬件元素硬件工程過(guò)程可以分為三個(gè)階段計(jì)劃和定義階段設(shè)計(jì)和樣機(jī)實(shí)現(xiàn)階段生產(chǎn)、銷售和售后服務(wù)階段硬件和硬件工程
軟件與軟件工程為實(shí)現(xiàn)要求的功能和性能,必須制作或獲取一系列軟件部件軟件元素分為兩類
應(yīng)用軟件用來(lái)實(shí)現(xiàn)信息處理的功能
系統(tǒng)軟件完成使應(yīng)用軟件能與其它系統(tǒng)元素交互的控制功能
人與人類工程是應(yīng)用從心理學(xué)和方法論導(dǎo)出的知識(shí)來(lái)確定和設(shè)計(jì)高質(zhì)量HCI(HumanConversationInterface)的多學(xué)科活動(dòng)人類工程過(guò)程包括以下步驟(1)活動(dòng)分析──環(huán)境交互及劃分任務(wù),進(jìn)行任務(wù)分析
(2)語(yǔ)義分析和設(shè)計(jì)──動(dòng)作精確定義,“對(duì)話”設(shè)計(jì)(3)語(yǔ)法和詞法設(shè)計(jì)──各個(gè)動(dòng)作和命令的形式,硬件與軟件實(shí)現(xiàn)
(4)用戶環(huán)境設(shè)計(jì)──將硬件、軟件和其它系統(tǒng)生成元素組合起來(lái)形成用戶環(huán)境(5)原型──從人的角度出發(fā)來(lái)評(píng)價(jià)HCI數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)工程數(shù)據(jù)庫(kù)工程(包括數(shù)據(jù)庫(kù)分析、設(shè)計(jì)和實(shí)現(xiàn))對(duì)于使用數(shù)據(jù)庫(kù)的系統(tǒng),信息倉(cāng)庫(kù)往往是所有功能的核心數(shù)據(jù)庫(kù)工程的應(yīng)用是在數(shù)據(jù)庫(kù)的信息域定義完成之后
系統(tǒng)工程師的作用是
定義數(shù)據(jù)庫(kù)中包含的信息處理查詢的類型數(shù)據(jù)存取的方式數(shù)據(jù)庫(kù)的容量等數(shù)據(jù)分析和設(shè)計(jì)是基本的軟件工程活動(dòng)229面向?qū)ο蟮母拍铋_(kāi)發(fā)模式什么是面向?qū)ο髮?duì)象類繼承230開(kāi)發(fā)模式(Paradigm)開(kāi)發(fā)模式又稱為范型或模式(Pattern)。定義了:特定問(wèn)題和應(yīng)用開(kāi)發(fā)過(guò)程遵循的步驟;用于表示問(wèn)題和解的類型;利用類型表示與問(wèn)題解決有關(guān)的抽象;直接得到問(wèn)題的結(jié)構(gòu)。231開(kāi)發(fā)模式的選擇影響到整個(gè)軟件開(kāi)發(fā)生存期。就是說(shuō),它支配了設(shè)計(jì)方法編碼語(yǔ)言測(cè)試和檢驗(yàn)技術(shù)232面向過(guò)程開(kāi)發(fā)模式面向過(guò)程開(kāi)發(fā)模式產(chǎn)生過(guò)程的抽象。抽象的基礎(chǔ)是把軟件視為處理流,并定義成由一系列步驟構(gòu)成的算法。每一步驟都是帶有預(yù)定輸入和特定輸出的一個(gè)過(guò)程,把這些步驟串聯(lián)可產(chǎn)生合理的穩(wěn)定的貫通于整個(gè)程序的控制流,最終產(chǎn)生一個(gè)簡(jiǎn)單的具有靜態(tài)結(jié)構(gòu)的體系結(jié)構(gòu)。
233面向?qū)ο箝_(kāi)發(fā)模式面向過(guò)程開(kāi)發(fā)模式優(yōu)先考慮過(guò)程抽象,而面向?qū)ο箝_(kāi)發(fā)模式優(yōu)先考慮實(shí)體(問(wèn)題論域的對(duì)象)。面向?qū)ο箝_(kāi)發(fā)模式把標(biāo)識(shí)和模型化問(wèn)題論域中的主要實(shí)體做為系統(tǒng)開(kāi)發(fā)的起點(diǎn)。主要考慮對(duì)象的行為而不是必須執(zhí)行的一系列動(dòng)作。234其它流行的開(kāi)發(fā)模式目前流行多種開(kāi)發(fā)模式,它們提供了許多方法,可進(jìn)行系統(tǒng)分解。面向過(guò)程的;面向?qū)ο蟮?;面向方面的;面向進(jìn)程的。235混合開(kāi)發(fā)模式在大型系統(tǒng)的開(kāi)發(fā)中,很難選擇一種開(kāi)發(fā)模式。通常把大型問(wèn)題分解成一組子問(wèn)題。對(duì)于每個(gè)子問(wèn)題采用適當(dāng)?shù)能浖_(kāi)發(fā)模式。這種設(shè)計(jì)需要有某種實(shí)現(xiàn)語(yǔ)言或一組協(xié)同語(yǔ)言的支持。236什么是面向?qū)ο驝oad和Yourdon給出了一個(gè)定義:“面向?qū)ο?對(duì)象+類+繼承+通信”。一個(gè)面向?qū)ο蟪绦虻拿恳怀煞輵?yīng)是對(duì)象,計(jì)算是通過(guò)新的對(duì)象的建立和對(duì)象之間的通信來(lái)執(zhí)行的。237對(duì)象(object)對(duì)象是面向?qū)ο箝_(kāi)發(fā)模式的基本成份。每個(gè)對(duì)象可用一組屬性和可以執(zhí)行的一組操作來(lái)定義。屬性一般只能通過(guò)執(zhí)行對(duì)象的操作來(lái)改變。操作又稱為方法或服務(wù),它描述了對(duì)象執(zhí)行的功能,若通過(guò)消息傳遞,還可以為其它對(duì)象使用。238消息(Message)消息是對(duì)象通信的手段,是要求某個(gè)對(duì)象執(zhí)行類中定義的某個(gè)操作的規(guī)格說(shuō)明。發(fā)送給一個(gè)對(duì)象的消息定義了一個(gè)方法名和一個(gè)參數(shù)表(可能是空的),并指定某一個(gè)對(duì)象。一個(gè)對(duì)象接收到消息則調(diào)用消息中指定的方法,并將形式參數(shù)與參數(shù)表中相應(yīng)的值結(jié)合起來(lái)。239240241類(class)類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對(duì)象的集合。類包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作。類可被視為一個(gè)具有類似特性與共同行為的對(duì)象的模板。242
類←兩個(gè)四邊形對(duì)象243Quadrilateral類的每個(gè)對(duì)象有同樣的一組實(shí)例變量和方法。就這個(gè)意義來(lái)講,類Quadrilateral給我們提供了一個(gè)模板,表示了所有四邊形對(duì)象。類常??煽醋鍪且粋€(gè)抽象數(shù)據(jù)類型(ADT)的實(shí)現(xiàn)。但更合適的是把類看做是某種概念的模型。244繼承(Inheritance)繼承是使用已存在的定義做為基礎(chǔ)建立新定義的技術(shù)。新類的定義可以是既存類所聲明的數(shù)據(jù)和新類所增加的聲明的組合。新類復(fù)用既存的定義,而不要求修改既存類。既存類可當(dāng)做基類來(lái)引用,則新類相應(yīng)地可當(dāng)做派生類來(lái)引用。245246類的繼承層次247面向?qū)ο蠓椒ǖ拈_(kāi)發(fā)過(guò)程面向?qū)ο蠓椒ǜ倪M(jìn)了生存期各階段間的接口,因?yàn)樯嫫诟麟A段開(kāi)發(fā)出來(lái)的“部件”都是類。在面向?qū)ο笊嫫诘母鱾€(gè)階段對(duì)各個(gè)類的信息進(jìn)行細(xì)化,類成為分析、設(shè)計(jì)和實(shí)現(xiàn)的基本單元。248應(yīng)
用
生
存
期249類生存期250復(fù)用(Reusable)在軟件開(kāi)發(fā)中,復(fù)用扮演了重要角色。軟件部件應(yīng)當(dāng)獨(dú)立于應(yīng)用而存在。部件的開(kāi)發(fā)瞄準(zhǔn)局部設(shè)計(jì)和實(shí)現(xiàn),能幫助當(dāng)前問(wèn)題的解決。但為了在以后的項(xiàng)目中使用,它們還應(yīng)當(dāng)足夠通用。251類就是一個(gè)希望能夠復(fù)用的單元,因此,提出了一個(gè)“類生存期”。類生存期是與應(yīng)用生存期是交叉的。類的開(kāi)發(fā)應(yīng)能完整地描述一個(gè)基本實(shí)體。而不僅僅考慮當(dāng)前正在開(kāi)發(fā)的系統(tǒng)。252類的定義一旦標(biāo)識(shí)了一個(gè)類,就給出了它的規(guī)格說(shuō)明,包括類的實(shí)例可執(zhí)行的操作和它們的數(shù)據(jù)表示。對(duì)每一個(gè),無(wú)論是在哪一個(gè)階段標(biāo)識(shí)的類都是如此。對(duì)于與數(shù)據(jù)庫(kù)交互的類,定義包括查找數(shù)據(jù)庫(kù)和向數(shù)據(jù)庫(kù)加入數(shù)據(jù)的行為。253類的設(shè)計(jì)與實(shí)現(xiàn)類的規(guī)格說(shuō)明可指導(dǎo)對(duì)構(gòu)件庫(kù)進(jìn)行查找。根據(jù)查找結(jié)果,存在三個(gè)可能的方向:
原封不動(dòng)的復(fù)用既存類演化既存類以得到滿足要求的類。重新開(kāi)始進(jìn)行開(kāi)發(fā)。254測(cè)試單個(gè)的類為測(cè)試提供了自然的單元。如果類的定義提供的界面比較狹窄,那么窮舉測(cè)試就有可能實(shí)現(xiàn)。類的測(cè)試在最抽象的層次開(kāi)始,沿繼承關(guān)系繼續(xù)向下進(jìn)行。已經(jīng)測(cè)試過(guò)的部分不需要重新測(cè)試。重點(diǎn)放在對(duì)新類的測(cè)試和組裝測(cè)試。255求精和維護(hù)傳統(tǒng)的維護(hù)活動(dòng)是針對(duì)應(yīng)用的求精過(guò)程針對(duì)類,及類之間的關(guān)系??蓸?biāo)識(shí)抽象的抽象,使繼承結(jié)構(gòu)通過(guò)一般化增加新層次,即在既存的根類之上增加新的層次。為便于類調(diào)整,應(yīng)盡量做到定義與實(shí)現(xiàn)分離。256面向?qū)ο箝_(kāi)發(fā)過(guò)程分析階段:包括論域分析和應(yīng)用分析兩步驟。論域分析:開(kāi)發(fā)問(wèn)題論域的模型,對(duì)問(wèn)題敞開(kāi)思想考慮,分析覆蓋的范圍應(yīng)比直接要解決的問(wèn)題更多。應(yīng)用分析:細(xì)化論域分析階段所開(kāi)發(fā)出來(lái)的信息,并且把注意力集中于當(dāng)前要解決的問(wèn)題。257面向?qū)ο箝_(kāi)發(fā)過(guò)程高層設(shè)計(jì):設(shè)計(jì)應(yīng)用的頂層視圖;類設(shè)計(jì):建立各個(gè)對(duì)象的實(shí)例,實(shí)現(xiàn)問(wèn)題的解決方案。
類開(kāi)發(fā)實(shí)例建立組裝測(cè)試(類簇測(cè)試)應(yīng)用維護(hù)258面向?qū)ο蠓治雠c模型化流行的OOA方法論域分析—語(yǔ)義數(shù)據(jù)模型OMT方法Coad&Yourdon的OOA方法259面向?qū)ο蠓治雠c模型化面向?qū)ο蠓治鍪菃?wèn)題定義階段。得到對(duì)問(wèn)題論域的清晰、精確的定義。分析階段包括兩個(gè)步驟:論域分析和應(yīng)用分析。它們都要標(biāo)識(shí)問(wèn)題論域中的抽象。260在分析中,需要
找到特定對(duì)象基于對(duì)象的公共特性組合它們標(biāo)識(shí)出對(duì)這個(gè)問(wèn)題的抽象在分析階段中要標(biāo)識(shí)抽象之間的關(guān)系這些關(guān)系在應(yīng)用系統(tǒng)中常用對(duì)象之間的消息來(lái)表示,叫做消息連接。261流行的OOA方法-Booch方法包含“微開(kāi)發(fā)過(guò)程”和“宏開(kāi)發(fā)過(guò)程”。微開(kāi)發(fā)過(guò)程定義了一組任務(wù),并在宏開(kāi)發(fā)過(guò)程的每一步驟中反復(fù)使用它們,以維持演進(jìn)途徑。宏開(kāi)發(fā)過(guò)程的任務(wù)包括:標(biāo)識(shí)類和對(duì)象、標(biāo)識(shí)類和對(duì)象的語(yǔ)義、定義類與對(duì)象間的關(guān)系,以及進(jìn)行一系列求精從而實(shí)現(xiàn)分析模型。262流行的OOA方法-Rumbaugh方法Rumbaugh和同事提出的對(duì)象模型化技術(shù)(OMT)用于分析、系統(tǒng)設(shè)計(jì)和對(duì)象級(jí)設(shè)計(jì)。分析活動(dòng)建立三個(gè)模型:對(duì)象模型(描述對(duì)象、類、層次和關(guān)系)
動(dòng)態(tài)模型(描述對(duì)象和系統(tǒng)的行為)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄉(xiāng)村別墅地產(chǎn)租賃合約三篇
- 2024年標(biāo)準(zhǔn)擔(dān)保公司過(guò)橋貸款服務(wù)協(xié)議范本版B版
- 2024年度知識(shí)產(chǎn)權(quán)專利布局與預(yù)警服務(wù)合同3篇
- 大學(xué)體育運(yùn)動(dòng)會(huì)開(kāi)幕致辭
- 工藝品銷售工作總結(jié)
- 語(yǔ)文高考押題專題四:詩(shī)歌鑒賞
- 汕頭語(yǔ)文二模試題
- 物流成本課程設(shè)計(jì)
- 游泳館教練教學(xué)課程設(shè)計(jì)
- 描寫(xiě)七夕節(jié)風(fēng)俗隨筆
- 終極戰(zhàn)略規(guī)劃指南:深度剖析Cross SWOT分析、市場(chǎng)洞察與內(nèi)部能力優(yōu)化的綜合行動(dòng)方案
- 中國(guó)偏頭痛診治指南(第一版)2023解讀
- 湖北省武漢市黃陂區(qū)2024年數(shù)學(xué)六年級(jí)第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 關(guān)于開(kāi)展2024年度保密自查自評(píng)專項(xiàng)檢查工作的實(shí)施方案
- 商場(chǎng)反恐防暴應(yīng)急預(yù)案演練方案
- 2024年天津市西青經(jīng)濟(jì)開(kāi)發(fā)集團(tuán)限公司公開(kāi)招聘工作人員高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
- 數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范標(biāo)準(zhǔn)
- 2023年全國(guó)職業(yè)院校技能大賽賽項(xiàng)-ZZ019 智能財(cái)稅基本技能賽題 - 模塊三-答案
- 一例護(hù)理不良事件分析(手術(shù)室異物遺留預(yù)防)
- 先天性甲狀腺功能減低癥專家講座
- 學(xué)校合作檔口合同協(xié)議
評(píng)論
0/150
提交評(píng)論