測試人員考試試卷(考試時間90分鐘,滿分100分)
一、判斷題(每題1分,12 分,正確的√,錯誤的╳)
1.軟件測試的目的是盡可能多的找出軟件的缺陷。()
軟件測試的目的就是為了發(fā)現(xiàn)軟件中的缺陷,從這個意義上面說上面的這個論斷是正確的。不少人會認為軟件測試可以保證軟件的質(zhì)量,其實這個觀點是錯誤,測試 只是軟件質(zhì)量控制中的一個角色,其活動并不能達成軟件質(zhì)量保證的效果。所以不要認為一個公司里面如果有了軟件測試人員,產(chǎn)品的質(zhì)量就會好起來。
Comments:
我覺得這個關(guān)于測試的目的答案要追溯到軟件測試的定義,可是現(xiàn)在軟件測試并沒有“確切的”統(tǒng)一的定義主要是有以下幾個:
第一種:測試就是發(fā)現(xiàn)缺陷,提高產(chǎn)品質(zhì)量
這個定義大概(我不太確定)可以追溯到G.J.Myers的經(jīng)典著作《軟件測試之藝術(shù)》(The Art of Software Testing)中,給出了測試的定義:“程序測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程”
從這個定義上來說,軟件測試的目的就是找出更多的軟件的缺陷,這道題是對的。
第二種:代表性的有以下三個:
“測試是以評價一個程序或者系統(tǒng)屬性為目標的任何一種活動。測試是對軟件質(zhì)量的度量。”
―――――――――――― 1979年,Glenford Myers《軟件測試藝術(shù)》(The Art of Software Testing)
“使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢測它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實際結(jié)果之間的差別”
――――――――――――――IEEE-1983
“測試是為了度量和提高被測軟件的質(zhì)量,對測試件進行工程設(shè)計、實施和維護的整個生命周期過程。”
――――――――― 2002年,Rick和Stefan《系統(tǒng)的軟件測試》(Systematic Software Testing)
我們可以看到當軟件測試碰上軟件質(zhì)量或CMMI等一批人之后,這個定義就被拔高和廣泛了,拔高的軟件測試的定義一般會牽扯到“過程”,“軟件質(zhì)量”等術(shù)語?傊痪湓挘@就不是單單是軟件的問題了,而是涉及到需求,設(shè)計等一系列的過程。
這樣的話,我們可以判這道題為錯誤的,因為這種說法不完整,是狹義的,列出的理由可能是軟件測試的目的“不僅僅”(注意這個詞)是要發(fā)現(xiàn)軟件的缺陷,因為持這種觀點的人把軟件測試的定義上升到了軟件質(zhì)量控制的高度啦。
矛盾在哪里呢?為什么做這道題時會如履薄冰呢?矛盾在于:
1. 并不是所有的機構(gòu)都持統(tǒng)一的定義標準。
2. 廣義的軟件測試定義只是“完善”了狹義的測試定義的內(nèi)容,并不能說明按狹義的定義就是錯的,關(guān)鍵還在你不知道面試方承認不承認這一點。(通常做完題是沒有機會和面試官討論這一點的)
3. 這份網(wǎng)上流程的題并沒有給出權(quán)威的正確的答案,而很多企業(yè)又拿過來考來考去。
其實我們在看到很多面試的試卷出這道題的時候,權(quán)威的CMM本身確沒有充分定義軟件測試,(這段為引用,沒看過CMM的資料,見如下闡述:)
“但是令人遺憾的是,CMM 沒有充分的定義軟件測試,沒有提及測試成熟度的概念,沒有對測試過程改進進行充分說明,在 KPA 中沒有定義測試問題,與質(zhì)量相關(guān)的測試問題如可測性,充分測試標準,測試計劃等方面也沒有滿意的闡述。”
如果真是這樣的話,倒是打了出題的人一巴掌。不過TMM倒是給了段測試目的的定義;
TMM 測試成熟度分解為 5 級別,關(guān)注于 5 個成熟度級別遞增:
Phase 0 :測試和調(diào)試沒有區(qū)別,初了支持調(diào)試外,測試沒有其他目的
Phase 1 :測試的目的是為了表明軟件能夠工作
Phase 2 :測試的目的是為了表明軟件不能夠能夠正常工作
Phase 3 :測試的目的不是要證明什么,而是為了把軟件不能正常工作的預(yù)知風險降低到能夠接受的程度
Phase 4 : 測試不是行為,而是一種自覺的約束 (mental discipline) ,不用太多的測試投入產(chǎn)生低風險的軟件上的 。
但可以肯定的是這個定義也只能用來理解理解,完全不能用來做是非題。
完了,以上其實都是教條主義,說說我的看法,樸素一點的說,其實我覺得軟件測試的目的要服務(wù)項目的目標,有篇流傳很廣的文章是這么說的:
“軟件測試的目的決定了如何去組織測試。如果測試的目的是為了盡可能多地找出錯誤,那么測試就應(yīng)該直接針對軟件比較復(fù)雜的部分或是以前出錯比較多的位置。如 果測試目的是為了給最終用戶提供具有一定可信度的質(zhì)量評價,那么測試就應(yīng)該直接針對在實際應(yīng)用中會經(jīng)常用到的商業(yè)假設(shè)。” Over,我覺得這個說法好。
從這幾道流行的軟件測試面試題想到的(二)
軟件測試可以劃分為幾種類型?(或軟件測試分哪幾種?)+測試方法分為哪幾種?
Comments:
這道題常見的程度不亞于第一道題,上當?shù)脑捯婚_始就上來給一陣狂列,然后你自己就暈了,不過傳說中的22種測試類型都能背得住的差不多也是半個神人了。
1. 關(guān)于軟件測試可以劃分為幾種類型的問題?個人認為我覺得這個一味的羅列并不是最好的答案。我更覺得其實這道題只要說出你的劃分依據(jù)不用列那么多種也是份不錯的答案(當然如果是面試的話。咱們可以以“啊哈,這個問題嘛,關(guān)鍵要看你以什么來劃分了”來開頭),以下是參考:
按測試要素分:
――UI測試,單元測試,系統(tǒng)測試,功能測試,兼容性測試,本地化測試,壓力負載測試,web測試
按測試階段分:
A.詳細測試(Comprehensive Testing,F(xiàn)C階段,可能包含單元測試和集成測試)
B.回歸測試(Regression Testing)
C.驗收測試 (Qualification Testing,RC&RTM階段)
按測試方法(手段)分:
A.腳本測試(Scripted testing,ST)
B. 隨機測試(Ad_hoc testing)
C.探索性測試(Exploratory testing,ET)
從是否執(zhí)行程序的角度
A.靜態(tài)測試
B.動態(tài)測試。
(個人覺得這種劃分沒多大必要)
從是否關(guān)心軟件內(nèi)部結(jié)構(gòu)和具體實現(xiàn)的角度劃分
A.白盒測試
B.黑盒測試
C.灰盒測試
足以,再多說也是浪費口舌。
2. 區(qū)分一下測試類型和測試方法的異同,
OK,回來再問一遍,測試方法分為哪幾種?
哈哈,其實是本人有感于時不時聽到諸如黑盒測試方法,性能測試方法這類詞眼時,耳朵經(jīng)常失靈,別扭,這句話就象是有人在發(fā)問“軟件測試的手段有哪些”,低下有人喊了“黑盒測試方法,性能測試方法”,可我還是覺得你說的是測試的類型而不是測試的方法(手段)。面試時注意人家問你的是什么?
可能有點吹毛求疵的感覺,但實際上如果能用“黑盒測試的方法有哪些”或“性能測試的手段有哪些”等詞我覺得會好一些,這樣起碼讓人家知道黑盒測試,性能測試是一種類型,實現(xiàn)它有好幾種方法,即OO中的class.method的意味。
總之,測試類型和測試方法要分開。
從這幾道流行的軟件測試面試題想到的(三)
3.下列關(guān)于alpha 測試的描述中正確的是:()
A.alpha 測試需要用戶代表參加
B.alpha 測試不需要用戶代表參加
C.alpha 測試是系統(tǒng)測試的一種
D.alpha 測試是驗收測試的一種
Comments:
首先我們來看一下Alpha測試和Beta測試的定義:
Alpha測試與Beta測試的定義 (引用網(wǎng)上的文章)
Alpha版 (內(nèi)部測試版) :一般只在軟件開發(fā)公司內(nèi)部運行,不對外公開。主要是開發(fā)者自己對產(chǎn)品進行測試,檢查產(chǎn)品是否存在缺陷、錯誤,驗證產(chǎn)品功能與說明書、用戶手冊是否一致。
【Alpha測試------軟件工程導論(第四版) 清華大學出版社
Alpha測試由用戶在開發(fā)者的場所進行,并且在開發(fā)者對用戶的“指導”下進行測試。開發(fā)者負責記錄發(fā)現(xiàn)在錯誤和使用中遇到的問題?傊珹lpha測試是在受控的環(huán)境中進行的。 】
Beta版(外部測試版):軟件開發(fā)公司為對外宣傳,將非正式產(chǎn)品免費發(fā)送給具有典型性的用戶,讓用戶測試該軟件的不足之處及存在問題,以便在正式發(fā)行前進一步改進和完善。一般可通過Internet免費下載,也可以向軟件公司索取。
據(jù)百度所講,廣義上對測試有三個傳統(tǒng)的稱呼,alpha、beta、gamma,用來標識測試的階段和范圍。alpha 是指內(nèi)測,即現(xiàn)在說的 CB,指開發(fā)團隊內(nèi)部測試的版本或者有限用戶體驗測試版本。beta 是指公測,即針對所有用戶公開的測試版本。然后做過一些修改,成為正式發(fā)布的候選版本時(現(xiàn)在叫做 RC - Release Candidate),叫做 gamma。
1.OK,很簡單,這道題是要澄清一下Alpha測試和Beta測試時,用戶在不在場的問題。
答案是都在場,只不過Alpha時在開發(fā)者的場所,Beta時在用戶自己的場所。
2.把這道題擴展一下,我們來討論一下Alpha測試和Beta測試時,測試人員要不要在場的問題。
答案是:測試人員都不在場
3.實際的情況是只有大的IT公司才遵從這些測試規(guī)范,更加現(xiàn)實的情況是不管Alpha或Beta測試什么人在場都有。如果你能為規(guī)范的大公司工作,那你接觸到的流傳都會是很嚴格的。
相關(guān)導讀: