測試理論知識

2022-10-01 17:48:05 字數 3358 閱讀 7211

測試的基本理論與方法(上)

一、對軟體測試的誤解

1、如果發布出去的軟體有質量問題,那是軟體測試人員的錯。

2、軟體測試技術要求不高,至少比程式設計容易多了

3、軟體測試隨便找乙個能力差的人就能做。

4、軟體測試是測試人員的事,與開發人員無關。

5、設計-實現-測試,軟體測試是開發後期的乙個階段

二、如何理解軟體測試

軟體測試是一種有效的提高軟體質量的手段,但即使在投入上有所保證,測試也不能百分為百發現所有質量隱患。況且軟體質量並不僅僅是測試出來的。

很多人認為軟體測試就是執行一下軟體,看看結果對不對。但實際上,如何在有限的投入下,提高軟體測試的效率和產出是一件很見功底的事。好的測試人員不僅要掌握各種測試技術,還要具備豐富的程式設計經驗和對bug的敏感。

測試的複雜之處,除了測試技術問題之外,還有測試管理問題。

測試不是可有可無,隨心所欲的。規範化的軟體開發需要對軟體測試早做計畫,分配必要的時間,人力和財力等資源,並將其作為專案管理的乙個部分加以控制和協調。

開發和測試是軟體專案相輔相成的兩個過程,人員間的交流,協作和配合是提高整體效率的重要因素。

軟體產品開發完畢,再進行測試的觀念是有悖於生命週期理論的。軟體產品質量問題越晚發現,修復的代價越大。

一些常識和經驗之談

測試能提高軟體的質量,但是提高質量不能依賴測試。

測試只能證明缺陷存在,不能證明缺陷不存在。「徹底地測試」難以成為現實,要考慮時間、費用等限制,不允許無休止地測試。我們應當祈禱:軟體的缺陷在產品被淘汰之前一直沒有機會發作。

測試的主要困難是不知道如何進行有效地測試,也不知道什麼時候可以放心地結束測試。

每個開發人員應當測試自己的程式(份內之事),但是不能作為該程式已經通過測試的依據(所以專案需要獨立測試人員)。

80-20原則:80%的缺陷聚集在20%的模組中,經常出錯的模組改錯後還會經常出錯

測試應當循序漸進,不要企圖一次性幹完,注意「欲速則不達」。

三、軟體測試的定義

軟體測試是為了發現錯誤而執行程式的過程

軟體測試是根據軟體開發各階段的規格說明和程式的內部結構而精心設計一批測試用例(即輸入資料及其預期的輸出結果),並利用這些測試用例去執行程式,以發現程式錯誤的過程。

四、軟體測試的物件

軟體測試不等於程式測試。軟體測試貫穿於軟體定義和開發的整個期間。需求分析,概要設計,詳細設計,以及程式編碼等各個階段所得到的文件,包括需求規格說明,概要設計規格說明,詳細設計規格說明以及源程式,都是軟體測試的物件。

軟體生存各個階段間的確認和驗證

軟體配置:包括軟體需求規格說明、軟體設計規格說明、源**等;

測試配置:包括測試計畫、測試用例、測試驅動程式等。實際上,在整個軟體工程過程中,測試配置只是軟體配置的乙個子集。

測試工具:為提高軟體測試效率,可使用測試工具支援測試工具。例如:測試資料自動生成程式、測試結果分析程式等。

五、測試的目的

測試是程式的執行過程,目的在於發現錯誤;

乙個好的測試用例在於發現至今未發現的錯誤;

乙個成功的測試是發現了至今的錯誤的測試。

六、測試的種類

七、測試的分類與比較

測試方式

白盒測試:關心軟體內部設計和程式實現,主要測試依據是設計文件

黑盒測試:不關心軟體內部,只關心輸入輸出,主要測試依據是需求文件

測試階段

單元測試、整合測試、系統測試、驗收測試。是「從小到大」、「由內至外」、「循序漸進」的測試過程,體現了「分而治之」的思想。

單元測試的粒度最小,一般由開發小組採用白盒方式來測試,主要測試單元是否符合「設計」。

整合測試界於單元測試和系統測試之間,起到「橋梁作用」,一般由開發小組採用白盒加黑盒的方式來測試,既要驗證「設計」又要驗證「需求」。

系統測試的粒度最大,一般由獨立測試小組採用黑盒方式來測試,主要測試系統是否符合「需求規格說明書」。

驗收測試與系統測試非常相似,主要區別是測試人員不同,驗收測試由使用者執行。

開發與測試的 v 型關係

如果軟體開發過程採用嚴格的瀑布模型,那麼開發與測試有「v」型的對應關係 。

