軟件測試資料庫
輸入機構(gòu)/課程/服務名稱

讀懂軟件測試這一篇就夠了

2021-12-09 09:02:05
# 軟件測試 # IT培訓



軟件測試(英文名:Software Testing),描述一種用來促進鑒定軟件的正確性、完整性、安全性和質(zhì)量的過程。其經(jīng)典定義為:在規(guī)定的條件下對程序進行操作,以發(fā)現(xiàn)程序錯誤,衡量軟件質(zhì)量,并對其是否能滿足設(shè)計要求進行評估的過程。換句話說,軟件測試是一種實際輸出與預期輸出之間的審核或者比較過程。


一、測試理論

軟件測試是使用人工操作或者軟件自動運行的方式來檢驗它是否滿足規(guī)定的需求或弄清預期結(jié)果與實際結(jié)果之間的差別的過程。

它是幫助識別開發(fā)完成(中間或最終的版本)的計算機軟件(整體或部分)的正確度(correctness) 、完全度(completeness)和質(zhì)量(quality)的軟件過程;是SQA(software quality assurance)的重要子域。

Glenford J.Myers曾對軟件測試的目的提出過以下觀點:

(1)測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。

(2)好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案。

(3)成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。

(4)測試并不僅僅是為了找出錯誤。通過分析錯誤產(chǎn)生的原因和錯誤的發(fā)生趨勢,可以幫助項目管理者發(fā)現(xiàn)當前軟件開發(fā)過程中的缺陷,以便及時改進。

(5)這種分析也能幫助測試人員設(shè)計出有針對性的測試方法,改善測試的效率和有效性。

(6)沒有發(fā)現(xiàn)錯誤的測試也是有價值的,完整的測試是評定軟件質(zhì)量的一種方法。

(7)另外,根據(jù)測試目的的不同,還有回歸測試、壓力測試、性能測試等,分別為了檢驗修改或優(yōu)化過程是否引發(fā)新的問題、軟件所能達到處理能力和是否達到預期的處理能力等。


二、測試原則

1,測試應該盡早進行,*好在需求階段就開始介入,因為*嚴重的錯誤不外乎是系統(tǒng)不能滿足用戶的需求。

2,程序員應該避免檢查自己的程序,軟件測試應該由第三方來負責。

3,設(shè)計測試用例時應考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下還要制造極端狀態(tài)和意外狀態(tài),如網(wǎng)絡異常中斷、電源斷電等。

4,應該充分注意測試中的群集現(xiàn)象。

5,對錯誤結(jié)果要進行一個確認過程。一般由A測試出來的錯誤,一定要由B來確認。嚴重的錯誤可以召開評審會議進行討論和分析,對測試結(jié)果要進行嚴格地確認,是否真的存在這個問題以及嚴重程度等。

6,制定嚴格的測試計劃。一定要制定測試計劃,并且要有指導性。測試時間安排盡量寬松,不要希望在極短的時間內(nèi)完成一個高水平的測試。

7,妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為維護提供方便。


三、軟件測試誤區(qū)

(1)誤區(qū)之一:軟件開發(fā)完成后進行軟件測試

人們一般認為,軟件項目要經(jīng)過以下幾個階段:需求分析,概要設(shè)計,詳細設(shè)計,軟件編碼,軟件測試,軟件發(fā)布。據(jù)此,認為軟件測試只是軟件編碼后的一個過程。這是不了解軟件測試周期的錯誤認識。軟件測試是一個系列過程活動,包括軟件測試需求分析,測試計劃設(shè)計,測試用例設(shè)計,執(zhí)行測試。因此,軟件測試貫穿于軟件項目的整個生命過程。在軟件項目的每一個階段都要進行不同目的和內(nèi)容的測試活動,以保證各個階段的正確性。軟件測試的對象不僅僅是軟件代碼,還包括軟件需求文檔和設(shè)計文檔。軟件開發(fā)與軟件測試應該是交互進行的,例如,單元編碼需要單元測試,模塊組合階段需要集成測試。如果等到軟件編碼結(jié)束后才進行測試,那么,測試的時間將會很短,測試的覆蓋面將很不全面,測試的效果也將大打折扣。更嚴重的是如果此時發(fā)現(xiàn)了軟件需求階段或概要設(shè)計階段的錯誤,如果要修復該類錯誤,將會耗費大量的時間和人力。

(2)誤區(qū)之二:軟件發(fā)布后如果發(fā)現(xiàn)質(zhì)量問題,那是軟件測試人員的錯

這種認識很打擊軟件測試人員的積極性。軟件中的錯誤可能來自軟件項目中的各個過程,軟件測試只能確認軟件存在錯誤,不能保證軟件沒有錯誤,因為從根本上講,軟件測試不可能發(fā)現(xiàn)全部的錯誤。從軟件開發(fā)的角度看,軟件的高質(zhì)量不是軟件測試人員測出來的,是靠軟件生命周期的各個過程中設(shè)計出來的。出現(xiàn)軟件錯誤,不能簡單地歸結(jié)為某一個人的責任,有些錯誤的產(chǎn)生可能不是技術(shù)原因,可能來自于混亂的項目管理。應該分析軟件項目的各個過程,從過程改進方面尋找產(chǎn)生錯誤的原因和改進的措施。

