測試基本概念



可視化編輯器,alt+1到9鍵,切換到工具區,tab鍵,選擇按鈕,esc鍵,返回編輯


軟件測試(英語:software testing),描述一種用來促進鑑定軟件的正確性、完整性、安全性和質量的過程。換句話說,軟件測試是一種實際輸出與預期輸出間的審覈或者比較過程。軟件測試的經典定義是:在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,並對其是否能滿足設計要求進行評估的過程。

測試簡介

軟件測試是使用人工操作或者軟件自動運行的方式來檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別的過程。它是幫助識別開發完成(中間或最終的版本)的計算機軟件(整體或部分)的正確度(correctness) 、完全度(completeness)和質量(quality)的軟件過程;是SQA(software quality assurance)的重要子域。
Glenford J.Myers曾對軟件測試的目的提出過以下觀點:


1.測試是爲了發現程序中的錯誤而執行程序的過程。
2.好的測試方案是極可能發現迄今爲止尚未發現的錯誤的測試方案。
3.成功的測試是發現了至今爲止尚未發現的錯誤的測試。
4.測試並不僅僅是爲了找出錯誤。通過分析錯誤產生的原因和錯誤的發生趨勢,可以幫助項目管理者發現當前軟件開發過程中的缺陷,以便及時改進。
5.這種分析也能幫助測試人員設計出有針對性的測試方法,改善測試的效率和有效性。
6.沒有發現錯誤的測試也是有價值的,完整的測試是評定軟件質量的一種方法。
7.另外,根據測試目的的不同,還有迴歸測試、壓力測試、性能測試等,分別爲了檢驗修改或優化過程是否引發新的問題、軟件所能達到處理能力和是否達到預期的處理能力等。

測試原則
1.測試應該儘早進行,最好在需求階段就開始介入,因爲最嚴重的錯誤不外乎是系統不能滿足用戶的需求。
2.程序員應該避免檢查自己的程序,軟件測試應該由第三方來負責。
3.設計測試用例時應考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下要製造極端狀態和意外狀態,如網絡異常中斷、電源斷電等。
4.應該充分注意測試中的羣集現象。
5.對錯誤結果要進行一個確認過程。一般由A測試出來的錯誤,一定要由B來確認。嚴重的錯誤可以召開評審會議進行討論和分析,對測試結果要進行嚴格地確認,是否真的存在這個問題以及嚴重程度等。
6.制定嚴格的測試計劃。一定要制定測試計劃,並且要有指導性。測試時間安排儘量寬鬆,不要希望在極短的時間內完成一個高水平的測試。
7.妥善保存測試計劃、測試用例、出錯統計和最終分析報告,爲維護提供方便。

測試目標
1.發現一些可以通過測試避免的開發風險。
2.實施測試來降低所發現的風險。
3.確定測試何時可以結束。
4.在開發項目的過程中將測試看作是一個標準項目。

案例分析:
我們接着上一章的例子來說明什麼是軟件測試。李女士的網店設計好了, 那測試人員怎麼測試呢?顯然測試工程師需要站在用戶的角度來切身體驗這款軟件,測試的基本點包括:


1.下載,安裝和卸載軟件,其中該軟件支持哪些手機系統以及對手機品牌是否有限制。
2.是否能正常打開軟件,註冊用戶以及登錄。
3.界面是否友好,設計風格是否滿足主題消費羣。
4.基本功能是否正常使用並且運行流暢。
5.... ...

測試目的
一個合格的或者說是一個有價值的軟件測試工程師,首先要知道自己從事的這份職業到底對軟件的生命起着什麼樣的作用。在這裏,我想說,軟件測試工程師給了軟件第二次生命,讓軟件能夠健康茁壯成長。那麼軟件測試的目的何在呢?
第一是確認軟件的質量,其一方面是確認軟件做了你所期望做的事情(Do the right thing),另一方面是確認軟件以正確的方式來做了這個事情(Do it right)。
第二是提供信息,比如提供給開發人員或程序經理的回饋信息,爲風險評估所準備的信息。
第三軟件測試不僅是在測試軟件軟件產品本身,而且還包括軟件開發的過程。如果一個軟件產品開發完成之後發現了很多問題,這說明此軟件開發過程很可能是有缺陷的。因此,軟件測試的第三個目的是保證整個軟件開發過程是高質量的。
在此引用引用Grenford J. Myers在《The Art of Software Testing》一書中的觀點:


l  軟件測試是爲了發現錯誤而執行程序的過程;

l  測試是爲了證明程序有錯,而不是證明程序無錯誤;

l  一個好的測試用例是在於它能發現至今未發現的錯誤;

l  一個成功的測試是發現了至今未發現的錯誤的測試;

這種觀點可以提醒人們測試要以查找錯誤爲中心,而不是爲了演示軟件的正確功能。但是僅憑字面意思理解這一觀點可能會產生誤導,認爲發現錯誤是軟件測試的唯一目,查找不出錯誤的測試就是沒有價值的,事實並非如此。
首先,測試並不僅僅是爲了要找出錯誤。通過分析錯誤產生的原因和錯誤的分佈特徵,可以幫助項目管理者發現當前所採用的軟件過程的缺陷,以便改進。同時,這種分析也能幫助我們設計出有針對性地檢測方法,改善測試的有效性。
其次,沒有發現錯誤的測試也是有價值的,完整的測試是評定測試質量的一種方法。詳細而嚴謹的可靠性增長模型可以證明這一點。
因此,軟件測試的第三個目的是保證整個軟件開發過程是高質量的。
最後從軟件生命週期投資來考慮,軟件測試能夠在軟件孕育初期就開始保證質量,那麼就是有效地避免了軟件重新投資的風險。
案例分析:
用戶測試XXX產品,發現上面有個鏈接,當點擊鏈接之後出現了以下頁面,那麼這是個bug嗎?有些人分析這是產片自身的設計,看那頁面多卡哇伊啊,有些人分析這個產品有問題啊,我想點擊鏈接去查看相關信息,卻調出來什麼404的東東,儘管頁面設計好看,可是沒有找到我要的頁面啊!
軟件測試的目的就是爲了保證產品的質量,找到產品潛在的以及明顯的問題,是爲了發現問題而執行的過程,而不是主觀猜測,所以要儘可能的提出在測試過程中發現的任何問題。


 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章