測試內容

介面與路徑測試。

功能測試、健壯性測試、效能測試、使用者介面測試、安全性測試、壓力測試、可靠性測試、安裝/反安裝測試…

測試人員的組織

了解開發人員的測試心理

測試的目的是找出盡可能多的缺陷。所以測試是「破壞性」的,而開發卻是「建設性」的。開發人員總是喜歡欣賞程式的成功之處,而不願看到失敗之處。

讓開發者去做「蓄意破壞」的測試,就象殺自己的孩子一樣難以接受。

開發者對自己的程式印象深刻,並總以為是正確的(自信是應該的)。倘若在設計時就存在理解錯誤,或因不良的程式設計習慣而流下了隱患,他本人很難發現這類錯誤.

開發者對自己的程式的功能、介面十分熟悉,他自己幾乎不可能因為使用不當而引發錯誤,這與大眾使用者的情況不太相似,所以測試自己的程式不具備典型性。

結論:開發人員應當測試自己的程式,這是他分內的工作。但是開發人員在測試自己的程式時,很難做到客觀、公正,所以自我測試不具有說服力。

如何組織測試人員:應當視企業的人力資源而定

條件特別好的公司,可以為每乙個開發人員分配一名獨立的測試人員。這樣的測試人員職業化程度很高,可以完成單元測試、整合測試和系統測試工作,能夠實現開發與測試同步進行。

條件比較好的公司,可以設定乙個獨立的測試小組,該測試小組輪流參加各個專案的系統測試。而單元測試、整合測試工作由專案的開發小組承擔。

條件一般的公司,養不起獨立的測試小組。單元測試、整合測試工作由專案開發小組承擔。當專案進展到系統測試階段,可以從專案外抽調一些人員,加上開發人員,臨時組織系統測試小組。

條件比較差的公司,也許只有乙個專案和為數不多的一些開發人員。那麼就讓開發人員一直兼任測試人員的角色,相互測試對方的程式。如果人員實在太少了,只好讓開發者測試自己的程式,有測試總比沒有測試好吧!

避免開發人員與測試人員產生矛盾

開發人員不能很好地測試自己的程式是因為做不到「無情」。但如果測試人員真的做到了「無情」卻會引起開發人員的憤怒,遭人白眼。由於開發與測試存在「對立」關係,開發人員與測試人員很容易產生矛盾,這對專案而言是一種傷害。

開發人員的注意事項:

(1)不要敵視測試人員。要理解測試的目的就是發現缺陷,是測試人員的工作職責。不要以為測試人員吃飽了沒事幹,存心找茬。

(2)不要輕視測試人員,別說人家技術水平差,不配搞開發只好搞測試。

測試人員的注意事項:

(1)發現缺陷時不要嘲笑開發人員,別說他的程式真臭、到處是bug。

(2)在開發人員壓力太大時或心情不好時不要火上澆油,發現缺陷時別大聲嚷嚷。

盡量不要相互諷刺對方,例如:

a對b說:你唯一的特點就是無能。

b對a說:你唯一的特點就是粗魯。

還要注意的是,如果測試人員與開發人員的關係非常好,可能會導致在測試的時候「手下留情」,這對專案也是一種傷害。

黨建理論知識測試題

一 選擇題 4 黨的建設必須堅決實現以下四項基本要求 第一,堅持黨的基本路線 第二,第三,堅持全心全意為人民服務 第四,堅持民主集中制。c a 解放思想,實事求是b 堅持一切從實際出發 c 堅持解放思想,實事求是,與時俱進d 實事求是 5 黨的領導主要是的領導。b a 政治 經濟和文化b 政治 思想...

保育員理論知識測試

一 選擇題 1 餐具的消毒方法是 a 高溫消毒 b 84消毒 c 紫外線消毒 d 日光消毒 2 用於擦洗的 84 消毒液的濃度為 a 1 300 b 1 500 c 1 600 d 1 800 3 托幼機構補褥日光照曬消毒要求 a 每一周一次 b 每兩周一次 c 三周 d 每一月一次 4 兒童應注重...

禮儀理論知識

站姿 十六字訣 頂天立地 抬頭挺胸 鬆肩立胯 前收後緊。具體要求為腳後跟踩實地,大腿內側用力將膝蓋夾緊,抬頭挺胸,收腹收胃收肚子,臀部夾緊收緊,肩胛骨開啟,肩往下沉,脖子伸直,使得脖子貼住後衣領,有乙個頭頂找天花板的感覺。要達到這些要求,可以通過貼牆根站的方法,即背靠牆,使得頭 肩 臀部 腳後跟都貼...