(3)誤區(qū)之三:軟件測試要求不高,隨便找個人做都行

很多人都認為軟件測試就是安裝和運行程序,點點鼠標,按按鍵盤的工作。這是由于不了解軟件測試的具體技術(shù)和方法造成的。隨著軟件工程學的發(fā)展和軟件項目管理經(jīng)驗的提高,軟件測試已經(jīng)形成了一個獨立的技術(shù),演變成一個具有巨大市場需求的行業(yè)。軟件測試技術(shù)不斷更新和完善,新工具,新流程,新測試設(shè)計方法都在不斷更新,需要掌握和學習很多測試知識。所以,具有編程經(jīng)驗的程序員不一定是一名優(yōu)秀的測試工程師。軟件測試包括測試技術(shù)和管理兩個方面,完全掌握這兩個方面的內(nèi)容,需要很多測試實踐經(jīng)驗和不斷學習的精神。

(4)誤區(qū)之四:軟件測試是測試人員的事情,與程序員無關(guān)

開發(fā)和測試是相輔相成的過程,需要軟件測試人員、程序員和系統(tǒng)分析師等保持密切的聯(lián)系,需要更多的交流和協(xié)調(diào),以便提高測試效率。另外,對于單元測試主要應該由程序員完成,必要時測試人員可以幫助設(shè)計測試樣例。對于測試中發(fā)現(xiàn)的軟件錯誤,很多需要程序員通過修改編碼才能修復。程序員可以通過有目的的分析軟件錯誤的類型、數(shù)量,找出產(chǎn)生錯誤的位置和原因,以便在今后的編程中避免同樣的錯誤,積累編程經(jīng)驗,提高編程能力。

(5)誤區(qū)之五:項目進度吃緊時少做些測試,時間富裕時多做測試

這是不重視軟件測試的表現(xiàn),也是軟件項目過程管理混亂的表現(xiàn),必然會降低軟件測試的質(zhì)量。一個軟件項目的順利實現(xiàn)需要有合理的項目進度計劃,其中包括合理的測試計劃,對項目實施過程中的任何問題,都要有風險分析和相應的對策,不要因為開發(fā)進度的延期而簡單的縮短測試時間、人力和資源。因為縮短測試時間帶來的測試不完整,對項目質(zhì)量的下降引起的潛在風險,往往造成更大的浪費。克服這種現(xiàn)象的*好辦法是加強軟件過程的計劃和控制,包括軟件測試計劃、測試設(shè)計、測試執(zhí)行、測試度量和測試控制。

(6)誤區(qū)之六:軟件測試是沒有前途的工作,只有程序員才是軟件高手

由于我國軟件整體開發(fā)能力比較低,軟件過程很不規(guī)范,很多軟件項目的開發(fā)都還停留在“作坊式”和“壘雞窩”階段。項目的成功往往靠個別全能程序員決定,他們負責總體設(shè)計和程序詳細設(shè)計,認為軟件開發(fā)就是編寫代碼,給人的印象往往是程序員是真正的牛人,具有很高的地位和待遇。因此,在這種環(huán)境下,軟件測試很不受重視,軟件測試人員的地位和待遇自然就很低了,甚至軟件測試變得可有可無。隨著市場對軟件質(zhì)量的不斷提高,軟件測試將變得越來越重要,相應的軟件測試人員的地位和待遇將會逐漸提高。在軟件過程比較規(guī)范的大公司,軟件測試人員的數(shù)量和待遇與程序員沒有多大差別,優(yōu)秀測試人員的待遇甚至比程序員還要高。軟件測試將會成為一個具有很大發(fā)展前景的行業(yè),軟件測試大有前途,市場需要更多具有豐富測試技術(shù)和管理經(jīng)驗的測試人員,他們同樣是軟件專家。


*文章內(nèi)容和圖片均來源于網(wǎng)絡,如有侵權(quán),請聯(lián)系刪除。

查看剩余內(nèi)容
loading
Hi,我是教育寶平臺顧問 添加我的微信,在查找或下載資料時,有任何問題,我會隨時為您解決~
loading
掃描二維碼 添加顧問微信

點贊

收藏

資深學習規(guī)劃師,免費幫您答疑解惑,定制學習方案
限時免費咨詢
喜歡此內(nèi)容的人還喜歡
  1. 軟件測試工程師行業(yè)前景怎么樣?學了有用嗎?
    就業(yè)
    # IT技術(shù)培訓 # 軟件測試培訓
  2. 軟件測試難不難學?學什么?零經(jīng)驗可以做軟件測試嗎?
    攻略
    # IT技術(shù)培訓 # 軟件測試培訓
  3. 軟件測試工程師需要重視的三點
    攻略
    # IT培訓 # 軟件測試師
職位/薪酬更多
教育寶IT技術(shù)頻道
教育寶致力于打造中國最專業(yè)的IT技術(shù)學習平臺,為IT技術(shù)學員、教育機構(gòu)、從業(yè)者和上下游搭建連接、互動、交流和賦能平臺。