新聞中心

EEPW首頁 > 測試測量 > 軟件測試的基礎(chǔ)知識概要介紹[4]

軟件測試的基礎(chǔ)知識概要介紹[4]

——
作者: 時(shí)間:2006-12-19 來源: 收藏
五、的心理學(xué)問題

  1、程序測試的過程具有破壞性

  人類的活動(dòng)具有高度的目的性,建立適當(dāng)?shù)哪繕?biāo)具有重要的心理作用。如果我們的目的是要證明程序中沒有錯(cuò)誤,那我們就會(huì)不自覺地朝這個(gè)方向去做;也就是說,我們會(huì)傾向于挑選那些使程序出錯(cuò)的可能性較小的測試數(shù)據(jù)。另一方面,如果我們的目標(biāo)是要證明程序中有錯(cuò),那就會(huì)選擇一些易于發(fā)現(xiàn)程序所含錯(cuò)誤的測試數(shù)據(jù)。而后一種態(tài)度會(huì)比前者給程序增添更多的價(jià)值。

  測試的定義意味著程序測試的過程是具有破壞性的,其程度甚至達(dá)到了不可容忍的地步。社會(huì)上大多數(shù)人的人生觀是建設(shè)性的,而不是破壞性的。人們傾向于創(chuàng)造一個(gè)物品,而不是輕易毀壞?個(gè)物品。因此,程序壞?個(gè)物品。因此,程序測試的破壞性的定義使人們對程序測試工作望而生畏。程序測試定義還隱含著如何設(shè)計(jì)測試情況(測過數(shù)據(jù)),以及應(yīng)該由誰和不應(yīng)由誰來測試一個(gè)給定程序等等觀點(diǎn)。

  心理學(xué)研究還告訴我們,當(dāng)人在干一件已經(jīng)知道是不合適的或不可能做到的事時(shí),往往做得不好。例如:如果讓一個(gè)人在15分鐘解出一個(gè)刊登在星期曰《紐約時(shí)報(bào)》上的交叉填字字謎,10分鐘后我們會(huì)看到這人幾乎沒一點(diǎn)進(jìn)展,因?yàn)樗麜?huì)感到實(shí)際上不可能做到而放棄自已的努力。然而,如果我們要求花4小時(shí)解出這題,那也許就會(huì)看到他在開頭的10分鐘內(nèi)有較大的進(jìn)展了。把程序測試定義為在程序中找出錯(cuò)誤的過程,就使測試成了可以做到的任務(wù),從而克服了心理上存在的問題。

  另一個(gè)令人煩躁的問題是即使程序完成了預(yù)期要求,仍可能含有錯(cuò)誤。也就是說,如果程序不按要求工作,它顯然有錯(cuò),但是如果程序做了不要它做的事,它也有錯(cuò)。

  2、程序員應(yīng)避免測試自己的程序

  開發(fā)者被指定測試自己的代碼是一件很糟糕的事。開發(fā)和測試生來就是不同的活動(dòng)。開發(fā)是創(chuàng)造或者建立什么東西的行為,一個(gè)模塊或者整個(gè)系統(tǒng)。而測試的唯一目的是證明一個(gè)模塊或者系統(tǒng)工作不正常。這兩個(gè)活動(dòng)之間有著本質(zhì)的矛盾。一個(gè)人不太可能把兩個(gè)截然對立的角色都扮演的很好?;谶@個(gè)想法,應(yīng)該限制開發(fā)者在測試中的參與。給他們比較合適的任務(wù)是進(jìn)行有可能的最低層的測試--單元測試。不同當(dāng)一個(gè)程序員在完成了設(shè)計(jì),編寫程序的建設(shè)性工作后,要一夜之間突然改變他的觀點(diǎn),設(shè)法對程序形成一個(gè)完全否定的態(tài)度,那是非常困難的。許多戶主都知道,揭掉糊墻紙(破壞性過程〉是不容易的,若糊墻紙?jiān)仁怯伤皇莿e人貼上的,他幾平會(huì)感到難以忍受的沮喪。所以,大部分程序員都由于不能使自己進(jìn)入必要的*狀態(tài)(不是抱著要揭露出自己程序中錯(cuò)誤的態(tài)度),因而不能有效地測試自己的程序。

  除了這個(gè)心理學(xué)問題之外,還有一個(gè)重要的問題:程序中可能包含由于程序員對問題的敘述或說明的誤解而產(chǎn)生的錯(cuò)誤。如果是這種情況,當(dāng)程序員測試自己的程序時(shí),往往還會(huì)帶著同樣的誤解致使問題難以發(fā)現(xiàn)。

  再者,可以把測試看做是對一篇論文或?本書作校對,或與寫評論相類似的工作。正如許多作者所知,校對或批評自己的著作是非常困難的。也就是說,在自已的工作中找出缺陷往往是人的心理狀態(tài)所不容的。

  以上看法并不意味著程序員不可能測試自已的程序。不過相比之下如果由另外?些人來進(jìn)行程序測試,就會(huì)更有效、更成功。注意:這個(gè)論斷并不適用于糾錯(cuò)(改正已知錯(cuò)誤),由原來程序的作者糾錯(cuò)肯定效率更高。

  3、程庫設(shè)計(jì)機(jī)構(gòu)不應(yīng)測試自己的程序

  在許多意義上來說,一項(xiàng)工程或一程序設(shè)計(jì)機(jī)構(gòu)是個(gè)有生命的有機(jī)體,它同樣有心理學(xué)問題。再者,在大多數(shù)情況下,人們都是以在給定日期內(nèi),以一定代價(jià)編制程序的能力來衡量程序設(shè)計(jì)機(jī)構(gòu)和項(xiàng)目管理人員的。這祥做的一個(gè)理由是時(shí)間和成本指標(biāo)便于衡量,而程序的可靠性卻很難度量。要程序設(shè)計(jì)機(jī)構(gòu)在測試自己的程序時(shí)持客觀態(tài)度是困難的,因?yàn)槿绻谜_的定義看待測試,就不大可能按預(yù)定計(jì)劃完成測試也不大可能把耗費(fèi)的代價(jià)限制在要求的范圍以內(nèi)。

  軟件生產(chǎn)的三個(gè)最重要的因素是:質(zhì)量、進(jìn)度和費(fèi)用。

  計(jì)算技術(shù)的進(jìn)步,意味著在經(jīng)濟(jì)領(lǐng)域中信息系統(tǒng)更新的速度更快。新的硬件技術(shù)的發(fā)展,均會(huì)使軟件過時(shí),系統(tǒng)交付使用的時(shí)間變得日益重要,新產(chǎn)品在其性能和費(fèi)用上被其他產(chǎn)品取代之前的推銷時(shí)間,即市場窗口就已經(jīng)縮小了。

  由于費(fèi)用和進(jìn)度的限制,要開發(fā)一種高質(zhì)量、快速交付和低成本的軟件產(chǎn)品變得越來越困難,也就是說要同時(shí)達(dá)到三個(gè)目標(biāo)是困難的。因此在軟件產(chǎn)品的開發(fā)中就要權(quán)衡它們之間的關(guān)系,使軟件的特性能滿足用戶的要求,這意味著軟件產(chǎn)品特性的度量和預(yù)計(jì)是必要的。

  由獨(dú)立測試機(jī)構(gòu)承擔(dān)有許多好處。獨(dú)立測試是指工作由在經(jīng)濟(jì)上和管理上獨(dú)立于開發(fā)機(jī)構(gòu)的組織進(jìn)行。獨(dú)立測試可以避免軟件開發(fā)者測試自己開發(fā)的軟件,由于心理學(xué)上的問題,軟件開發(fā)者難以客觀、有效地測試自己的軟件,而找出那些因?yàn)閷栴}的誤解而產(chǎn)生的錯(cuò)誤就更加困難。獨(dú)立測試還可以避免軟件開發(fā)機(jī)構(gòu)測試自己的軟件,軟件產(chǎn)品的開發(fā)過程受到時(shí)間、成本和質(zhì)量三者的制約,時(shí)間和成本指標(biāo)便于衡量,而質(zhì)量卻很難度量,因此在軟件開發(fā)過程中,當(dāng)時(shí)間、成本和質(zhì)量三者發(fā)生矛盾時(shí),質(zhì)量最容易被忽視,如果測試組織與開發(fā)組織來自相同的機(jī)構(gòu),測試過程就會(huì)面臨來自與開發(fā)組織同一來源的管理方面的壓力,使測試過程受到干擾。

  采用獨(dú)立測試方式,無論在技術(shù)上還是管理上,對提高軟件測試的有效性都具有重要意義。

  ①、客觀性

  對軟件測試和軟件中的錯(cuò)誤抱著客觀的態(tài)度,這種客觀的態(tài)度可以解決測試中的心理學(xué)問題,既能夠以揭露軟件中錯(cuò)誤的態(tài)度工作,也能不受發(fā)現(xiàn)的錯(cuò)誤的影響。經(jīng)濟(jì)上的獨(dú)立性使其工作有更充分的條件按測試要求去完成。
  
 ?、凇I(yè)性
  
  獨(dú)立測試作為一種專業(yè)工作,在長期的工作過程中勢必能夠積累大量實(shí)踐經(jīng)驗(yàn),形成自己的專業(yè)優(yōu)勢。同時(shí)軟件測試也是技術(shù)含量很高的工作,需要有專業(yè)隊(duì)伍加以研究,并進(jìn)行工程實(shí)踐。專業(yè)化分工是提高測試水平,保證測試質(zhì)量,充分發(fā)揮測試效用的必然途徑。
  
   ③、權(quán)威性

  由于專業(yè)優(yōu)勢,獨(dú)立測試工作形成的測試結(jié)果更具信服力,而測試結(jié)果常常和對軟件的質(zhì)量評價(jià)聯(lián)系在一起,由專業(yè)化的獨(dú)立測試機(jī)構(gòu)的評價(jià),更客觀、公正和具有權(quán)威性。

  ④、資源有保證

  獨(dú)立測試機(jī)構(gòu)的主要任務(wù)是進(jìn)行獨(dú)立測試工作,這使得測試工作在經(jīng)費(fèi)、人力和計(jì)劃方面更有保證,不會(huì)因?yàn)殚_發(fā)的壓力減少對測試的投入,降低測試的有效性,可以避免開發(fā)單位側(cè)重軟件開發(fā)而對測試工作產(chǎn)生不利的影響。


關(guān)鍵詞: 軟件測試

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