




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、軟件測試模型1、V模型在軟件測試方面,V模型是最廣為人知的模型,盡管很多富有實(shí)際經(jīng)驗(yàn)的測試人員還是不太熟悉V模型,或者其它的模型。V模型已存在了很長時(shí)間,和瀑布開發(fā)模型有著一些共同的特性,由此也和瀑布模型一樣地受到了批評(píng)和質(zhì)疑。V模型中的過程從左到右,描述了基本的開發(fā)過程和測試行為。V模型的價(jià)值在于它非常明確地標(biāo)明了測試過程中存在的不同級(jí)別,并且清楚地描述了這些測試階段和開發(fā)過程期間各階段的對(duì)應(yīng)關(guān)系。關(guān)求分析要校測試柢妾設(shè)計(jì)詳緩設(shè)計(jì)系統(tǒng)滿試集成潸試2、Wf型V模型的局限性在于沒有明確地說明早期的測試,無法體現(xiàn)“盡早地和不斷地進(jìn)行軟件測試”的原則。在V模型中增加軟件各開發(fā)階段應(yīng)同步進(jìn)行的測試,演
2、化為W模型(如下圖)。在模型中不難看出,開發(fā)是“V,測試是與此并行的V?;凇氨M早地和不斷地進(jìn)行軟件測試”的原則,在軟件的需求和設(shè)計(jì)階段的測試活動(dòng)應(yīng)遵循IEEE1012-1998軟件驗(yàn)證與確認(rèn)(V&V的原則。W真型由Evolutif公司提出,相對(duì)于V模型,W真型更科學(xué)。W真型是V模型的發(fā)展,強(qiáng)調(diào)的是測試伴隨著整個(gè)軟件開發(fā)周期,而且測試的對(duì)象不僅僅是程序,需求、功能和設(shè)計(jì)同樣要測試。測試與開發(fā)是同步進(jìn)行的,從而有利于盡早地發(fā)現(xiàn)問題。W模型也有局限性。W模型和V模型都把軟件的開發(fā)視為需求、設(shè)計(jì)、編碼等一系列串行的活動(dòng),無法支持迭代、自發(fā)性以及變更調(diào)整。3、X模型X模型也是對(duì)V模型的改進(jìn),X模型提出
3、針對(duì)單獨(dú)的程序片段進(jìn)行相互分離的編碼和測試,此后通過頻繁的交接,通過集成最終合成為可執(zhí)行的程序。X模型的左邊描述的是針對(duì)單獨(dú)程序片段所進(jìn)行的相互分離的編碼和測試,此后將進(jìn)行頻繁的交接,通過集成最終成為可執(zhí)行的程序,然后再對(duì)這些可執(zhí)行程序進(jìn)行測試。己通過集成測試的成品可以進(jìn)行封裝并提交給用戶,也可以作為更大規(guī)模和范圍內(nèi)集成的一部分。多根并行的曲線表示變更可以在各個(gè)部分發(fā)生。由圖中可見,X模型還定位了探索性測試,這是不進(jìn)行事先計(jì)劃的特殊類型的測試,這一方式往往能幫助有經(jīng)驗(yàn)的測試人員在測試計(jì)劃之外發(fā)現(xiàn)更多的軟件錯(cuò)誤。但這樣可能對(duì)測試造成人力、物力和財(cái)力的浪費(fèi),對(duì)測試員的熟練程度要求比較高。4、H模型
4、H模型中,軟件測試過程活動(dòng)完全獨(dú)立,貫穿于整個(gè)產(chǎn)品的周期,與其他流程并發(fā)地進(jìn)行,某個(gè)測試點(diǎn)準(zhǔn)備就緒時(shí),就可以從測試準(zhǔn)備階段進(jìn)行到測試執(zhí)行階段。軟件測試可以盡早的進(jìn)行,并且可以根據(jù)被測物的不同而分層次進(jìn)行。這個(gè)示意圖演示了在整個(gè)生產(chǎn)周期中某個(gè)層次上的一次測試“微循環(huán)”。圖中標(biāo)注的其它流程可以是任意的開發(fā)流程,例如設(shè)計(jì)流程或者編碼流程。也就是說,只要測試條件成熟了,測試準(zhǔn)備活動(dòng)完成了,測試執(zhí)行活動(dòng)就可以進(jìn)行了。H模型揭示了一個(gè)原理:軟件測試是一個(gè)獨(dú)立的流程,貫穿產(chǎn)品整個(gè)生命周期,與其他流程并發(fā)地進(jìn)行。H模型指出軟件測試要盡早準(zhǔn)備,盡早執(zhí)行。不同的測試活動(dòng)可以是按照某個(gè)次序先后進(jìn)行的,但也可能是反復(fù)
5、的,只要某個(gè)測試達(dá)到準(zhǔn)備就緒點(diǎn),測試執(zhí)行活動(dòng)就可以開展。5、前置模型F際ihHityAnalysisFeasibilityReport$網(wǎng)2藻AnalysisSystemDesignTechnicalTestPlanBusinessRequirementsRequirementsBasedTestFormalReviewBtack/WhiteBoxUnUTestsIntegrationTestDesignSpecsOperations&Maint.LifeCycle)ImiJlementationAcceptanceTestPlanAcceptanceCriteriaAcceptanceTes
6、tSystem,SpecialTestsDev用叩rnemIndependent(QA)Te$i$CodDebugInformalRev,前置測試模型則體現(xiàn)了開發(fā)與測試的結(jié)合,要求對(duì)每一個(gè)交付內(nèi)容進(jìn)行測試。前置測試模型是一個(gè)將測試和開發(fā)緊密結(jié)合的模型,此模型將開發(fā)和測試的生命周期整合在一起,隨項(xiàng)目開發(fā)生命周期從開始到結(jié)束每個(gè)關(guān)鍵行為。前置測試模型體現(xiàn)了以下的要點(diǎn):(一)開發(fā)和測試相結(jié)合前置測試模型將開發(fā)和測試的生命周期整合在一起,標(biāo)識(shí)了項(xiàng)目生命周期從開始到結(jié)束之間的關(guān)鍵行為。并且表示了這些行為在項(xiàng)目周期中的價(jià)值所在。如果其中有些行為沒有得到很好的執(zhí)行,那么項(xiàng)目成功的可能性就會(huì)因此而有所降低。如
7、果有業(yè)務(wù)需求,則系統(tǒng)開發(fā)過程將更有效率。在沒有業(yè)務(wù)需求的情況下進(jìn)行開發(fā)和測試是不可能的。而且,業(yè)務(wù)需求最好在設(shè)計(jì)和開發(fā)之前就被正確定義。(二)對(duì)每一個(gè)交付內(nèi)容進(jìn)行測試每一個(gè)交付的開發(fā)結(jié)果都必須通過一定的方式進(jìn)行測試。源程序代碼并不是唯一需要測試的內(nèi)容。在圖中的綠色框表示了其它一些要測試的對(duì)象,包括可行性報(bào)告、業(yè)務(wù)需求說明,以及系統(tǒng)設(shè)計(jì)文檔等。這同V模型中開發(fā)和測試的對(duì)應(yīng)關(guān)系是相一致的,并且在其基礎(chǔ)上有所擴(kuò)展,變得更為明確。前置測試用K型包括2項(xiàng)測試計(jì)劃技術(shù):其中的第一項(xiàng)技術(shù)是開發(fā)基于需求的測試用例。這并不僅僅是為以后提交上來的程序的測試做好初始化準(zhǔn)備,也是為了驗(yàn)證需求是否是可測試的。這些測試可
8、以交由用戶來進(jìn)行驗(yàn)收測試,或者由開發(fā)部門做某些技術(shù)測試。很多測試團(tuán)體都認(rèn)為,需求的可測試性即使不是需求首要的屬性,也應(yīng)是其最基本的屬性之一。因此,在必要的時(shí)候可以為每一個(gè)需求編寫測試用例。不過,基于需求的測試最多也只是和需求本身一樣重要。一項(xiàng)需求可能本身是錯(cuò)誤的,但它仍是可測試的。而且,你無法為一些被忽略的需求來編寫測試用例。第二項(xiàng)技術(shù)是定義驗(yàn)收標(biāo)準(zhǔn)。在接受交付的系統(tǒng)之前,用戶需要用驗(yàn)收標(biāo)準(zhǔn)來進(jìn)行驗(yàn)證。驗(yàn)收標(biāo)準(zhǔn)并不僅僅是定義需求,還應(yīng)在前置測試之前進(jìn)行定義,這將幫助揭示某些需求是否正確,以及某些需求是否被忽略了。同樣的,系統(tǒng)設(shè)計(jì)在投入編碼實(shí)現(xiàn)之前也必須經(jīng)過測試,以確保其正確性和完整性。很多組織
9、趨向于對(duì)設(shè)計(jì)進(jìn)行測試,而不是對(duì)需求進(jìn)行測試。Goldsmith曾提供過15項(xiàng)以上的測試方法來對(duì)設(shè)計(jì)進(jìn)行測試,這些組織也只使用了其中很小的一部分。在對(duì)設(shè)計(jì)進(jìn)行的測試中有一項(xiàng)非常有用的技術(shù),即制訂計(jì)劃以確定應(yīng)如何針對(duì)提交的系統(tǒng)進(jìn)行測試,這在處于設(shè)計(jì)階段并即將進(jìn)入編碼階段時(shí)十分有用。(三)在設(shè)計(jì)階段進(jìn)行計(jì)劃和測試設(shè)計(jì)設(shè)計(jì)階段是做測試計(jì)劃和測試設(shè)計(jì)的最好時(shí)機(jī)。很多組織要么根本不做測試計(jì)劃和測試設(shè)計(jì),要么在即將開始執(zhí)行測試之間才飛快地完成測試計(jì)劃和設(shè)計(jì)。在這種情況下,測試只是驗(yàn)證了程序的正確性,而不是驗(yàn)證整個(gè)系統(tǒng)本該實(shí)現(xiàn)的東西。測試有2種主要的類型,這2種類型都需要測試計(jì)劃。在V模型中,驗(yàn)收測試最早被定
10、義好,并在最后執(zhí)行,以驗(yàn)證所交付的系統(tǒng)是否真正符合用戶業(yè)務(wù)的需求。與V模型不同的是,前置測試模型認(rèn)識(shí)到驗(yàn)收測試中所包含的3種成份,其中的2種都與業(yè)務(wù)需求定義相聯(lián)系:即定義基于需求的測試,以及定義驗(yàn)收標(biāo)準(zhǔn)。但是,第三種則需要等到系統(tǒng)設(shè)計(jì)完成,因?yàn)轵?yàn)收測試計(jì)劃是由針對(duì)按設(shè)計(jì)實(shí)現(xiàn)的系統(tǒng)來進(jìn)行的一些明確操作定義所組成,這些定義包括:如何判斷驗(yàn)收標(biāo)準(zhǔn)已經(jīng)達(dá)到,以及基于需求的測試已算成功完成。技術(shù)測試主要是針對(duì)開發(fā)代碼的測試,例如V模型中所定義的動(dòng)態(tài)的單元測試,集成測試和系統(tǒng)測試。另外,前置測試還提示我們應(yīng)增加靜態(tài)審查,以及獨(dú)立的QA測11tQA測試通常跟隨在系統(tǒng)測試之后,從技術(shù)部門的意見和用戶的預(yù)期方面
11、出發(fā),進(jìn)行最后的檢查.同樣的還有特別測試。我們?nèi)∶貏e測試,并把該名稱作為很多測試的一個(gè)統(tǒng)稱,這些測試包括負(fù)載測試、安全性測試、可用性測試等等,這些測試不是由業(yè)務(wù)邏輯和應(yīng)用來驅(qū)動(dòng)的。對(duì)技術(shù)測試最基本的要求是驗(yàn)證代碼的編寫和設(shè)計(jì)的要求是否相一致。一致的意思是系統(tǒng)確實(shí)提供了要求提供的,并且系統(tǒng)并沒有提供不要求提供的。技術(shù)測試在設(shè)計(jì)階段進(jìn)行計(jì)劃和設(shè)計(jì),并在開發(fā)階段由技術(shù)部門來執(zhí)行。(四)測試和開發(fā)結(jié)合在一起前置測試將測試執(zhí)行和開發(fā)結(jié)合在一起,并在開發(fā)階段以編碼-測試-編碼-測試的方式來體現(xiàn)。也就是說,程序片段一旦編寫完成,就會(huì)立即進(jìn)行測試。普通情況下,先進(jìn)行的測試是單元測試,因?yàn)殚_發(fā)人員認(rèn)為通過測試
12、來發(fā)現(xiàn)錯(cuò)誤是最經(jīng)濟(jì)的方式。但也可參考X模型,即一個(gè)程序片段也需要相關(guān)的集成測試,甚至有時(shí)還需要一些特殊測試。對(duì)于一個(gè)特定的程序片段,其測試的順序可以按照V模型的規(guī)定,但其中還會(huì)交織一些程序片段的開發(fā),而不是按階段完全地隔離。在技術(shù)測試計(jì)劃中必須定義好這樣的結(jié)合。測試的主體方法和結(jié)構(gòu)應(yīng)在設(shè)計(jì)階段定義完成,并在開發(fā)階段進(jìn)行補(bǔ)充和開版。這尤其會(huì)對(duì)基于代碼的測試產(chǎn)生影響,這種測試主要包括針對(duì)單元的測試和集成測試。不管在哪種情況下,如果在執(zhí)行測試之前做一點(diǎn)計(jì)劃和設(shè)計(jì),都會(huì)提高測試效率,改善測試結(jié)果,而且對(duì)測試重用也更加有利。(五)讓驗(yàn)收測試和技術(shù)測試保持相互獨(dú)立驗(yàn)收測試應(yīng)該獨(dú)立于技術(shù)測試,這樣可以提供雙
13、重的保險(xiǎn),以保證設(shè)計(jì)及程序編碼能夠符合最終用戶的需求。驗(yàn)收測試既可以在實(shí)施階段的第一步來執(zhí)行,也可以在開發(fā)階段的最后一步執(zhí)行。前置測試模型提倡驗(yàn)收測試和技術(shù)測試沿循2條不同的路線來進(jìn)行,每條路線分別地驗(yàn)證系統(tǒng)是否能夠如預(yù)期的設(shè)想進(jìn)行正常工作。這樣,當(dāng)單獨(dú)設(shè)計(jì)好的驗(yàn)收測試完成了系統(tǒng)的驗(yàn)證,我們即可確信這是一個(gè)正確的系統(tǒng)。(六)反復(fù)交替的開發(fā)和測試在項(xiàng)目中從很多方面可以看到變更的發(fā)生,例如需要重新訪問前一階段的內(nèi)容,或者地跟蹤并糾正以前提交的內(nèi)容,修復(fù)錯(cuò)誤,排除多余的成分,以及增加新發(fā)現(xiàn)的功能,等等。開發(fā)和測試需要一起反復(fù)交替地執(zhí)行。模型并沒有明確指出參與的系統(tǒng)部分的大小。這一點(diǎn)和V模型中所提供的
14、內(nèi)容相似。不同的是,前置測試模型對(duì)反復(fù)和交替進(jìn)行了非常明確的描述。(七)發(fā)現(xiàn)內(nèi)在的價(jià)值前置測試能給需要使用測試技術(shù)的開發(fā)人員、測試人員、項(xiàng)目經(jīng)理和用戶等帶來很多不同于傳統(tǒng)方法的內(nèi)在的價(jià)值。與以前的方法中很少劃分優(yōu)先級(jí)所不同的是,前置測試用較低的成本來及早發(fā)現(xiàn)錯(cuò)誤,并且充分強(qiáng)調(diào)了測試對(duì)確保系統(tǒng)的高質(zhì)量的重要意義。前置測試代表了整個(gè)對(duì)測試的新的不同的觀念。在整個(gè)開發(fā)過程中,反復(fù)使用了各種測試技術(shù)以使開發(fā)人員、經(jīng)理和用戶節(jié)省其時(shí)間,簡化其工作。通常情況下,開發(fā)人員會(huì)將測試工作視為阻礙其按期完成開發(fā)進(jìn)度的額外的負(fù)擔(dān)。然而,當(dāng)我們提前定義好該如何對(duì)程序進(jìn)行測試以后,我們會(huì)發(fā)現(xiàn)開發(fā)人員將節(jié)省至少20%勺時(shí)
15、間。雖然開發(fā)人員很少意識(shí)到他們的時(shí)間是如何分配的,也許他們只是感覺到有一大塊時(shí)間從重新修改中節(jié)省下來可用來進(jìn)行其它的開發(fā)。保守地說,在編碼之前對(duì)設(shè)計(jì)進(jìn)行測試可以節(jié)省總共將近一半的時(shí)間,這可以從以下方面體現(xiàn)出來:針對(duì)設(shè)計(jì)的測試編寫是檢驗(yàn)設(shè)計(jì)的一個(gè)非常好的方法,由此可以及時(shí)避免因?yàn)樵O(shè)計(jì)不正確而造成的重復(fù)開發(fā)及代碼修改。通常情況下,這樣的測試可以使設(shè)計(jì)中的邏輯缺陷凸顯出來。另一方面,編寫測試用例還能揭示設(shè)計(jì)中比較模糊的地方。總的來說,如果你不能勾畫出如何對(duì)程序進(jìn)行測試,那么程序員很可能也很難確定他們所開發(fā)的程序怎樣才算是正確的。測試工作先于程序開發(fā)而進(jìn)行,這樣可以明顯地看到程序應(yīng)該如何工作,否則,如
16、果要等到程序開發(fā)完成后才開始測試,那么測試只是查驗(yàn)開發(fā)人員的代碼是如何運(yùn)行的。而提前的測試可以幫助開發(fā)人員立刻得到正確的錯(cuò)誤定位。在測試先于編碼的情況下,開發(fā)人員可以在一完成編碼時(shí)就立刻進(jìn)行測試。而且,她會(huì)更有效率,在同一時(shí)間內(nèi)能夠執(zhí)行更多的現(xiàn)成的測試,她的思路也不會(huì)因?yàn)槿ニ鸭瘻y試數(shù)據(jù)而被打斷。即使是最好的程序員,從他們各自的觀念出發(fā),也常常會(huì)對(duì)一些看似非常明確的設(shè)計(jì)說明產(chǎn)生不同的理解。如果他們能參考到測試的輸入數(shù)據(jù)及輸出結(jié)果要求,就可以幫助他們及時(shí)糾正理解上的誤區(qū),使其在一開始就編寫出正確的代碼。前置測試定義了如何在編碼之前對(duì)程序進(jìn)行測試設(shè)計(jì),開發(fā)人員一旦體會(huì)到其中的價(jià)值,就會(huì)對(duì)其表現(xiàn)出特別
17、的欣賞。前置方法不僅能節(jié)省時(shí)間,而且可以減少那些令他們十分厭惡的重復(fù)工作。做一個(gè)專業(yè)的軟件測試員同樣是測試人員,做著可能相同的工作,作出的結(jié)果也可能大致相同。那么以什么作為你工作更加專業(yè)的區(qū)分呢?測試的工作用例編寫,測試執(zhí)行,bug上報(bào),以及功能點(diǎn)測試完成度控制。這些方面都可以體現(xiàn)我們的勞動(dòng)價(jià)值。測試用例的編寫一一當(dāng)別人不愿意編寫測試用例,甚至覺得編寫用例是浪費(fèi)時(shí)間時(shí),倘若你體會(huì)到了用例編寫在測試過程中帶來的功能點(diǎn)覆蓋的全面性。那么你就站在了比他人更高的高度。細(xì)到用例的每條,當(dāng)別人只是簡單的劃分出這是某個(gè)測試點(diǎn),而你已經(jīng)清晰的知道這個(gè)測試點(diǎn)是使用什么方法劃分出來的測試點(diǎn)-例如邊界值,等價(jià)類,因
18、果圖。那么你的確要比那些簡單羅列測試點(diǎn)的人技能上要更高一些。當(dāng)別人還因?yàn)闇y試功能點(diǎn)未全面,而在趕工期忙碌時(shí),倘若你能夠很坦然的根據(jù)自己的測試用例通過率確定已測試功能的質(zhì)量時(shí),你就會(huì)知道你站在了更高的臺(tái)階上。這些都是理論,測試用例要寫的好,要覆蓋面全,那是需要思考的,是絕對(duì)全心投入的思考。是一種創(chuàng)作,不是你拷貝策劃案里的條目就能夠理清的。而是通過把策劃案中的功能點(diǎn)不斷的劃分,直至精確到某個(gè)輸入和輸出結(jié)果。這是一個(gè)急需要腦力勞動(dòng)的過程,一方面要肯定策劃案中的正確的內(nèi)容,另外一方面要考慮這些正常的內(nèi)容是否存在何種異常的操作,而任何一個(gè)異常的內(nèi)容都是不允許沒有輸出結(jié)果的。測試的執(zhí)行一一不是所有的用例都
19、會(huì)精確到點(diǎn)擊鼠標(biāo)左右鍵。所以測試執(zhí)行的速度反應(yīng)著一個(gè)測試人員基本功的扎實(shí)程度。同樣是一個(gè)功能我們會(huì)發(fā)現(xiàn),熟悉系統(tǒng)的測試人員在執(zhí)行測試過程中往往比不熟悉系統(tǒng)的測試人員快。但是不熟悉系統(tǒng)本身就是測試人員自身的素質(zhì)問題。沒有任何借口,既然你是做這個(gè)的,那么允許你開始的懵懂,卻不允許你一而再,再而三的愚蠢。想要比別人突出,那么好好熟悉你得系統(tǒng),最好做到別人知道的你清楚,別人不知道的你知道。bug的上報(bào)一一其實(shí)就是把bug的出現(xiàn)方法和具體出現(xiàn)導(dǎo)致的問題說清楚的過程。語言要簡潔,但是不能簡潔到別人看不懂。要步驟分明,要在執(zhí)行測試過程中不斷嘗試,直至把bug的重現(xiàn)過程縮短到最短??赡軙?huì)浪費(fèi)你很多時(shí)間,但是你
20、要看到這個(gè)的另外一個(gè)好處。當(dāng)別的測試員跟程序人員重現(xiàn)bug,總是找不到重點(diǎn)步驟時(shí),你已經(jīng)深刻理解到要獲得程序人員的重視,bug的步驟越短,越是能夠得到程序人員的贊許。這個(gè)贊許積蓄到一定時(shí)間就成了你自負(fù)的資本。測試結(jié)果的匯報(bào)也很重要,清晰而明了的告訴程序人員或者測試主管,用例的執(zhí)行情況,需要解決的問題-最好指出你問題在用例內(nèi)的出處。這樣有便于程序人員養(yǎng)成查看你用例的習(xí)慣。一般用例生成和程序?qū)崿F(xiàn)是同步進(jìn)行的,在這個(gè)過程中,如果程序人員發(fā)現(xiàn)你用例內(nèi)有的測試點(diǎn)而自己沒有實(shí)現(xiàn),那么可以節(jié)省很多時(shí)間。當(dāng)他多次出現(xiàn)你用例有的內(nèi)容,他沒有實(shí)現(xiàn)到時(shí)這種深刻的記憶將驅(qū)使他檢查你的用例。測試時(shí)間點(diǎn)的把控一一根據(jù)測試
21、用例中測試點(diǎn)的執(zhí)行難易程序,以及測試用例中測試點(diǎn)的條數(shù)可以初步判定功能點(diǎn)的測試完成時(shí)間。最初這個(gè)是需要積累的,當(dāng)用例達(dá)到某個(gè)數(shù)量,當(dāng)用例難度與其它用例執(zhí)行難度可進(jìn)行比較時(shí)就很容易把控時(shí)間點(diǎn)。最好的時(shí)間把控不是預(yù)期3天而實(shí)際只測試1天半,也不是預(yù)期3天實(shí)際測試了5天。最好的時(shí)間點(diǎn)應(yīng)該控制在半個(gè)工作日內(nèi)。測試點(diǎn)的時(shí)間把控對(duì)于測試人員來說也很重要。有時(shí)如果為了進(jìn)度需要寧可多幾個(gè)人一起來完成測試,也不可以因?yàn)闀r(shí)間點(diǎn)的問題導(dǎo)致版本發(fā)布延遲。測試工程師需要什么技能或者具有什么素質(zhì)才是合格的?很多年輕或者剛剛從事測試工作的工程師,經(jīng)常會(huì)問:“測試工程師需要什么技能或者具有什么素質(zhì)才是合格的?”與開發(fā)人員相比
22、,測試人員不但需要一技之長,還需要掌握諸如操作系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡(luò)等多方面的知識(shí)。經(jīng)過這幾年的發(fā)展,國內(nèi)IT公司的測試水平有了很大的提高,但是與此同時(shí),很多測試工程師也迎來了個(gè)人的發(fā)展瓶頸:很多人從測試工程師做到了測試經(jīng)理的職位,不知道下一步如何發(fā)展;或者每天機(jī)械地從事著功能測試工作。根據(jù)作者多年的經(jīng)驗(yàn),一個(gè)有競爭力的測試人員要具有下面三個(gè)方面的素質(zhì):1 .計(jì)算機(jī)專業(yè)技能計(jì)算機(jī)領(lǐng)域的專業(yè)技能是測試工程師應(yīng)該必備的一項(xiàng)素質(zhì),是做好測試工作的前提條件。盡管沒有任何IT背景的人也可以從事測試工作,但是一名要想獲得更大發(fā)展空間或者持久競爭力的測試工程師,則計(jì)算機(jī)專業(yè)技能是必不可少的。計(jì)算機(jī)專業(yè)技能主要包
23、含三個(gè)方面:測試專業(yè)技能現(xiàn)在軟件測試已經(jīng)成為一個(gè)很有潛力的專業(yè)。要想成為一名優(yōu)秀的測試工程師,首先應(yīng)該具有扎實(shí)的專業(yè)基礎(chǔ),這也是本書的編寫目的之一。因此,測試工程師應(yīng)該努力學(xué)習(xí)測試專業(yè)知識(shí),告別簡單的“點(diǎn)擊”之類的測試工作,讓測試工作以自己的專業(yè)知識(shí)為依托。測試專業(yè)知識(shí)很多,本書內(nèi)容主要以測試人員應(yīng)該掌握的基礎(chǔ)專業(yè)技能為主。測試專業(yè)技能涉及的范圍很廣:既包括黑盒測試、白盒測試、測試用例設(shè)計(jì)等基礎(chǔ)測試技術(shù),也包括單元測試、功能測試、集成測試、系統(tǒng)測試、性能測試等測試方法,還包括基礎(chǔ)的測試流程管理、缺陷管理、自動(dòng)化測試技術(shù)等知識(shí)。軟件編程技能“測試人員是否需要編程?”可以說是測試人員最常提出的問題
24、之一。實(shí)際上,由于在我國開發(fā)人員待遇普遍高于測試人員,因此能寫代碼的幾乎都去做開發(fā)了,而很多人則是因?yàn)樽霾涣碎_發(fā)或者不能從事其它工作才“被迫”從事測試工作。最終的結(jié)果則是很多測試人員只能從事相對(duì)簡單的功能測試,能力強(qiáng)一點(diǎn)的則可以借助測試工具進(jìn)行簡單的自動(dòng)化測試(主要錄制、修改、回放測試腳本)。軟件編程技能實(shí)際應(yīng)該是測試人員的必備技能之一,在微軟,很多測試人員都擁有多年的開發(fā)經(jīng)驗(yàn)。因此,測試人員要想得到較好的職業(yè)發(fā)展,必須能夠編寫程序。只有能給編寫程序,才可以勝任諸如單元測試、集成測試、性能測試等難度較大的測試工作。止匕外,對(duì)軟件測試人員的編程技能要求也有別于開發(fā)人員:測試人員編寫的程序應(yīng)著眼于
25、運(yùn)行正確,同時(shí)兼顧高效率,尤其體現(xiàn)在與性能測試相關(guān)的測試代碼編寫上。因此測試人員要具備一定的算法設(shè)計(jì)能力。依據(jù)作者的經(jīng)驗(yàn),測試工程師至少應(yīng)該掌握J(rèn)ava、C#C+之類的一門語言以及相應(yīng)的開發(fā)工具。網(wǎng)絡(luò)、操作系統(tǒng)、數(shù)據(jù)庫、中間件等知識(shí):與開發(fā)人員相比,測試人員掌握的知識(shí)具有“博而不精”的特點(diǎn),“藝多不壓身”是個(gè)非常形象的比喻。由于測試中經(jīng)常需要配置、調(diào)試各種測試環(huán)境,而且在性能測試中還要對(duì)各種系統(tǒng)平臺(tái)進(jìn)行分析與調(diào)優(yōu),因此測試人員需要掌握更多網(wǎng)絡(luò)、操作系統(tǒng)、數(shù)據(jù)庫等知識(shí)。在網(wǎng)絡(luò)方面,測試人員應(yīng)該掌握基本的網(wǎng)絡(luò)協(xié)議以及網(wǎng)絡(luò)工作原理,尤其要掌握一些網(wǎng)絡(luò)環(huán)境的配置,這些都是測試工作中經(jīng)常遇到的知識(shí)。操作
26、系統(tǒng)和中間件方面,應(yīng)該掌握基本的使用以及安裝、配置等。例如很多應(yīng)用系統(tǒng)都是基于Unix、linux來運(yùn)行的,這就要求測試人員掌握基本的操作命令以及相關(guān)的工具軟件。而WebLogic、Websphere等中間件的安裝、配置很多時(shí)候也需要掌握一些。數(shù)據(jù)庫知識(shí)則是更應(yīng)該掌握技能,現(xiàn)在的應(yīng)用系統(tǒng)幾乎離不開數(shù)據(jù)庫。因此不但要掌握基本的安裝、配置,還要掌握SQL測試人員至少應(yīng)該掌握Mysql、MSSqlserverOracle等常見數(shù)據(jù)庫的使用。作為一名測試人員,盡管不能精通所有的知識(shí),但要想做好測試工作,應(yīng)該盡可能地去學(xué)習(xí)更多的與測試工作相關(guān)的知識(shí)。2 .行業(yè)知識(shí)行業(yè)主要指測試人員所在企業(yè)涉及的行業(yè)領(lǐng)域
27、,例如很多IT企業(yè)從事石油、電信、銀行、電子政務(wù)、電子商務(wù)等行業(yè)領(lǐng)域的產(chǎn)品開發(fā)。行業(yè)知識(shí)即業(yè)務(wù)知識(shí),是測試人員做好測試工作的又一個(gè)前提條件,只有深入地了解了產(chǎn)品的業(yè)務(wù)流程,才可以判斷出開發(fā)人員實(shí)現(xiàn)的產(chǎn)品功能是否正確。很多時(shí)候,軟件運(yùn)行起來沒有異常,但是功能不一定正確。只有掌握了相關(guān)的行業(yè)知識(shí),才可以判斷出用戶的業(yè)務(wù)需求是否得到了實(shí)現(xiàn)。行業(yè)知識(shí)與工作經(jīng)驗(yàn)有一定關(guān)系,通過時(shí)間即可以完成積累。3 .個(gè)人素養(yǎng)作為一名優(yōu)秀的測試工程師,首先要對(duì)測試工作有興趣:測試工作很多時(shí)候都是顯得有些枯燥的,因此熱愛測試工作,才更容易做好測試工作。因此,除了具有前面的專業(yè)技能和行業(yè)知識(shí)外,測試人員應(yīng)該具有一些基本的個(gè)
28、人素養(yǎng),即下面的“五心”。專心:主要指測試人員在執(zhí)行測試任務(wù)的時(shí)候要專心,不可一心二用。經(jīng)驗(yàn)表明,高度集中精神不但能夠提高效率,還能發(fā)現(xiàn)更多的軟件缺陷,業(yè)績最棒的往往是團(tuán)隊(duì)中做事精力最集中的那些成員。細(xì)心:主要指執(zhí)行測試工作時(shí)候要細(xì)心,認(rèn)真執(zhí)行測試,不可以忽略一些細(xì)節(jié)。某些缺陷如果不細(xì)心很難發(fā)現(xiàn),例如一些界面的樣式、文字等。耐心:很多測試工作有時(shí)候顯得非常枯燥,需要很大的耐心才可以做好。如果比較浮躁,就不會(huì)做到“專心”和“細(xì)心”,這將讓很多軟件缺陷從你眼前逃過。責(zé)任心:責(zé)任心是做好工作必備的素質(zhì)之一,測試工程師更應(yīng)該將其發(fā)揚(yáng)光大。如果測試中沒有盡到責(zé)任,甚至敷衍了事,這將會(huì)把測試工作交給用戶來
29、完成,很可能引起非常嚴(yán)重的后果。自信心:自信心是現(xiàn)在多數(shù)測試工程師都缺少的一項(xiàng)素質(zhì),尤其在面對(duì)需要編寫測試代碼等工作的時(shí)候,往往認(rèn)為自己做不到。要想獲得更好的職業(yè)發(fā)展,測試工程師們應(yīng)該努力學(xué)習(xí),建立能“解決一切測試問題”的信心?!拔逍摹敝皇亲龊脺y試工作的基本要求,測試人員應(yīng)該具有的素質(zhì)還很多。例如測試人員不但要具有團(tuán)隊(duì)合作精神,而且應(yīng)該學(xué)會(huì)寬容待人,學(xué)會(huì)去理解“開發(fā)人員”,同時(shí)要尊重開發(fā)人員的勞動(dòng)成果一一開發(fā)出來的產(chǎn)品。軟件測試面試題目01.為什么要在一個(gè)團(tuán)隊(duì)中開展軟件測試工作?因?yàn)闆]有經(jīng)過測試的軟件很難在發(fā)布之前知道該軟件的質(zhì)量,就好比ISO質(zhì)量認(rèn)證一樣,測試同樣也需要質(zhì)量的保證,這個(gè)時(shí)候就
30、需要在團(tuán)隊(duì)中開展軟件測試的工作。在測試的過程發(fā)現(xiàn)軟件中存在的問題,及時(shí)讓開發(fā)人員得知并修改問題,在即將發(fā)布時(shí),從測試報(bào)告中得出軟件的質(zhì)量情況。02.您在以往的測試工作中都曾經(jīng)具體從事過哪些工作?其中最擅長哪部分工作?我曾經(jīng)做過web測試,后臺(tái)測試,客戶端軟件,其中包括功能測試,性能測試,用戶體驗(yàn)測試。最擅長的是功能測試。03.您所熟悉的軟件測試類型都有哪些?請?jiān)囍謩e比較這些不同04.的測試類型的區(qū)別與聯(lián)系(如功能測試、性能測試,)測試類型有:功能測試,性能測試,界面測試。功能測試在測試工作中占的比例最大,功能測試也叫黑盒測試。是把測試對(duì)象看作一個(gè)黑盒子。利用黑盒測試法進(jìn)行動(dòng)態(tài)測試時(shí),需要測試
31、軟件產(chǎn)品的功能,不需測試軟件產(chǎn)品的內(nèi)部結(jié)構(gòu)和處理過程。采用黑盒技術(shù)設(shè)計(jì)測試用例的方法有:等價(jià)類劃分、邊界值分析、錯(cuò)誤推測、因果圖和綜合策略。性能測試是通過自動(dòng)化的測試工具模擬多種正常、峰值以及異常負(fù)載條件來對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測試。負(fù)載測試和壓力測試都屬于性能測試,兩者可以結(jié)合進(jìn)行。通過負(fù)載測試,確定在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)是測試當(dāng)負(fù)載逐漸增加時(shí),系統(tǒng)各項(xiàng)性能指標(biāo)的變化情況。壓力測試是通過確定一個(gè)系統(tǒng)的瓶頸或者不能接收的性能點(diǎn),來獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測試。界面測試,界面是軟件與用戶交互的最直接的層,界面的好壞決定用戶對(duì)軟件的第一印象。而且設(shè)計(jì)良好的界面能夠引導(dǎo)用戶自己完成
32、相應(yīng)的操作,起到向?qū)У淖饔?。同時(shí)界面如同人的面孔,具有吸引用戶的直接優(yōu)勢。設(shè)計(jì)合理的界面能給用戶帶來輕松愉悅的感受和成功的感覺,相反由于界面設(shè)計(jì)的失敗,讓用戶有挫敗感,再實(shí)用強(qiáng)大的功能都可能在用戶的畏懼與放棄中付諸東流。區(qū)別在于,功能測試關(guān)注產(chǎn)品的所有功能上,要考慮到每個(gè)細(xì)節(jié)功能,每個(gè)可能存在的功能問題。性能測試主要關(guān)注于產(chǎn)品整體的多用戶并發(fā)下的穩(wěn)定性和健壯性。界面測試更關(guān)注于用戶體驗(yàn)上,用戶使用該產(chǎn)品的時(shí)候是否易用,是否易懂,是否規(guī)范(快捷鍵之類的)是否美觀(能否吸引用戶的注意力),是否安全(盡量在前臺(tái)避免用戶無意輸入無效的數(shù)據(jù),當(dāng)然考慮到體驗(yàn)性,不能太粗魯?shù)膹棾鼍妫??做某個(gè)性能測試的時(shí)候
33、,首先它可能是個(gè)功能點(diǎn),首先要保證它的功能是沒問題的,然后再考慮該功能點(diǎn)的性能測試05.請?jiān)囍容^一下黑盒測試、白盒測試、單元測試、集成測試、系統(tǒng)測試、驗(yàn)收測試的區(qū)別與聯(lián)系。黑盒測試:已知產(chǎn)品的功能設(shè)計(jì)規(guī)格,可以進(jìn)行測試證明每個(gè)實(shí)現(xiàn)了的功能是否符合要求。白盒測試:已知產(chǎn)品的內(nèi)部工作過程,可以通過測試證明每種內(nèi)部操作是否符合設(shè)計(jì)規(guī)格要求,所有內(nèi)部成分是否已經(jīng)過檢查。軟件的黑盒測試意味著測試要在軟件的接口處進(jìn)行。這種方法是把測試對(duì)象看做一個(gè)黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或數(shù)據(jù)驅(qū)動(dòng)測試。
34、黑盒測試主要是為了發(fā)現(xiàn)以下幾類錯(cuò)誤:1、是否有不正確或遺漏的功能?2、在接口上,輸入是否能正確的接受?能否輸出正確的結(jié)果?3、是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(例如數(shù)據(jù)文件)訪問錯(cuò)誤?4、性能上是否能夠滿足要求?5、是否有初始化或終止性錯(cuò)誤?軟件的白盒測試是對(duì)軟件的過程性細(xì)節(jié)做細(xì)致的檢查。這種方法是把測試對(duì)象看做一個(gè)打開的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測試用例,對(duì)程序所有邏輯路徑進(jìn)行測試。通過在不同點(diǎn)檢查程序狀態(tài),確定實(shí)際狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動(dòng)測試。白盒測試主要是想對(duì)程序模塊進(jìn)行如下檢查:1、對(duì)程序模塊的所有獨(dú)立的執(zhí)行路徑至
35、少測試一遍。2、對(duì)所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。3、在循環(huán)的邊界和運(yùn)行的界限內(nèi)執(zhí)行循環(huán)體。4、測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等等。單元測試(模塊測試)是開發(fā)者編寫的一小段代碼,用于檢驗(yàn)被測代碼的一個(gè)很小的、很明確的功能是否正確。通常而言,一個(gè)單元測試是用于判斷某個(gè)特定條件(或者場景)下某個(gè)特定函數(shù)的行為。單元測試是由程序員自己來完成,最終受益的也是程序員自己。可以這么說,程序員有責(zé)任編寫功能代碼,同時(shí)也就有責(zé)任為自己的代碼編寫單元測試。執(zhí)行單元測試,就是為了證明這段代碼的行為和我們期望的一致。集成測試(也叫組裝測試,聯(lián)合測試)是單元測試的邏輯擴(kuò)展。它的最簡單的形式是:
36、兩個(gè)已經(jīng)測試過的單元組合成一個(gè)組件,并且測試它們之間的接口。從這一層意義上講,組件是指多個(gè)單元的集成聚合。在現(xiàn)實(shí)方案中,許多單元組合成組件,而這些組件又聚合成程序的更大部分。方法是測試片段的組合,并最終擴(kuò)展進(jìn)程,將您的模塊與其他組的模塊一起測試。最后,將構(gòu)成進(jìn)程的所有模塊一起測試。系統(tǒng)測試是將經(jīng)過測試的子系統(tǒng)裝配成一個(gè)完整系統(tǒng)來測試。它是檢驗(yàn)系統(tǒng)是否確實(shí)能提供系統(tǒng)方案說明書中指定功能的有效方法。(常見的聯(lián)調(diào)測試)系統(tǒng)測試的目的是對(duì)最終軟件系統(tǒng)進(jìn)行全面的測試,確保最終軟件系統(tǒng)滿足產(chǎn)品需求并且遵循系統(tǒng)設(shè)計(jì)。驗(yàn)收測試是部署軟件之前的最后一個(gè)測試操作。驗(yàn)收測試的目的是確保軟件準(zhǔn)備就緒,并且可以讓最終用
37、戶將其用于執(zhí)行軟件的既定功能和任務(wù)。驗(yàn)收測試是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測試后,已經(jīng)按照設(shè)計(jì)把所有的模塊組裝成一個(gè)完整的軟件系統(tǒng),接口錯(cuò)誤也已經(jīng)基本排除了,接著就應(yīng)該進(jìn)一步驗(yàn)證軟件的有效性,這就是驗(yàn)收測試的任務(wù),即軟件的功能和性能如同用戶所合理期待的那樣。06.測試計(jì)劃工作的目的是什么?測試計(jì)劃工作的內(nèi)容都包括什么?其中哪些是最重要的?軟件測試計(jì)劃是指導(dǎo)測試過程的綱領(lǐng)性文件,包含了產(chǎn)品概述、測試策略、測試方法、測試區(qū)域、測試配置、測試周期、測試資源、測試交流、風(fēng)險(xiǎn)分析等內(nèi)容。借助軟件測試計(jì)劃,參與測試的項(xiàng)目成員,尤其是測試管理人員,可以明確測試任務(wù)和測試方法,保持測試實(shí)
38、施過程的順暢溝通,跟蹤和控制測試進(jìn)度,應(yīng)對(duì)測試過程中的各種變更。測試計(jì)劃和測試詳細(xì)規(guī)格、測試用例之間是戰(zhàn)略和戰(zhàn)術(shù)的關(guān)系,測試計(jì)劃主要從宏觀上規(guī)劃測試活動(dòng)的范圍、方法和資源配置,而測試詳細(xì)規(guī)格、測試用例是完成測試任務(wù)的具體戰(zhàn)術(shù)。所以其中最重要的是測試測試策略和測試方法(最好是能先評(píng)審)07.您認(rèn)為做好測試計(jì)劃工作的關(guān)鍵是什么?1 .明確測試的目標(biāo),增強(qiáng)測試計(jì)劃的實(shí)用性編寫軟件測試計(jì)劃得重要目的就是使測試過程能夠發(fā)現(xiàn)更多的軟件缺陷,因此軟件測試計(jì)劃的價(jià)值取決于它對(duì)幫助管理測試項(xiàng)目,并且找出軟件潛在的缺陷。因此,軟件測試計(jì)劃中的測試范圍必須高度覆蓋功能需求,測試方法必須切實(shí)可行,測試工具并且具有較高
39、的實(shí)用性,便于使用,生成的測試結(jié)果直觀、準(zhǔn)確2 .堅(jiān)持“5W”規(guī)則,明確內(nèi)容與過程“5W”規(guī)則指的是“What(做什么)、“Why(為什么做)、“When(何時(shí)做)、“Where(在哪里)、“How(如何做)利用“5W”規(guī)則創(chuàng)建軟件測試計(jì)劃,可以幫助測試團(tuán)隊(duì)理解測試的目的(Why),明確測試的范圍和內(nèi)容(What),確定測試的開始和結(jié)束日期(When),指出測試的方法和工具(How),給出測試文檔和軟件的存放位置(Where)。3 .采用評(píng)審和更新機(jī)制,保證測試計(jì)劃滿足實(shí)際需求測試計(jì)劃寫作完成后,如果沒有經(jīng)過評(píng)審,直接發(fā)送給測試團(tuán)隊(duì),測試計(jì)劃內(nèi)容的可能不準(zhǔn)確或遺漏測試內(nèi)容,或者軟件需求變更引起
40、測試范圍的增減,而測試計(jì)劃的內(nèi)容沒有及時(shí)更新,誤導(dǎo)測試執(zhí)行人員。4 .分別創(chuàng)建測試計(jì)劃與測試詳細(xì)規(guī)格、測試用例應(yīng)把詳細(xì)的測試技術(shù)指標(biāo)包含到獨(dú)立創(chuàng)建的測試詳細(xì)規(guī)格文檔,把用于指導(dǎo)測試小組執(zhí)行測試過程的測試用例放到獨(dú)立創(chuàng)建的測試用例文檔或測試用例管理數(shù)據(jù)庫中。測試計(jì)劃和測試詳細(xì)規(guī)格、測試用例之間是戰(zhàn)略和戰(zhàn)術(shù)的關(guān)系,測試計(jì)劃主要從宏觀上規(guī)劃測試活動(dòng)的范圍、方法和資源配置,而測試詳細(xì)規(guī)格、測試用例是完成測試任務(wù)的具體戰(zhàn)術(shù)。08.您所熟悉的測試用例設(shè)計(jì)方法都有哪些?請分別以具體的例子來說明這些方法在測試用例設(shè)計(jì)工作中的應(yīng)用。1 .等價(jià)類劃分劃分等價(jià)類:等價(jià)類是指某個(gè)輸入域的子集合.在該子集合中,各個(gè)輸入
41、數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的.并合理地假定:測試某等價(jià)類的代表值就等于對(duì)這一類其它值的測試因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價(jià)類,在每一個(gè)等價(jià)類中取一個(gè)數(shù)據(jù)作為測試的輸入條件,就可以用少量代表性的測試數(shù)據(jù).取得較好的測試結(jié)果.等價(jià)類劃分可有兩種不同的情況:有效等價(jià)類和無效等價(jià)類.2 .邊界值分析法邊界值分析方法是對(duì)等價(jià)類劃分方法的補(bǔ)充。測試工作經(jīng)驗(yàn)告訴我,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入車出范圍的內(nèi)部.因此針對(duì)各種邊界情況設(shè)計(jì)測試用例,可以查出更多的錯(cuò)誤.使用邊界值分析方法設(shè)計(jì)測試用例,首先應(yīng)確定邊界情況.通常輸入和輸出等價(jià)類的邊界就是應(yīng)著重測試的邊界情況
42、.應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù)而不是選取等價(jià)類中的典型值或任意值作為測試數(shù)據(jù)3 .錯(cuò)誤推測法基于經(jīng)驗(yàn)和直覺推測程序中所有可能存在的各種錯(cuò)誤,從而有針對(duì)性的設(shè)計(jì)測試用例的方法.錯(cuò)誤推測方法的基本思想:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)他們選擇測試用例.例如,在單元測試時(shí)曾列出的許多在模塊中常見的錯(cuò)誤.以前產(chǎn)品測試中曾經(jīng)發(fā)現(xiàn)的錯(cuò)誤等,這些就是經(jīng)驗(yàn)的總結(jié).還有,輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況.輸入表格為空格或輸入表格只有一行.這些都是容易發(fā)生錯(cuò)誤的情況.可選擇這些情況下的例子作為測試用例.4 .因果圖方法前面介紹的等價(jià)類劃分方法和邊界值分析方法,都是
43、著重考慮輸入條件,但未考慮輸入條件之間的聯(lián)系,相互組合等.考慮輸入條件之間的相互組合,可能會(huì)產(chǎn)生一些新的情況.但要檢查輸入條件的組合不是一件容易的事情,即使把所有輸入條件劃分成等價(jià)類,他們之間的組合情況也相當(dāng)多.因此必須考慮采用一種適合于描述對(duì)于多種條件的組合,相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來考慮設(shè)計(jì)測試用例.這就需要利用因果圖(邏輯模型).因果圖方法最終生成的就是判定表.它適合于檢查程序輸入條件的各種組合情況.08.您認(rèn)為做好測試用例設(shè)計(jì)工作的關(guān)鍵是什么?白盒測試用例設(shè)計(jì)的關(guān)鍵是以較少的用例覆蓋盡可能多的內(nèi)部程序邏輯結(jié)果黑盒法用例設(shè)計(jì)的關(guān)鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。不可能做到完全測
44、試,以最少的用例在合理的時(shí)間內(nèi)發(fā)現(xiàn)最多的問題09.請以您以往的實(shí)際工作為例,10 .詳細(xì)的描述一次測試用例設(shè)計(jì)的完整的過程。就說最近的這次網(wǎng)站功能的測試吧首先:得到相關(guān)文檔(需求文檔和設(shè)計(jì)文檔),理解需求和設(shè)計(jì)設(shè)計(jì)思想后,想好測試策略(測試計(jì)劃簡單點(diǎn)就OK了),考慮到測試環(huán)境,測試用例,測試時(shí)間等問題。第二步:設(shè)計(jì)測試用例,測試策略是:把網(wǎng)站部分的功能點(diǎn)測試完,然后在進(jìn)行系統(tǒng)測試(另外個(gè)模塊呢有另一個(gè)測試人員負(fù)責(zé),可以進(jìn)行聯(lián)調(diào)測試),網(wǎng)站模塊的測試基本是功能測試和界面測試(用戶并發(fā)的可能性很小,所以不考慮):這次的網(wǎng)站的輸入數(shù)據(jù)呢是使用數(shù)據(jù)庫中的某張表記錄,如果表中某一數(shù)據(jù)記錄中新加進(jìn)來的(還
45、沒有被處理的,有個(gè)標(biāo)志位),網(wǎng)站啟動(dòng)后會(huì)立刻去刷那張表,得到多條數(shù)據(jù),然后在進(jìn)行處理。處理過程中,會(huì)經(jīng)歷3個(gè)步驟,網(wǎng)站才算完成了它的任務(wù)。有3個(gè)步驟呢,就可以分別對(duì)這3個(gè)步驟進(jìn)行測試用例的設(shè)計(jì),盡量覆蓋到各種輸入情況(包括數(shù)據(jù)庫中的數(shù)據(jù),用戶的輸入等),得出了差不多50個(gè)用例。界面測試,也就是用戶看的到的地方,包括發(fā)送的郵件和用戶填寫資料的頁面展示。第三步:搭建測試環(huán)境(為什么這個(gè)時(shí)候考慮測試環(huán)境呢?因?yàn)槲覍?duì)網(wǎng)站環(huán)境已經(jīng)很熟了,只有有機(jī)器能空于下來做該功能測試就可以做了),因?yàn)榫W(wǎng)站本身的環(huán)境搭建和其他的系統(tǒng)有點(diǎn)不同,它需要的測試環(huán)境比較麻煩,需要web服務(wù)器(Apache,tomcat),不過
46、這次需求呢,網(wǎng)站部分只用到了tomcat,所以只要有tomcat即可第四步:執(zhí)行測試。11 .您以往是否曾經(jīng)從事過性能測試工作?如果有,12 .請盡可能的詳細(xì)描述您以往的性能測試工作的完整過程。是的,曾經(jīng)做過網(wǎng)站方面的性能測試,雖然做的時(shí)間并不久(2個(gè)月吧),當(dāng)時(shí)呢,是有位網(wǎng)站性能測試經(jīng)驗(yàn)非常豐富的前輩帶著我一起做。性能測試類型包括負(fù)載測試,強(qiáng)度測試,容量測試等負(fù)載測試:負(fù)載測試是一種性能測試指數(shù)據(jù)在超負(fù)荷環(huán)境中運(yùn)行,程序是否能夠承擔(dān)。強(qiáng)度測試:強(qiáng)度測試是一種性能測試,他在系統(tǒng)資源特別低的情況下軟件系統(tǒng)運(yùn)行情況。容量測試:確定系統(tǒng)可處理同時(shí)在線的最大用戶數(shù)在網(wǎng)站流量逐漸加大的情況下,開始考慮做
47、性能測試了,首先要寫好性能測試計(jì)劃,根據(jù)運(yùn)營數(shù)據(jù)得出流量最大的頁面(如果是第一次的話,一般是首頁,下載頁,個(gè)人帳戶頁流量最大,而且以某種百分比),Web服務(wù)器指標(biāo)指標(biāo):*AvgRps:平均每秒鐘響應(yīng)次數(shù)=總請求時(shí)間/秒數(shù);* SuccessfulRounds:成功的請求;* FailedRounds:失敗的請求;* SuccessfulHits:成功的點(diǎn)擊次數(shù);* FailedHits:失敗的點(diǎn)擊次數(shù);* HitsPerSecond:每秒點(diǎn)擊次數(shù);* SuccessfulHitsPerSecond:每秒成功的點(diǎn)擊次數(shù);* FailedHitsPerSecond:每秒失敗的點(diǎn)擊次數(shù);* Atte
48、mptedConnections:嘗試鏈接數(shù);13 .您在從事性能測試工作時(shí),14 .是否使用過一些測試工具?如果有,15 .請?jiān)囀鲈摴ぞ叩墓ぷ髟恚?6 .并以一個(gè)具體的工作中的例子描述該工具是如何在實(shí)際工作中應(yīng)用的。17 .您認(rèn)為性能測試工作的目的是什么?做好性能測試工作的關(guān)鍵是什么?18 .在您以往的工作中,19 .一條軟件缺陷(或者叫Bug)記錄都包含了哪些內(nèi)容?如何提交高質(zhì)量的軟件缺陷(Bug)記錄?20 .您以往所從事的軟件測試工作中,21 .是否使用了一些工具來進(jìn)行軟件缺陷(Bug)的管理?如果有,22 .請結(jié)合該工具描述軟件缺陷(Bug)跟蹤管理的流程。23 .您認(rèn)為在測試人員
49、同24 .開發(fā)人員的溝通過程中,25 .如何提高溝通的效率和改善溝通的效果?維持測試人員同26 .開發(fā)團(tuán)隊(duì)中其他成員良好的人際關(guān)系的關(guān)鍵是什么?27 .在您以往的測試工作中,28 .最讓您感到不29 .滿意或者不30 .堪回首的事情是什么?您是如何來對(duì)待這些事情的?31 .在即將完成這次筆試前,32 .您是否愿意談一些自己在以往的學(xué)習(xí)和工作中獲得的工作經(jīng)驗(yàn)和心得體會(huì)?(可以包括軟件測試、過程改進(jìn)、軟件開發(fā)或者與此無關(guān)的其他方面)33 .你對(duì)測試最大的興趣在哪里?為什么?最大的興趣就是測試有難度,有挑戰(zhàn)性!做測試越久越能感覺到做好測試有多難。曾經(jīng)在無憂測試網(wǎng)上看到一篇文章,是關(guān)于如何彳好一名測試
50、工程師。一共羅列了11,12點(diǎn),有部分是和人的性格有關(guān),有部分需要后天的努力。但除了性格有關(guān)的1,2點(diǎn)我沒有把握,其他點(diǎn)我都很有信心做好它。剛開始進(jìn)入測試行業(yè)時(shí),對(duì)測試的認(rèn)識(shí)是從無憂測試網(wǎng)上了解到的一些資料,當(dāng)時(shí)是沖著做測試需要很多技能才能做的好,雖然入門容易,但做好很難,比開發(fā)更難,雖然當(dāng)時(shí)我很想做開發(fā)(學(xué)校專業(yè)課我基本上不缺席,因?yàn)槲蚁矚g我的專業(yè)),但看到測試比開發(fā)更難更有挑戰(zhàn)性,想做好測試的意志就更堅(jiān)定了。不到一年半的測試工作中,當(dāng)時(shí)的感動(dòng)和熱情沒有減退一點(diǎn)(即使環(huán)境問題以及自身經(jīng)驗(yàn),技術(shù)的不足,做測試的你一定也能理解)。我覺得做測試整個(gè)過程中有2點(diǎn)讓我覺得很有難度(對(duì)我來說,有難度的東
51、西我就非常感興趣):第一是測試用例的設(shè)計(jì),因?yàn)闇y試的精華就在測試用例的設(shè)計(jì)上了,要在版本出來之前,把用例寫好,用什么測試方法寫?(也就是測試計(jì)劃或測試策略),如果你剛測試一個(gè)新任務(wù)時(shí),你得花一定的時(shí)間去消化業(yè)務(wù)需求和技術(shù)基礎(chǔ),業(yè)務(wù)需求很好理解(多和產(chǎn)品經(jīng)理和開發(fā)人員溝通就能達(dá)到目的),而技術(shù)基礎(chǔ)可就沒那么簡單了,這需要你自覺的學(xué)習(xí)能力,比如說網(wǎng)站吧,最基本的技術(shù)知識(shí)你要知道網(wǎng)站內(nèi)部是怎么運(yùn)作的的,后臺(tái)是怎么響應(yīng)用戶請求的?測試環(huán)境如何搭建?這些都需要最早的學(xué)好。至少在開始測試之前能做好基本的準(zhǔn)備,可能會(huì)遇到什么難題?需求細(xì)節(jié)是不是沒有確定好?這些問題都能在設(shè)計(jì)用例的時(shí)候發(fā)現(xiàn)。第二是發(fā)現(xiàn)BUG的
52、時(shí)候了,這應(yīng)該是測試人員最基本的任務(wù)了,一般按測試用例開始測試就能發(fā)現(xiàn)大部分的bug,還有一部分bug需要測試的過程中更了解所測版本的情況獲得更多信息,補(bǔ)充測試用例,測試出bug。還有如何發(fā)現(xiàn)bug?這就需要在測試用例有效的情況下,通過細(xì)心和耐心去發(fā)現(xiàn)bug了,每個(gè)用例都有可能發(fā)現(xiàn)bug,每個(gè)地方都有可能出錯(cuò),所以測試過程中思維要清晰(測試過程數(shù)據(jù)流及結(jié)果都得看仔細(xì)了,bug都在里面發(fā)現(xiàn)的)c如何描述bug也很有講究,bug在什么情況下會(huì)產(chǎn)生,如果條件變化一點(diǎn)點(diǎn),就不會(huì)有這個(gè)bug,以哪些最少的操作步驟就能重現(xiàn)這個(gè)bug,這個(gè)bug產(chǎn)生的規(guī)律是什么?如果你夠厲害的話,可以幫開發(fā)人員初步定位問題
53、。34 .你的測試職業(yè)發(fā)展是什么?測試經(jīng)驗(yàn)越多,測試能力越高。所以我的職業(yè)發(fā)展是需要時(shí)間累積的,一步步向著高級(jí)測試工程師奔去。而且我也有初步的職業(yè)規(guī)劃,前3年累積測試經(jīng)驗(yàn),按如何做好測試工程師的11,12點(diǎn)要求自己,不斷的更新自己改正自己,做好測試任務(wù)。35 .你自認(rèn)為測試的優(yōu)勢在哪里?優(yōu)勢在于我對(duì)測試堅(jiān)定不移的信心和熱情,雖然經(jīng)驗(yàn)還不夠,但測試需要的基本技能我有信心在工作中得以發(fā)揮。36 .你以前工作時(shí)的測試流程是什么?公司對(duì)測試流程沒有規(guī)定如何做,但每個(gè)測試人員都有自己的一套測試流程。我說下我1年來不斷改正(自己總結(jié),吸取同行的方法)后的流程吧。需求評(píng)審(有開發(fā)人員,產(chǎn)品經(jīng)理,測試人員,項(xiàng)
54、目經(jīng)理)需求確定(出一份確定的需求文檔)開發(fā)設(shè)計(jì)文檔(開發(fā)人員在開始寫代碼前就能輸出設(shè)計(jì)文檔)-想好測試策略,寫出測試用例-發(fā)給開發(fā)人員和測試經(jīng)理看看(非正式的評(píng)審用例)一接到測試版本一執(zhí)行測試用例(中間可能會(huì)補(bǔ)充用例)提交bug(有些bug需要開發(fā)人員的確定(嚴(yán)重級(jí)別的,或突然發(fā)現(xiàn)的在測試用例范圍之外的,難以重現(xiàn)的),有些可以直接錄制進(jìn)TD)開發(fā)人員修改(可以在測試過程中快速的修改)-回歸測試(可能又會(huì)發(fā)現(xiàn)新問題,再按流程開始跑)。37 .當(dāng)開發(fā)人員說不38 .是BUG時(shí),39 .你如何應(yīng)付?開發(fā)人員說不是bug,有2種情況,一是需求沒有確定,所以我可以這么做,這個(gè)時(shí)候可以找來產(chǎn)品經(jīng)理進(jìn)行確
55、認(rèn),需不需要改動(dòng),3方商量確定好后再看要不要改。二是這種情況不可能發(fā)生,所以不需要修改,這個(gè)時(shí)候,我可以先盡可能的說出是BUG的依據(jù)是什么?如果被用戶發(fā)現(xiàn)或出了問題,會(huì)有什么不良結(jié)果?程序員可能會(huì)給你很多理由,你可以對(duì)他的解釋進(jìn)行反駁。如果還是不行,那我可以給這個(gè)問題提出來,跟開發(fā)經(jīng)理和測試經(jīng)理進(jìn)行確認(rèn),如果要修改就改,如果不要修改就不改。其實(shí)有些真的不是bug,我也只是建議的方式寫進(jìn)TD中,如果開發(fā)人員不修改也沒有大問題。如果確定是bug的話,一定要堅(jiān)持自己的立場,讓問題得到最后的確認(rèn)。23 .你為什么想離開目前的職務(wù)?因?yàn)楣具\(yùn)作情況并不理想,公司需要調(diào)整部門體系,公司考慮到縮減部門人員,
56、所以大批量的裁員(有6,7個(gè)),這是我的第一份工作,對(duì)公司也有較深的感情,因?yàn)樵谶@里我找到了職業(yè)理想(就是測試),所以公司需要精簡人員,我自愿退出。雖然很舍不得,但我將會(huì)有新的發(fā)揮能力的舞臺(tái)。24:你對(duì)我們公司了解有多少?25:你找工作時(shí),最重要的考慮因素為何?工作的性質(zhì)和內(nèi)容是否能讓我發(fā)揮所長,并不斷成長。26:為什么我們應(yīng)該錄取你?您可以由我過去的工作表現(xiàn)所呈現(xiàn)的客觀數(shù)據(jù),明顯地看出我全力以赴的工作態(tài)度。27:請談?wù)勀銈€(gè)人的最大特色。我的堅(jiān)持度很高,事情沒有做到一個(gè)令人滿意的結(jié)果,絕不罷手。28 .白箱測試和黑箱測試是什么?什么是回歸測試?29。單元測試、集成測試、系統(tǒng)測試的側(cè)重點(diǎn)是什么?30。設(shè)計(jì)用例的方法、依據(jù)有那些?31。一個(gè)測試工程師應(yīng)具備那些素質(zhì)和技能?32 .集成測試通常都有那些策略?33 .你用過的測試工具的主要功能、性能及其他?34 .一個(gè)缺陷測試報(bào)告的組成35 .基于WEB信息管理系統(tǒng)測試時(shí)應(yīng)考慮的因素有哪些?36 .軟件測試項(xiàng)目從什么時(shí)候開始,?為什么?37 .需求測試注意事項(xiàng)有哪些?38 .簡述一下缺陷的生命周期39 .測試分析測試用例注意(事項(xiàng))?你在你所在的公司是怎么開展測試工作的?是如何組織的?你認(rèn)為理想的測試流程是什么樣子?你是怎樣工作的?軟件測試活動(dòng)的生命周期是什么?請畫出軟件測試活動(dòng)的流程圖?針對(duì)缺陷
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北大學(xué)《建筑給水排水工程》2023-2024學(xué)年第一學(xué)期期末試卷
- 萍鄉(xiāng)學(xué)院《中國現(xiàn)當(dāng)代文學(xué)專題》2023-2024學(xué)年第一學(xué)期期末試卷
- 太原學(xué)院《一帶一路沿線國家社會(huì)與文化》2023-2024學(xué)年第一學(xué)期期末試卷
- 成都農(nóng)業(yè)科技職業(yè)學(xué)院《體育四網(wǎng)球》2023-2024學(xué)年第一學(xué)期期末試卷
- 10kV高低壓配電系統(tǒng)培訓(xùn)
- 宿遷學(xué)院《招貼設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 藥品監(jiān)管人員培訓(xùn)實(shí)施方案
- 廣東文藝職業(yè)學(xué)院《數(shù)字媒體藝術(shù)欣賞》2023-2024學(xué)年第一學(xué)期期末試卷
- 淄博師范高等??茖W(xué)?!短猩教烊凰幬飳W(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 完善流域防洪工程體系實(shí)施方案
- 超聲診斷設(shè)備行業(yè)營銷策略方案
- 江西省九江市2023–2024學(xué)年八年級(jí)下學(xué)期期末考試道德與法治試題(無答案)
- 2025屆湖南省長郡中學(xué)、雅禮中學(xué)等四校高一物理第二學(xué)期期末經(jīng)典試題含解析
- 野外鉆探施工危險(xiǎn)源辨識(shí)及風(fēng)險(xiǎn)評(píng)價(jià)表
- 保健食品經(jīng)營質(zhì)量管理規(guī)范
- 醫(yī)療器械的風(fēng)險(xiǎn)管理培訓(xùn)
- 2024年湖南省公安廳機(jī)關(guān)警務(wù)輔助人員招聘筆試參考題庫附帶答案詳解
- 中華民族共同體概論課件專家版7第七講 華夷一體與中華民族空前繁盛(隋唐五代時(shí)期)
- 青春期的婦科知識(shí)講座
- 中考語文二輪專題復(fù)習(xí)《詩歌賞析之情感把握復(fù)習(xí)》公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 2023起重機(jī)械安全技術(shù)規(guī)程
評(píng)論
0/150
提交評(píng)論