天天看點

軟體測試面試題答案整理

1、你的測試職業發展是什麼?

  測試經驗越多,測試能力越高。是以我的職業發展是需要時間積累的,一步步向着進階測試工程師奔去。而且我也有初步的職業規劃,前3年積累測試經驗,按如何做好測試工程師的要點去要求自己,不斷更新自己改正自己,做好測試任務。

  2、你認為測試人員需要具備哪些素質

  做測試應該要有一定的協調能力,因為測試人員經常要與開發接觸處理一些問題,如果處理不好的話會引起一些沖突,這樣的話工作上就會不好做。還有測試人員要有一定的耐心,有的時候做測試很枯燥乏味。除了耐心,測試人員不能放過每一個可能的錯誤。

  3、你為什麼能夠做測試這一行

  雖然我的測試技術還不是很成熟,但是我覺得我還是可以勝任軟體測試這個工作的,因為做軟體測試不僅是要求技術好,還有有一定的溝通能力,耐心、細心等外在因素。綜合起來看我認為我是勝任這個工作的。

  4、測試的目的是什麼?

  測試的目的是找出軟體産品中的錯誤,是軟體盡可能的符合使用者的要求。當然軟體測試是不可能找出全部錯誤的。

  5、測試分為哪幾個階段?

  一般來說分為5個階段:單元測試、內建測試、确認測試、系統測試、驗收測試

  6、單元測試的測試對象、目的、測試依據、測試方法?

  測試對象是子產品内部的程式錯誤,目的是消除局部子產品邏輯和功能上的錯誤和缺陷。測試依據是子產品的詳細設計,測試方法是采用白盒測試。

  7、怎樣看待加班問題

  加班的話我沒有太多意見,但是我還是覺得如果能夠合理安排時間的話,不會有太多時候加班的。

  8、結合你以前的學習和工作經驗,你認為如何做好測試。

  根據我以前的工作和學習經驗,我認為做好工作首先要有一個良好的溝通,隻有溝通無障礙了,才會有好的協作,才會有更好的效率,再一個就是技術一定要過關,做測試要有足夠的耐心,和一個良好的工作習慣,不懂的就要問,實時與同僚溝通這樣的話才能做好測試工作。

  9、你為什麼選擇軟體測試行業

  因為之前了解軟體測試這個行業,覺得他的發展前景很好。

  10、根據你以前的工作或學習經驗描述一下軟體開發、測試過程,由哪些角色負責,你做什麼

  要有架構師、開發經理、測試經理、程式員、測試員。我在裡面主要是負責所分到的子產品執行測試用例。

  11、根據你的經驗說說你對軟體測試/品質保證的了解

  軟體品質保證與測試是根據軟體開發階段的規格說明和程式的内部結構而精心設計的一批測試用例(即輸入資料和預期的輸出結果),并根據這些測試用例去運作程式,以發現錯誤的過程。它是對應用程式的各個方面進行測試以檢查其功能、語言有效性及其外觀排布。

  12、軟體測試的流程是什麼?

  需求調查:全面了解系統概況、應用領域、軟體開發周期、軟體開發環境、開發組織、時間安排、功能需求、性能需求、品質需求及測試要求等。根據系統概況進行項目所需的人員、時間和工作量估計以及項目報價。

  制定初步的項目計劃。

  測試準備:組織測試團隊、教育訓練、建立測試和管理環境等。

  測試設計:按照測試要求進行每個測試項的測試設計,包括測試用例的設計和測試腳本的開發等。

  測試實施:按照測試計劃實施測試。

  測試評估:根據測試的結果,出具測試評估報告。

  13、你對sqa的職責和工作活動(如軟體度量)的了解?

  sqa就是獨立于軟體開發的項目組,通過對軟體開發過程的監控,來保證軟體的開發流程按照指定的cmm規程(如果有相應的cmm規程),對于不符合項及時提出建議和改進方案,必要時可以向高層經理彙報以求問題的解決。通過這樣的途徑來預防缺陷的引入,進而減少後期軟體的維護成本。sqa主要的工作活動包括制定sqa工作計劃,參與階段産物的評審,進行過程品質、功能配置及實體配置的審計等;對項目開發過程中産生的資料進行度量等等。

  14、說說你對軟體配置管理的了解

  項目在開發過程中要用相應的配置管理工具對配置項(包括各個階段的産物)進行變更控制,配置管理的使用取決于項目規模和複雜性及風險的水準。軟體的規模越大,配置管理就越顯得重要。還有在配置管理中,有一個很重要的概念,那就是基線,是在一定階段各個配置項的組合,一個基線就提供了一個正式的标準,随後的工作便基于此标準,并隻有經過授權後才能變更這個标準。配置管理工具主要有cc,vss,cvs,svn等,我隻用過svn,對其他的工具不是很熟悉。

  15、怎樣寫測試計劃和測試用例

  簡單點,測試計劃裡應有詳細的測試政策和測試方法,合理詳盡的資源安排等,至于測試用例,那是依賴于需求(包括功能與非功能需求)是否細化到功能點,是否可測試等。

  16、說說主流的軟體工程思想(如cmm、cmmi、rup,xp,psp,tsp等)的大緻情況及對他們的了解

  cmm:sw capability maturity model軟體能力成熟度模型,其作用是軟體過程的改進、評估及軟體能力的評鑒。

  cmmi:capability maturity model integration能力成熟度模型內建 cmmi融入了大部分最新的軟體管理實踐,同時彌補了sw-cmm模型中的缺陷。

  rup:rational unified process是軟體工程話過程。

  xp:extreme program,即極限程式設計的意思,适用于小型團隊的軟體開發,像上面第三個問題就可以結合原型法采用這樣的開發流程。要明白測試對于xp開發的重要性,強調測試(重點是單元測試)先行的理念。程式設計可以明顯提高代碼的品質,持續內建對于快速定位問題有好處。

  psp,tsp分别是個體軟體過程和群體軟體過程。大家都知道,cmm隻是告訴你做什麼但并沒有告訴你如何做,是以psp/tsp就是告訴你企業在實施cmm的過程中如何做,psp強調建立個人技能(如何制定計劃、控制品質及如何與其他人互相協作等等)。而tsp着重于生産并傳遞高品質的軟體産品(如何有效的規劃和管理所面臨的項目開發任務等等)。總之,實施cmm,永遠不能真正做到能力成熟度的提升,隻有将實施cmm與實施psp和tsp有機結合起來,才能發揮最大的效力。是以,軟體過程架構應該是cmm/psp/tsp的有機內建。

  17、你是怎樣保證軟體品質的,也就是說你覺得怎樣才能最大限度的保證軟體的品質?

  測試并不能夠最大限度的保證軟體的品質,軟體的高品質是開發和設計出來的,而不是測試出來的,它不僅要通過對軟體開發流程的監控,使得軟體開發的各個階段都要按照指定的規程進行,通過對各個階段産物的評審,qa對流程的監控,對功能及配置的審計來達到開發的最優化。當然測試也是保證軟體品質的一個重要方式,是軟體品質保證工程的一個重要組成部分。

  18、基于目前中國的國情,大多數公司的項目進度緊張、人員較少、需求文檔根本沒有或者很不規範,你認為在這種情況下怎樣保證軟體的品質?(大多數公司最想知道的就是在這種困難面前你該怎麼保證軟體的品質,因為這些公司一般就是這種情況--既不想投入過多又想保證品質)

  出現以上的情況,如果僅僅想通過測試來提高軟體品質,那幾乎是不可能的,原因是沒有足夠的時間讓你去測試,少而不規範的文檔導緻測試需求無法細化到足夠且有針對行的測試。是以,作為公司品質保證的因該和項目經理确定符合項目本身是和的軟體生命周期模型(比如rup的建材,原型法),明确項目的開發流程并督促項目組按照此流程開展工作,所有項目組成員(項目經理更加重要)都要制定出合理的工作計劃,加強代碼的單元測試,在客戶既定的産品傳遞日期範圍内,進行産品的持續內建等等,如果時間允許可以再配合客戶進行必要的系統功能測試。

  19、一個測試工程師應該具備哪些素質和技能?

  1-掌握基本的測試基礎理論

  2-本着找出軟體存在的問題的态度進行測試,不要以挑刺的形象出現

  3-可熟練閱讀需求規格說明書等文檔

  4-以使用者的觀點看問題

  5-有強烈的品質意識

  6-細心和責任心

  7-良好的有效的溝通方式(與開發人員及客戶)

  8-具有以往的測試經驗能夠及時準确的判斷出高危險區在何處

  20、做好軟體測試的一些關鍵點

  1-測試人員必須經過測試基礎知識和理論的相關教育訓練

  2-測試人員必須熟悉系統功能和業務

  3-測試要有計劃,而且測試方案要和整個項目計劃協調好

  4-必須實作編寫測試用例,測試執行階段必須根據測試用例進行

  5-易用性,功能,分支,邊界,性能等功能行和非功能性需求都要進行測試

  6-對于複雜的流程一定要進行流程分支,組合條件分析,再進行等價類劃分準備相關測試資料

  7-測試設計的一個重要内容是要準備好具體的測試資料,清楚這個測試資料是測試那個場景或分支的。

  8-個人任務平均每三個測試用例至少應該發現一個bug,否則隻能說明測試用例品質不好

  9-除了每天建構的重複測試可以考慮測試自動化外,其他暫時都不要考慮去自動話

  21、軟體測試員自身素質培養

  1-首先,應對軟體測試感興趣和對自己有自信,如果具備了這兩點,那麼在開發過程中不管遇到什麼樣的困難,相信一定能克服

  2-善于懷疑,實際上沒有絕對正确的,總有錯誤的地方,具有叛逆心理,别人認為不可能發生的事情,我卻認為可能發生,别人認為是對的,我卻認為不是對的。

  3-打破沙鍋問到底的精神,對于隻出現過一次的bug一定要找出原因,不解決誓不罷休。

  4-保持一個良好的心情,否則可能無法把測試做好。不要把生活中的不愉快的情緒帶到工作中來。

  5-做測試時要細心,不是所有的bug都能很容易找出,一定要細心才能找到這些bug。

  6-靈活一些,聰明一點,多造一些容易産生bug的例子。

  7-在有條件的情況下,多和客戶溝通,他們身上有你所需要的。

  8-設身處地為客戶着想,從他們的角度去測試系統。

  9-不要讓程式員,以“這種情況不可能發生”這句話說服你,相反,你應該去說服他,告訴他在客戶心理,并不是這樣的

  10-考慮問題要全面,結合客戶的需求,業務流程和系統的架構等多方面考慮問題。

  11-提出問題不要複雜化,這點和前面沖突,如果你是一個新手,暫時不要管這點,因為最終将有你的小組成員讨論解決。

  12-追求完美,對于新測試員來說,努力追求完美,這對你很好,盡管有些事情無法做到,但你應該嘗試。

  13-幽默感,能和開發小組很好的溝通是關鍵,試着給你的開發小組找一個bug殺手,或對他們說“我簡直不敢相信,你寫的程式居然到現在沒有找到bug”。

  22、為什要在一個團隊中開展測試工作?

  因為沒有經過測試的軟體很難在釋出之前知道該軟體的品質,就好比iso品質認證一樣,測試同樣也需要品質認證,這個時候就需要在團隊中開展軟體測試的工作。在測試的過程中發現軟體中存在的問題,及時讓開發人員得知并修改問題,在即将釋出時,從測試報告中得出軟體的品質情況。

  23、你所熟悉的軟體測試類型有哪些?

  測試類型有:功能測試、性能測試、界面測試

  功能測試在測試工作中占有比例最大,功能測試也叫黑盒測試。

  性能測試是通過自動化的測試工具模拟多種正常、峰值以及異常負載條件來對系統的各項性能名額進行測試。負載測試和壓力測試都屬于性能測試,兩者可以結合進行。

  界面測試,界面是軟體與使用者互動的最直接的層,界面的好壞決定使用者對軟體的第一印象。

  差別在于,功能測試關注産品的所有功能,要考慮到每個細節功能,每個可能存在的功能問題。性能測試主要關注産品整體的多使用者并發下的穩定性和健壯性。界面測試則關注與使用者體驗相關内容,使用者使用該産品的時候是否已用,是否易懂,是否規範(使用者無意輸入無效的資料,當然考慮到體驗性,不能太粗魯的彈出警告)。做某個性能測試的時候,首先它可能是個功能點,首先要保證她的功能是沒有問題的,然後再考慮性能的問題。

  24、你認為做好測試用例設計工作的關鍵是什麼

  白盒測試用例設計的關鍵是以較少的用例覆寫盡可能多的内部程式邏輯結構。黑盒測試用例設計的關鍵同樣也是以較少的用例覆寫子產品輸出和輸入接口。不可能做到完全測試,以最少的用例在合理的時間内發現最多的問題。軟體的黑盒測試意味着測試要在軟體的接口處進行,這種方法是把測試對象看作是一個黑盒子,測試人員完全不考慮程式内部的邏輯結構和内部特性,隻依據程式的需求規格說明書,檢查程式的功能是否符合它的功能說明。是以黑盒測試又叫功能測試或者資料驅動測試。黑盒測試主要是為了發現以下幾類錯誤:、

  1-是否有不正确或遺漏的功能

  2-在接口上,輸入是否能正确的接受?能否輸出正确的結果。

  3-是否有資料結構錯誤或外部資訊(例如資料檔案)通路錯誤

  4-性能上是否能夠滿足要求

  5-是否有初始化或終止性錯誤

  軟體的白盒測試是對軟體的過程性細節做細緻的檢查。這種方法是把測試對象看作一個打開的盒子,它允許測試人員利用程式内部的邏輯結構和有關資訊,設計或者選擇測試用例,對程式所有邏輯路徑進行測試。通過在不同點檢查程式狀态,确定實際狀态是否與預期的狀态一直。是以白盒測試又稱為結合測試或邏輯驅動測試。白盒測試主要是想對程式子產品進行如下檢查:

  1-對程式子產品的所有獨立的執行路徑至少測試一遍。

  2-對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。

  3-在循環的邊界和運作的界限内執行循環體。

  4-測試内部資料結構的有效性,等等。

  25、請詳細介紹一下各種測試類型的含義

  1-單元測試(子產品測試)是開發者編寫的一小段代碼,用于檢驗被測試代碼的一個很小的、很明确的功能是否正确。通常而言,一個單元測試是用于判斷某個特定條件(或者場景)下某個特定函數的行為。單元測試是由程式員自己來完成,最終受益的也是程式員自己。可以這麼說,程式員有責任編寫功能代碼,同時也就有責任為自己的代碼編寫單元測試。執行單元測試,就是為了證明這段代碼的行為和我們期望的一緻。

  2-內建測試(也叫組裝測試、聯合測試)是單元測試的邏輯擴充。它最簡單的形式是:兩個已經經過測試的單元組合成一個元件,并且測試它們之間的接口。從這一層上講,元件是指多個單元的內建聚合。在現實方案中,許多單元組合成元件,而這些元件又聚合成程式的更大部分。方法是測試片段的組合,并最終擴充程序,将您的子產品與其他組的子產品一起測試。最後,将構成程序的所有子產品一起測試。

  3-系統測試是将經過測試的子系統裝配成一個完整系統來測試。它是檢驗系統是否确實能提供系統方案說明書中制定功能的有效方法。(常見的聯調測試)。系統測試的目的是對最終軟體系統進行全面的測試,確定最終軟體系統滿足産品需求而遵循系統設計。

  4-驗收測試是部署軟體之前的最後一個測試操作。驗收測試的目的是確定軟體準備就緒,并且可以讓使用者将其執行軟體的既定功能和任務。驗收測試是向未來的使用者表明系統能夠像預訂要求那樣工作。經內建測試後,已經按照設計把所有的子產品組裝成一個完整的軟體系統,接口錯誤也已經基本排除了,接着就應該進一步驗證軟體的有效性,這就是驗收測試的任務,即軟體的功能和性能如同使用者所合理期待的那樣。

  26、測試計劃工作的目的是什麼?測試計劃工作的内容都包括什麼?其中哪些是最重要的?

  軟體測試計劃是知道測試過程的綱領性檔案,包含了産品概述、測試政策、測試方法、測試區域、測試配置、測試周期、測試資源、測試交流、風險分析等内容。借助軟體測試計劃,參與測試的項目成員,尤其是測試管理人員,可以明确測試任務和測試方法,保持測試實施過程的順暢溝通,跟蹤和控制測試進度,應對測試過程中的各種變更。

  測試計劃和測試詳細規格、測試用例之間是戰略和戰術的關系,測試計劃主要從宏觀上規劃測試活動的範圍、方法和資源配置,而測試詳細規格、測試用例是完成測試任務的具體戰術。是以其中最重要的是測試政策和測試方法(最好能先評審)。

 27、您認為做好測試計劃工作的關鍵是什麼?

  1-明确測試的目标,增強測試計劃的實用性

  編寫軟體測試計劃的重要目的就是使測試過程能夠發現更多的軟體缺陷,是以軟體測試計劃的價值取決于它對幫助管理測試項目,并且找出軟體潛在的缺陷。是以,軟體測試計劃中的測試範圍必須高度覆寫功能需求,測試方法必須切實可行,測試工具并且具有較高的實用性,便于使用,生成的測試結果準确

  2-堅持“5w”規則,明确内容與過程

  “5w”規則指的是“what(做什麼)”、“why(為什麼做)”、"when(何時做)"、"where(在哪裡)"、"how(如何做)"。利用“5w"規則建立軟體測試計劃,可以幫助測試團隊了解測試的目的(why),明确測試的範圍和内容(what),确定測試的開始和結束日期(when),指出測試的方法和工具(how),給出測試文檔和軟體存放的位置(where)。

  3-采用評審和更新機制,保證測試計劃滿足實際需求

  測試計劃完成後,如果沒有經過評審,直接發送給測試團隊,測試計劃内容的可能不準确或遺漏測試内容,或者軟體需求變更引起測試範圍的增減,而測試計劃的内容沒有及時更新,誤導測試執行人員。

  4-分别建立測試計劃與測試詳細規格、測試用例

  應把詳細的測試技術名額包含到獨立建立的測試詳細規格文檔,把用于指導測試小組執行過程的測試用例放到獨立建立的測試用例文檔或測試用例管理資料庫中。測試計劃和測試詳細規格、測試用例之間是戰略和戰術的關系,測試計劃主要從宏觀上規劃測試活動的範圍、方法和資源配置,而測試詳細規格、測試用例是完成測試任務的具體戰術。

  28、當開發人員說不是bug時,你如何應付?

  開發人員說不是bug,有2種情況,一是需求沒有确定,是以我可以這麼做,這個時候可以找來産品經理進行确認,需不需要改動。3方商量确定好後再看要不要改。二是這種情況不可能發生,是以不需要修改,這個時候,我可以先盡可能的說出是bug的一句是什麼?如果被使用者發現或出了問題,會有什麼不良結果?程式員可能會給你很多理由,你可以對他的解釋進行反駁。如果還是不行,那我可以給這個問題提出來,跟開發經理和測試經理進行确認,如果要修改就改,如果不要修改就不改。其實有些真的不是bug,我也隻是建議的方式寫進測試文檔中,如果開發人員不修改也沒有大問題。如果不是bug的話,一定要堅持自己的立場,讓問題得到最後的确認。

  29、你自認為測試的優勢在哪裡?

  優勢在于我對測試堅定不移的信心和熱情,雖然經驗還不足,但測試需要的基本技能我有信心在工作中得以發揮。

  30、什麼是系統瓶頸?

  瓶頸主要是指整個軟硬體構成的軟體系統某一方面或者幾個方面能力不能滿足使用者的特定業務要求,“特定”是指瓶頸會在某些條件下會出現,因為畢竟大多數系統在投入前。

  嚴格的從技術角度講,所有的系統都會有瓶頸,因為大多數系統的資源配置不是協調的,例如cpu使用率剛好達到100%時,記憶體也正好耗盡的系統不是很多見。是以我們讨論系統瓶頸要從應用的角度讨論:關鍵是看系統能否滿足使用者需求。在使用者極限使用系統的情況下,系統的響應仍然正常,我們可以認為改系統沒有瓶頸或者瓶頸不會影響使用者工作。

  是以我們測試系統瓶頸主要是實作下面兩個目的:

  -發現“表面”的瓶頸。主要是模拟使用者的操作,找出使用者極限使用系統時的瓶頸,然後解決瓶頸,這是性能測試的基本目标。

  -發現潛在的瓶頸并解決,保證系統的長期穩定性。主要是考慮使用者在将來擴充系統或者業務發生變化時,系統能夠适應變化。滿足使用者目前需求的系統不是最好的,我們設計系統的目标是在保證系統整個軟體生命周期能夠不斷适應使用者的變化,或者通過簡單擴充系統就可以适應新的變化。

  31、文檔測試主要包含什麼内容?

  在國内軟體開發管理中,文檔管理幾乎是最弱的一項,因而在測試工作中特别容易忽略文檔測試也就不足為奇了。要想給使用者提供完整的産品,文檔測試是必不可少的。文檔測試一般注重下面幾個方面:

  文檔的完整性:主要是測試文檔内容的全面性與完整性,從總體上把握文檔的品質。例如使用者手冊應該包括軟體的所有功能子產品。

  描述與軟體實際情況的一緻性:主要測試軟體文檔與軟體實際的一緻程度。例如使用者手冊基本完整後,我們還要注意使用者手冊與實際功能描述是否一緻。因為文檔往往跟不上軟體版本的更新速度。

  易了解性:主要是檢查文檔對關鍵、重要的操作有無圖文說明,文字、圖表是否易于了解。對于關鍵、重要的操作僅僅隻有文字說明肯定是不夠的,應該附有圖表使說明更為直覺和明了。

  文檔中提供操作的執行個體:這項檢查内容主要針對使用者手冊。對主要功能和關鍵操作提供的應用執行個體是否豐富,提供的執行個體描述是否詳細。隻有簡單的圖文說明,而無執行個體的使用者手冊看起來就像是軟體界面的簡單拷貝,對于使用者來說,實際上沒有什麼幫助。

  印刷與包裝品質:主要是檢查軟體文檔的商品化程度。有些使用者手冊是簡單列印、裝訂而成,過于粗糙,不易于使用者儲存。優秀的文檔例如使用者手冊和技術白皮書,應提供商品化包裝,并且印刷精美。

  32、功能測試用例需要詳細到什麼程度才是合格的?

  這個問題也是測試工程師經常問的問題。有人主張測試用例詳細到每個步驟執行什麼都要寫出來,目的是即使一個不了解系統的新手都可以按照測試用例來執行工作。主張這類寫法的人還可以舉出例子:歐美、日本等軟體外封包檔都是這樣做的。

  另外一種觀點就是主張寫的粗些,類似于編寫測試大綱。主張這種觀點的人是因為軟體開發需求管理不規範,變動十分頻繁,因而不能按照歐美的高标準來編寫測試用例。這樣的測試用例容易維護,可以讓測試執行人員有更大的發揮空間。

  實際上,軟體測試用例的詳細程度首先要以覆寫到測試點為基本要求。舉個例子:“使用者登陸系統”的測試用例可以不寫出具體的執行資料,但是至少要寫出五種以上情況(),如果隻用一句話覆寫了這個功能是不合格的測試用例。覆寫功能點不是指列出功能點,而是要寫出功能點的各個方面(如果組合情況較多時可以采用等價劃分)。

  另一個影響測試用例的就是組織的開發能力和測試對象特點。如果開發力量比較落後,編寫較詳細的測試用例是不現實的,因為根本沒有那麼大的資源投入,當然這種情況很随着團隊的發展而逐漸有所改善。測試對象特點重點是指測試對象在進度、成本等方面的要求,如果進度較緊張的情況下,是根本沒有時間寫出高品質的測試用例的,甚至有些時候測試工作隻是一種輔助工作,因而不編寫測試用例。

  是以,測試用例的編寫要根據測試對象特點、團隊的執行能力等各個方面綜合起來決定編寫政策。最後要注意的是測試人員一定不能抱怨,力争在不斷提高測試用例編寫水準的同時,不斷地提高自身能力。

  33、配置和相容性測試的差別是什麼?

  配置測試的目的是保證軟體在其相關的硬體上能夠正常運作,而相容性測試主要是測試軟體能否與不同的軟體正确協作。

  配置測試的核心内容就是使用各種硬體來測試軟體的運作情況,一般包括:

  (1)軟體在不同的主機上的運作情況,例如dell和apple;

  (2)軟體在不同的元件上的運作情況,例如開發的撥号程式要測試在不同廠商生産的modem上的運作情況;

  (3)不同的外設;

  (4)不同的接口;

  (5)不同的可選項,例如不同的記憶體大小;

  相容性測試的核心内容:

  (1)測試軟體是否能在不同的作業系統平台上相容;

  (2)測試軟體是否能在同一作業系統平台的不同版本上相容;

  (3)軟體本身能否向前或者向後相容;

  (4)測試軟體能否與其它相關的軟體相容;

  (5)資料相容性測試,主要是指資料能否共享;

  配置和相容性測試通稱對開發系統類軟體比較重要,例如驅動程式、作業系統、資料庫管理系統等。具體進行時仍然按照測試用例來執行。

  34、軟體文檔測試主要包含什麼?

  随着軟體文檔系統日益龐大,文檔測試已經成為軟體測試的重要内容。文檔測試對象主要如下:

  -包裝文字和圖形;

  -市場宣傳材料、廣告以及其它插頁;

  -授權、注冊登記表;

  -最終使用者許可協定;

  -安裝和設定向導;

  -使用者手冊;

  -聯機幫助;

  -樣例、示範例子和模闆;

  -……

  文檔測試的目的是提高易用性和可靠性,降低支援費用,因為使用者通過文檔就可以自己解決問題。因文檔測試的檢查内容主要如下:

  -讀者對象——主要是文檔的内容是否能讓該級别的讀者了解;

  -術語——主要是檢查術語是否适合讀者;

  -内容和主題——檢查主題是否合适、是否丢失、格式是否規範等;

  -圖示和螢幕抓圖——檢查圖表的準确度和精确度;

  -樣例和示例——是否與軟體功能一緻;

  -拼寫和文法;

  -文檔的關聯性——是否與其它相關文檔的内容一緻,例如與廣告資訊是否一緻;

  文檔測試是相當重要的一項測試工作,不但要給予充分的重視,更要要認真的完成,象做功能測試一樣來對待文檔測試。

  35、沒有産品說明書和需求文檔地情況下能夠進行黑盒測試嗎?

  這個問題是國内測試工程師經常遇到的問題,根源就是國内軟體開發文檔管理不規範,對變更的管理方法就更不合理了。實際上沒有任何文檔的時候,測試人員是能夠進行黑盒測試的,這種測試方式我們可以稱之為探索測試,具體做法就是測試工程師根據自己的專業技能、領域知識等不斷的深入了解測試對象、了解軟體功能,進而發現缺陷。

  在這種做法基本上把軟體當成了産品說明書,測試過程中要和開發人員不斷的進行交流。尤其在作項目的時候,進度壓力比較大,可以作為加急測試方案。最大的風險是不知道有些特性是否被遺漏。

  36、測試中的“殺蟲劑怪事”是指什麼?

  “殺蟲劑怪事”一詞由borisbeizer在其編著的《軟體測試技術》第二版中提出。用于描述測試人員對同一測試對象進行的測試次數越多,發現的缺陷就會越來越少的現象。就像老用一種農藥,害蟲就會有免疫力,農藥發揮不了效力。這種現象的根本原因就是測試人員對測試軟體過于熟悉,形成思維定勢。

  為了克服這種現象,測試人員需要不斷編寫新的測試程式或者測試用例,對程式的不同部分進行測試,以發現更多的缺陷。也可以引用新人來測試軟體,剛剛進來的新手往往能發現一些意想不到的問題。

  37、在配置測試中,如何判斷發現的缺陷是普通問題還是特定的配置問題?

  在進行配置測試時,測試工程師仍然會發現一些普通的缺陷,也就是與配置環境無關的缺陷。是以判斷新發現的問題,需要在不同的配置中重新執行發現軟體缺陷的步驟,如果軟體缺陷不出現了,就可能是配置缺陷;如果在所有的配置中都出現,就可能是普通缺陷。

  需要注意的是,配置問題可以在一大類配置中出現。例如,撥号程式可能在所有的外置modem中都存在問題,而内置的modem不會有任何問題。

  38、為什麼盡量不要讓時間有富裕的員工去做一些測試?

  表面上看這展現了管理的效率和靈活性,但實際上也展現了管理者對測試的輕視。測試和測試的人有很大關系。測試從業人員應該是勤奮并富有耐心,善于學習、思考和發現問題,細心有條理,總結問題,如果具備這樣的優點,做其它工作同樣也會很出色,是以這裡還有一個要求,就是要喜歡測試這項工作。如果他是專職的,那麼肯定更有經驗和信心。國内的小夥子好象都喜歡做程式員,兩者工作性質不同,待遇不同,地位不同,對自我實作的價值的認識也不同,這是行業的一個需要改善的問題。如果隻是為了完成任務而完成任務,或者發現了幾個問題就覺得滿意了,這在任何其它工作中都是不行的。

  39、完全測試程式是可能的嗎?

  軟體測試初學者可能認為拿到軟體後需要進行完全測試,找到全部的軟體缺陷,使軟體“零缺陷”釋出。實際上完全測試是不可能的。主要有以下一個原因:

  -完全測試比較耗時,時間上不允許;

  -完全測試通常意味着較多資源投入,這在現實中往往是行不通的;

  -輸入量太大,不能一一進行測試;

  -輸出結果太多,隻能分類進行驗證;

  -軟體實作途徑太多;

  -軟體産品說明書沒有客觀标準,從不同的角度看,軟體缺陷的标準不同;

  是以測試的程度要根據實際情況确定。

  40、軟體測試的風險主要展現在哪裡?

  我們沒有對軟體進行完全測試,實際就是選擇了風險,因為缺陷極有可能存在沒有進行測試的部分。舉個例子,程式員為了友善,在調試程式時會彈出一些提示資訊框,而這些提示隻在某種條件下會彈出,碰巧程式釋出前這些代碼中的一些沒有被注釋掉。在測試時測試工程師又沒有對其進行測試。如果客戶碰到它,這将是代價昂貴的缺陷,因為傳遞後才被客戶發現。

  是以,我們要盡可能的選擇最合适的測試量,把風險降低到最小。

繼續閱讀