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