一個軟件或者系統的開發, 並非一我的或者一個角色就能夠完成的,在瞭解軟件測試以前,應該瞭解一下整個軟件開發過程當中每一個角色,以及他們所對應的工做內容。程序員
產品經理:負責市場調研並依據產品,市場及客戶的需求,肯定研發何種產品,選擇何種業務模式,商業模式等,並推進相應產品的開發設計。(輸出需求)運維
設計師:負責產品的設計,讓軟件看起來更加美觀,優化用戶體驗和視覺效果(設計需求樣式)單元測試
開發工程師:負責軟件產品功能的實現,俗稱「程序員」(開發需求)學習
測試工程師:負責在「測試環境」驗證「開發工程師」開發的功能是否符合「產品經理」以及「設計師」輸出的需求,並推進問題解決(測試需求)測試
運維工程師:負責將已經驗證好的產品功能提交到「生產環境」,並保障產品穩定提供給用戶使用(發佈需求)優化
以上即是軟件開發過程當中的核心角色,固然並非每一個公司都是這種模式進行,不一樣公司有不一樣的特點,會根據本身公司的特殊狀況進行調整,例如小公司可能沒有設計師,沒有運維,大公司可能這中間還會出現其餘角色,像「項目經理」等。編碼
那「軟件測試工程師」主要是作什麼的呢?設計
可能不少剛剛進入互聯網行業的小白,對於互聯網行業的崗位和角色還不是很清楚,特別是平時沒有出現再大衆視野的「軟件測試」崗位。那「軟件測試」到底是作什麼的呢?他服務於誰呢?簡單來講的話,「軟件測試工程師」須要作的就是根據「產品經理」提出的需求,驗證「開發工程師」提交的軟件產品是否符合預期,如何不符合則須要提交 bug 並跟進處理。說白了就是須要測試程序員寫的代碼有沒有 bug 。下面是對工做的詳細描述:blog
經過測試發現軟件中存在的不足是其中一個內容,測試軟件的技術分爲兩種,一是黑盒測試,二是白盒測試。以後經過黑盒和白盒進行不一樣類型的測試好比有類弄分法、因果圖法以及白盒測試中的分支覆蓋等等,經過這些不一樣的測試能夠發現軟件中存在的不足,以讓軟件開發工程師再次進行完善。項目管理
軟件測試的工做還包括把發現的問題整理成報告上交,提交緣分開發工程師,當獲得確認後再對軟件進行修復。對於軟件測試是幹什麼的問題,你們還須要瞭解,測試人員在整理報告的時候應使用專業的術語,同時要具有很好的文字表達能力以及較強的語言組織能力,也只有這樣才能把發現的缺點或不足詳細、清楚的表達出來,讓開發人員更好的對軟件進行修復。
除了要測試軟件的不足,還要分析軟件質量的好壞,須要根據測試的結果來分析,計算出軟件的缺陷率和缺陷分佈的狀況,以及提出對軟件修復的趨勢等。測試工程師須要給出軟件各類質量特性的具體度量,好比功能性、可靠性以及易用性等,並得出結論提交給軟件開發工程師。
軟件測試的基本流程(重點)
測試需求分析階段:閱讀需求,理解需求,主要就是對業務的學習,分析需求點,參與需求評審會議
測試計劃階段:主要任務就是編寫測試計劃,參考軟件需求規格說明書,項目整體計劃,內容包括測試範圍(來自需求文檔),進度安排,人力物力的分配,總體測試策略的制定。風險評估與規避措施有一個制定。
測試設計階段:主要是編寫測試用例,會參考需求文檔(原型圖),概要設計,詳細設計等文檔,用例編寫完成以後會進行評審。
測試執行階段:搭建環境,執行冒煙測試(預測試)- 而後進入正式測試,bug 管理直到測試結束
測試評估階段:出測試報告,確認是否能夠上線
Plan-Do-Report
總結
開發流程:瞭解用戶需求 --> 進行需求分析 --> 得知功能組成及設計軟件結構 --> 開發設計計劃 --> 概要設計 --> 詳細設計 --> 進行軟件編碼 --> 單元測試 --> 代碼審查 --> 打包提交給測試部 --> 測試部返回 bug --> 更新修復 bug --> 再次進入測試部測試 -->......--> 直到 bug 解決 --> 版本上線 --> 面向用戶使用
測試流程:瞭解用戶需求 --> 參考需求規格說明書 --> 測試計劃(人力物力時間進度的安排)--> 編寫測試用例 --> 評審用例 --> 搭建環境 --> 測試包安排預測(冒煙測試)-正式測試 -->測試結束出報告 --> 版本上線 --> 面向用戶