Narayana Maruvada是一名計(jì)算機(jī)科學(xué)與工程專業(yè)的研究生,目前擔(dān)任系統(tǒng)分析員—ValueLabs質(zhì)量保證。 Narayana擁有超過(guò)7年開(kāi)發(fā)和測(cè)試基于Web的應(yīng)用程序的工作經(jīng)驗(yàn)。 他的主要工作和專長(zhǎng)的領(lǐng)域是測(cè)試建立在用于不同域的開(kāi)源技術(shù)上的應(yīng)用程序及產(chǎn)品。 他是對(duì)評(píng)估該系統(tǒng)的功能和非功能屬性,研究和實(shí)施新的測(cè)試工具、技術(shù)與方法有著濃厚的興趣。他為了改進(jìn)測(cè)試過(guò)程,努力擴(kuò)展佳做法和質(zhì)量標(biāo)準(zhǔn)。 |
顯然,無(wú)論缺陷預(yù)防工作貫徹落實(shí)地多好,軟件組件總有缺陷。這很明顯,因?yàn)殚_(kāi)發(fā)商無(wú)法阻止/消除軟件開(kāi)發(fā)周期的所有缺陷。因此,軟件必須進(jìn)行徹底的測(cè)試,然后才交付給終用戶。測(cè)試人員的責(zé)任是:設(shè)計(jì)既可以(?)找軟件缺陷,又能(ii )評(píng)估該軟件的性能,可用性和可靠性等方面的測(cè)試。
現(xiàn)在,為了實(shí)現(xiàn)這些目標(biāo),測(cè)試人員必須(往往是從一個(gè)非常大的執(zhí)行域中)選擇和/或制定測(cè)試用例的有限數(shù)量。不幸的是,完整的測(cè)試通常不是在這個(gè)范圍,預(yù)算和時(shí)間的約束內(nèi)實(shí)現(xiàn)和/或執(zhí)行的。重要的是,當(dāng)測(cè)試開(kāi)始失控且不按計(jì)劃地運(yùn)行時(shí),由于預(yù)期無(wú)法實(shí)際,測(cè)試人員往往承受了來(lái)自管理層和利益相關(guān)者的巨大壓力。
因此,測(cè)試人員必須有效地計(jì)劃測(cè)試并制定正確的測(cè)試用例,選擇并執(zhí)行合適的用例,監(jiān)控過(guò)程,以確保有效利用工作資源和時(shí)間。所以,要列出這些無(wú)疑是一項(xiàng)艱巨的任務(wù);要有效地實(shí)施,測(cè)試人員需要受過(guò)適當(dāng)?shù)慕逃团嘤?xùn)并擁有贏得管理層支持的能力。
一般情況下,測(cè)試人員會(huì)用兩種不同的測(cè)試方法,其中,使用常規(guī)方法,測(cè)試人員主要是嘗試用所有可能的輸入去測(cè)試一個(gè)模塊或組件,用所有可能的軟件結(jié)構(gòu)去實(shí)踐。盡管這種做法仍在使用,測(cè)試人員卻在慢慢灌輸推理軟件的一切的價(jià)值,終使他們能夠檢測(cè)出所有可能存在的缺陷。但見(jiàn)多識(shí)廣且有學(xué)問(wèn)的測(cè)試員們都明白,這在現(xiàn)實(shí)或經(jīng)濟(jì)上是不可行,不可實(shí)現(xiàn)的目標(biāo)。
現(xiàn)在,另一種方法可能是讓測(cè)試員們隨機(jī)選擇測(cè)試輸入,希望這些測(cè)試能將大的缺陷找出來(lái)。不過(guò),測(cè)試專家認(rèn)為,隨機(jī)生成的測(cè)試輸入在評(píng)估系統(tǒng)的質(zhì)量屬性方面表現(xiàn)紀(jì)錄欠佳。所以,從測(cè)試的角度來(lái)看,這是一個(gè)無(wú)休止的爭(zhēng)論和懸而未決的問(wèn)題。盡管如此,我們還是認(rèn)為,測(cè)試員的終目標(biāo)是了解測(cè)試的功能、輸入/輸出域和使用環(huán)境,等等。
同樣,對(duì)于某些特定類型的測(cè)試,測(cè)試人員也需要詳細(xì)地了解代碼是如何構(gòu)造的。此外,測(cè)試人員也需要利用關(guān)于常在軟件開(kāi)發(fā)或維護(hù)過(guò)程中生成的特定缺陷的知識(shí)。有了這些信息,測(cè)試者必須明智地選擇測(cè)試輸入的子集,以及被認(rèn)為有可能找測(cè)試過(guò)程中條件和限制內(nèi)的缺陷的測(cè)試輸入組合。然而,這個(gè)過(guò)程需要時(shí)間和精力。所以,測(cè)試人員知道且贊同:只有開(kāi)發(fā)出基于執(zhí)行的測(cè)試的有效測(cè)試用例,才能大化和/或優(yōu)化對(duì)時(shí)間和資源的利用。
“有效測(cè)試用例”我們是指:“一個(gè)很可能找出缺陷的測(cè)試用例” 。因此,制定有效測(cè)試用例的能力對(duì)于一個(gè)組織邁向一個(gè)更高質(zhì)量的測(cè)試過(guò)程來(lái)說(shuō)是非常重要的;反過(guò)來(lái), 一個(gè)組織邁向一個(gè)更高質(zhì)量的測(cè)試過(guò)程對(duì)制定有效測(cè)試用例的能力也有許多積極影響。
例如,如果測(cè)試用例是有效的,那么:
檢測(cè)缺陷的概率更大。
更有效地利用組織資源。
測(cè)試再用的可能性更高。
更符合測(cè)試、項(xiàng)目進(jìn)度、預(yù)算,更重要地,提供更高質(zhì)量的軟件產(chǎn)品的可能性。
測(cè)試用例設(shè)計(jì)方法 - 概念化
上面介紹了有效測(cè)試用例的種種好處,但縝密考慮測(cè)試人員用來(lái)設(shè)計(jì)這些有效測(cè)試用例的方法也同樣重要。為了回答這個(gè)問(wèn)題,有必要把軟件作為一個(gè)精心設(shè)計(jì)的產(chǎn)品來(lái)查看和/或檢查,F(xiàn)在,有了這個(gè)觀念,有兩個(gè)基本方法可以用來(lái)設(shè)計(jì)測(cè)試用例:
黑盒(有時(shí)也稱為功能或規(guī)格)測(cè)試方法。
白盒(有時(shí)也稱為clear或透明盒 )測(cè)試方法。
使用黑盒測(cè)試方法,測(cè)試人員把SUT (測(cè)試中的軟件)當(dāng)作一個(gè)不知道其內(nèi)部結(jié)構(gòu)(即如何運(yùn)作)的不透明盒子,測(cè)試人員只知道它的作用。使用這種方法的SUT的大小可以是一個(gè)簡(jiǎn)單的模塊、成員函數(shù)、對(duì)象群、一個(gè)子系統(tǒng)、或一個(gè)完整的軟件系統(tǒng)。此外, SUT的基礎(chǔ)行為或功能的描述可以由正式規(guī)格,輸入/處理/輸出圖( IPO),或一套定義明確的先決、后置條件來(lái)提供;重要的是,另一個(gè)值得一提的信息來(lái)源是:需求規(guī)格說(shuō)明文檔,通常描述SUT的功能,輸入及預(yù)期輸出,F(xiàn)在,鑒于上述來(lái)源,測(cè)試員提供指定輸入到SUT,進(jìn)行測(cè)試運(yùn)行,然后確定所產(chǎn)生的輸出是否與說(shuō)明文檔中提供的一致。因?yàn)楹诤袦y(cè)試方法只考慮了軟件的行為和功能,它通常被稱為功能測(cè)試,或基于規(guī)范的測(cè)試。這種方法特別有用,極有助于找到要求和規(guī)格中的缺陷。
與此相反,白盒測(cè)試方法關(guān)注將被測(cè)試的軟件的內(nèi)部結(jié)構(gòu)。因此,使用白盒測(cè)試方法來(lái)設(shè)計(jì)測(cè)試用例,測(cè)試人員應(yīng)該先了解結(jié)構(gòu),且為了實(shí)現(xiàn)這一目標(biāo),必須可隨時(shí)參考和理解代碼或適當(dāng)?shù)念悅未a的要求。一旦對(duì)結(jié)構(gòu)有了必要的了解,測(cè)試者可以選擇合適的測(cè)試用例去實(shí)踐特定的內(nèi)部結(jié)構(gòu)要素,并確定它們是否正常工作。例如,測(cè)試用例通常被設(shè)計(jì)來(lái)實(shí)踐所有語(yǔ)句或發(fā)生在一個(gè)模塊或成員函數(shù)中的真/假分支。但是,由于白盒測(cè)試的設(shè)計(jì),執(zhí)行和結(jié)果分析非常耗時(shí),這種方法被限制和/或通常只適用于軟件的小部分,如模塊或成員函數(shù)。然而,白盒測(cè)試方法對(duì)于找出設(shè)計(jì)和基于代碼的控件的邏輯缺陷和順序缺陷,初始化缺陷和數(shù)據(jù)流缺陷等特別有用。
然而,從測(cè)試員的角度來(lái)看,要實(shí)現(xiàn)向用戶提供低缺陷高質(zhì)量的軟件的目標(biāo),必須把這兩種方法都用來(lái)設(shè)計(jì)測(cè)試用例。另外,這兩種方法都支持測(cè)試員選擇有限數(shù)量的將被用于測(cè)試的測(cè)試用例。這兩種方法可以相互補(bǔ)充,因?yàn)槊總(gè)都或許有助于找到某些特定類型的缺陷。重要的是,有了使用這兩種方法設(shè)計(jì)出的一組測(cè)試用例,測(cè)試員找到SUT中各種不同類型缺陷的機(jī)會(huì)增加了。
測(cè)試員還有一套有效的可再用的用來(lái)進(jìn)行回歸測(cè)試(更改后的重新測(cè)試),以及軟件測(cè)試的新版本。
上面是一份概要:使用任一設(shè)計(jì)方法制定測(cè)試用例的各種可用方法。
但是,在使用任一設(shè)計(jì)方法準(zhǔn)備測(cè)試用例前有一些因素需要考慮清楚。它們分別是:
測(cè)試相關(guān)風(fēng)險(xiǎn)。
預(yù)期缺陷類型。
測(cè)試員的知識(shí)和經(jīng)驗(yàn)。
測(cè)試水平和必須進(jìn)行分組和管理的小組活動(dòng)。
用于執(zhí)行測(cè)試用例的工具。
應(yīng)用程序,軟件和問(wèn)題域的類型。
客戶要求,等等。