軟體測試-第一天
一、軟體基礎
1.1、軟體概念
是交給客戶一整套的方案,包含計算機程式以及其他文件
-
軟體=程式+文件(功能需求、軟體設計、專案計劃、專案報告、使用者手冊)
-
文件:通過文件可以讓人清楚知道軟體結構、程式設計思想、系統執行環境、軟體操作方法,讓人們對軟體更方便的使用和維護。
1.2、軟體分類
應用程式:滿足人們對軟體的使用
作業系統:管理硬體和軟體的一整套作業系統
驅動程式:連線作業系統與硬體系統。
其他程式:編譯語言(編輯器把高階語言程式轉變成等價的機器語言格式)、資料庫(按照數 據結構來組織儲存和管理資料的倉庫,使用者可以對資料的增刪改查)
1.2.1、語言分類
機器語言:機器識別的語言,二進位制語言,指揮識別0、1
組合語言:對機器語言的封裝,直接和硬體互動,操作硬體。
高階語言:面向人的角度,用人的字元去編寫程式,讓機器對人的字元進行翻譯執行
高階語言拓展:高階語言分編譯語言(程式需要進行編譯,將高階語言翻譯成機器語言目標程式如等C、Java,效率快)和解釋語言(邊翻邊遍執行如python、js、php等)
1.3、軟體架構
軟體架構有兩種:
C/S:client/server 客戶端/伺服器
B/S:browser/server 瀏覽器/伺服器
區別:bs沒有客戶端,cs有客戶端。cs更新客戶端,bs不跟新客戶端。bs使用HTTP/HTTPS協議,cs公司自己的協議,cs模型安全性高(自己公司的協議)
1.4、軟體研發
1.4.1、基本概念和流程
基本概念:根據客戶需求建造出軟體系統或者系統中軟體部分的過程,簡單講就是我們要做一個什麼東西
大致流程:
需求澄清(學習需求,確定系統的執行環境,確定軟體的功能和效能需求)-版本計劃(給整個軟體研發做個計劃)-需求分析-軟體設計-UI設計(介面設計)-測試計劃-編碼-除錯-測試-軟體交付一系列過程稱為軟體研發。
1.4.2、軟體開發模型
瀑布模型
計劃-需求分析-設計-編碼-測試-執行維護
特點:上一階段的結果是下一段的輸入,相鄰的兩個階段有因果關係,中間一個環節出現問題,返回重做。
優點:
- 有利於大型軟體開發過程中人員的組織與管理
- 有利於開發工具和方法的使用
- 提高軟體質量和效率
缺點:
- 初始化階段指出全部需求
- 中間環節出現問題,重新返回重做
敏捷研發模型
一種以人為核心、迭代循序漸進的開發思想,在軟體的研發被切分多個階段,各階段都具備獨立執行,以及獨立交付的特徵。
迭代 sprint:在進行較大的專案任務時,將研發的過程分為若干輪次,每一個輪次稱為一個迭代,迭代要經歷從專案計劃、設計、實現、報告完畢整個過程
軟體公司的術語:站立會(早會15分鐘左右一群人站在一起),看板(黑板,任務分配,計劃),燃盡圖(專案進度圖表示圖)
1.5、軟體開發
基本概念:軟體開發不只是軟體開發,包括
需求分析(需求來源使用者,BA及產品經理對使用者需求整理)-
軟體設計(概要設計+詳細設計)-
編碼(簡單講就是為了解決某個問題,用人的思維將程式語言,編寫成程式碼的過程)-
除錯過程稱為軟體開發。
1.5.1、軟體開發設計
軟體設計就是將使用者需求變成程式系統的重要環節,分兩塊概要設計和詳細設計
概要設計:總體劃分各個模組,定義各個功能模組之間的介面
詳細設計:定義各個模組之間介面的詳細內容和具體的實現演算法
1.6、軟體環境
環境概念:軟體所依賴的硬體、服務、網路等的總稱
環境分類:開發環境,測試環境,生產環境(線上)
1.7、軟體部署
將軟體部署到網路、硬體、服務上去的過程。
1.8、軟體介面
介面:一個已經編譯可以直接呼叫的函式庫
介面分類:內部介面(供軟體內部測試的介面)和外部介面(HDML介面、USB介面,第三方)
1.9、軟體生命週期,人員架構
生命週期:
需求-設計-編碼-測試-上線-維護-升級-廢棄
人員架構:
專案經理-產品經理-架構師-需求師-UI+開發+測試-實施-運維