軟件工程筆記:亡羊補牢爲時不晚

亡羊補牢爲時不晚

— 筆記整理自 北京理工大學 計算機學院

不容忽視的測試

  • 亡羊補牢
  • 測試不簡單, 工作量很大,很累,很複雜
  • 測試自動化是必由之路
  • 軟件產品質量不能只靠測試

軟件測試基本原則

  • 程序員應避免測試自己編寫的程序; (這樣是測不出來什麼的)
  • 測試用例的設計必須包括預期的輸出結果;
  • 測試用例應包括有效的和期望的輸入情況,也要包括無效的和不期望的輸入情況;
  • 只檢查程序是否做了它應該做的事這僅完成了測試工作的一半,另一半則是要檢查程序是否做了它不該做的事;(後門)
  • 徹底檢查每個測試結果;
  • 避免不可重複的即興測試,保留全部測試用例;
  • 一段程序中存在錯誤的概率與在這段程序中已發現的錯誤數成比例;
  • 測試是一項非常複雜的、創造性的和需要高度智慧的挑戰性任務;
  • 不能爲了便於測試擅自修改程序;(一定要區分開發環境,測試環境,上線環境,代碼版本一定要明確,責任一定要明確)
  • 測試工作必須有明確的目標;
  • 儘早地和不斷地進行軟件測試。

有關測試的幾個誤區

  • 測試範圍: 代碼、文檔
    • 代碼 + 文檔
    • 維護代碼和文檔之間正確的對應關係
  • 測試簡單?
    • 測試活動已經變成了一項新的軟件開發項目,很複雜
    • 測試本身就是一項新的開發,對測試用例的開發
  • 什麼時候開始測試?
    • 測試用例
    • 測試用例的編寫應該在需求明確之後開始
  • 測試可以驅動開發
    • 不再是亡羊補牢式的工作
    • TDD(Test- Driven Developement)
    • 可以引導代碼的編寫

疲於奔命捉Bug

  • 編碼隨意 -> 編碼規範
  • Quickly and Ugly -> 重構 + 單元測試
  • 只顧編碼,不顧文檔 -> 隨時註釋 + 文檔自動化

捉Bug有組織有紀律

無規矩,不成方圓

  • 有組織:分測試組,測試組長,測試工程師
  • 有目的:壓力測試還是集成測試
  • 有計劃:什麼時候測,哪些人,哪些資源
  • 有範圍:測試範圍是什麼,哪些模塊,模塊之間的接口等
  • 有接口:研發提供給測試接口文檔
  • 有數據:模擬數據,區分線上數據
  • 有維護:測試腳本的維護

自動化捉Bug

  • 有人提出可以用一種自動化的方式殺死蟑螂:
    • 讓蟑螂靜止站立在砧板中間,如何做?最難的問題
    • 用蟑螂拍對準蟑螂猛拍一下
    • 把砧板、蟑螂拍上的髒東西洗乾淨

CASE

  • CASE工具由三個步驟組成:
    • 分析並設計出明確的需求規格說明書
    • 建立功能點和源代碼(及文檔)一一對應的數據字典
    • 將需求規格說明書轉化爲源代碼和文檔

測試工具

  • 隨着軟件測試的地位逐步提高,測試的重要性逐步顯現,測試工具的應用已經成爲了普遍的趨勢
  • 目前用於測試的工具一般可分爲
    • 用於測試管理(測試流程管理、缺陷跟蹤管理、測試用例管理)的工具
    • 白盒測試工具
    • 黑盒測試工具
    • 性能測試工具

應用測試工具的目的

  • 提高測試質量
  • 減少測試過程中的重複勞動,提高效率
  • 實現測試自動化

日益強大的測試工具

  • WinRunner:模擬用戶點擊操作
  • LoadRunner:模擬成千上萬客戶端對服務器進行測試
  • Jmeter:基於Java的壓力測試工具
  • 等等

提高軟件質量的方法

  • 提高產品質量是一個終極目標
  • 捉Bug不是唯一的辦法
  • 提高分析水平,設計水平,編碼水平
  • 提高管理水平和團隊協作能力
  • 提高軟件開發過程開發、管理和優化
  • 引入軟件質量保證: SQA

第三方軟件評測

  • 國家級和省級軟件評測中心
  • 致力於軟件工程、質量管理、軟件系統測試、信息系統集成資質認證、ISO9000認證諮詢、CMMI認證諮詢、信息系統工程監理、信息系統驗收評估等領域的研究與實踐
  • 示例:上海市軟件評測中心進行軟件產品登記測試

備註:圖片託管於github,請確保網絡的可訪問性

擴展閱讀

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