1. 程式人生 > 其它 >軟體測試-第一天

軟體測試-第一天

一、軟體基礎

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+開發+測試-實施-運維