1. 程式人生 > 其它 >中小公司的軟體測試過程現狀與測試能力成熟度

中小公司的軟體測試過程現狀與測試能力成熟度

中小公司的軟體測試過程現狀

      一個初創與小公司沒有測試工程師,僅讓產品經理做了驗收測試,或是開發工程師自己測試。這個形態還是比較普遍。類似的還有中小型軟體企業開發現狀與專案管理現狀

      產品經理通常情況下能做的就是功能驗收測試,而這種測試也是基於UI介面層,基本的功能測試。固然不會有對介面的測試,對功能上的邊界測試,而這些測試實際上是非常重要的。還有一些逆向場景的測試,這些場景實際上也是大部分產品經理逆向思維的一個體現。大部分產品經理實際上只是考慮了正向的場景。這也是產品經理的一個邏輯思維的體現。關於測試思維我們回顧有如下:

1 正向思維方式

正向思維是指軟體可以正常執行狀態下表現出來的特徵如:某個功能點正確實現後是什麼樣?網站可以提供訪問時如何展現?

說明:所以測試按照正常思維方式,檢查驗證系統功能是否實現,通常是以需求為準則來判斷。

2 逆向思維方式

逆向思維是相對於正常思維,通常是檢查正常思維相違背的地方,比如功能點未實現後如何?網站不能訪問時頁面是如何展現?核心服務不可用時,整個系統表現是什麼?

3 全域性思維方式

全域性思維則是從全方位360角度去分析軟體系統,如:系統上線後可能會碰到的諸如多種風險情況,針對每種情況是如何測試?

4 區域性思維方式

區域性思維則是相對於全域性思維,通常是檢查某個系統在區域性情況如:手機訊號測試時,可以隔離多種環境進行思考分析

5 極端思維方式

極端思維更準確的應從兩端極限分析思考,如:針對訊號測試時,最小/大訊號範圍時,表現如何?網路環境變化類似。

6 比較思維方式

比較思維則更注重的是選擇某個標準物做參考,然後制定一些對比引數選項來評判,如:Google/Baidu搜尋相同關鍵字時,返回的內容相關性,響應速度等

7 組合思維方式

組合思維是將多個物件選擇組合在一起檢查,判斷是否正常,如:關機前,啟動另一個應用程式,來檢查系統是如何處理?

      普通軟體開發工程師來做測試工作時,當他不具備測試思維時,只是測試的正向流程,邊界也不會考慮,更不會考慮效能與安全,所以這種測試必然有缺失,特別是系統中涉及支付業務時,有經過良好的完整的測試過程上線,必然會造成經濟損失。過去我們真實的案例有支付退款業務導致的漏洞,是因為前期的測試不完整導致的。

軟體工程師為什麼要懂測試軟體工程師的核心競爭力

      是否有測試崗位取決於公司對軟體的質量是否重視。另一方面,軟體可能不需要太高的質量,這種情況下,面對於研發來說也就沒有什麼挑戰。研發自己來測試的場景,並且整個組織中沒有測試崗位,這個時候連發並不能完全保證軟體的質量,大部分研發並不具備自測的能力,連單元測試都寫不好,這種情況下面整個軟體的質量固然不會有太多提升。沒有測試崗位,即沒有軟體測試過程,其也是印證:康威定律 (康威法則 , Conway's Law)

"設計系統的架構受制於產生這些設計的組織的溝通結構。Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure."

——M. Conway

      我們過去經常說要提供給客戶高質量的軟體,軟體測試過程如果做不好,何談質量?所以本質問題是不論是不是有人在做,有沒有這個崗位,而是整個過程中有沒有軟體測試過程。有的時候,老闆認為這是一種節約成本的方式,其本質是,因為這個老闆他對測試的認知是淺薄的,還是停留在測試,只是點點而已,殊不知這樣的安排在實際系統上線後造成的經濟損失更不可預知,部分老闆需要經歷這樣的過程才會吃一塹長一智。而這一類老闆通常都是做銷售的,對軟體研發質量沒有完整的認識。也可以說這類的軟體團隊是非專業的軟體過程。個人追求的是在專業的團隊裡面做專業的事。

      有一個情況是微小企業老闆可能是知道軟體測試的,但是為了節約成本不願意設立測試這個崗位,這也是一個困境。但實際上的研發團隊又不具備軟體測試能力,如此陷入了這個漩渦。基本測試都有Web測試介紹一 UI測試 Web測試介紹2一 安全測試構建移動應用測試(一)自動化測試微服務測試效能測試工具移動應用App測試與質量管理一

      網際網路的產品和專案缺少效能測試,上線後的後果就是出現資源的超發,在網際網路應用的併發下面,由於程式自身沒有做好併發的處理,導致資源的超發,最後導致較大的經濟損失,最終都需要有人來承擔與處理事故,同時也影響公司的聲譽。這已經是前車之鑑了,但對於部分公司依然沒有引起重視,後面再次出現了線上的事故時,最終讓研發自己來承擔這個費用,早知道如此,為什麼不做好系統性能測試與負載測試呢? 團隊裡面必須有一個人懂效能測試與負載測試,並能夠實際落地,幫助找出系統中潛在的漏洞,不論是架構師,主程,專案經理,測試組長。

      我們可以參考如下,反思當前組織測試能力。

TMM測試能力成熟度等級

TMM 級別

目標

TMM 水平的目標

1級:初始

軟體應該成功執行

在這個級別,沒有識別任何過程域

測試的目的是確保軟體執行良好

這個級別缺乏資源、工具和訓練有素的員工

軟體交付前沒有質量保證檢查

2級:已定義

制定測試和除錯目標和策略

此級別將測試與除錯區分開來,它們被視為不同的活動

測試階段在編碼之後

測試的主要目標是顯示軟體符合規範

基本的測試方法和技術已經到位

3級:綜合

將測試整合到軟體生命週期中

測試融入整個生命週期

根據需求定義測試目標

測試機構存在

測試被認為是一項專業活動

4級:管理和測量

建立測試測量程式

測試是一個測量和量化的過程

所有開發階段的審查都被視為測試

對於重用和迴歸測試,測試用例被收集並記錄在測試資料庫中

記錄缺陷並給出嚴重程度

5級:優化

測試過程優化

測試是管理和定義的

可以監控測試的有效性和成本

測試可以微調並不斷改進

實行質量控制和缺陷預防

實踐過程重用

測試相關指標也有工具支援

工具為測試用例設計和缺陷收集提供支援

       還有一類團隊懂得建立小而美的團隊,團隊中每個研發懂得軟體測試的基本理論與基礎,可以自行完成單元測試,介面測試,效能測試,甚至於安全測試。實際上,這樣的研發團隊已經是開發測試工程師SDET組成的,這樣子的團隊過去只有像微軟公司才會有過。一個普通的研發需要具備測試思維,需要長時間的訓練。


其他參考:

安全OWASP_Top_10_2017_中文版

https://wiki.owasp.org/images/d/dc/OWASP_Top_10_2017_%E4%B8%AD%E6%96%87%E7%89%88v1.3.pdf


今天先到這兒,希望對雲原生,技術領導力, 企業管理,系統架構設計與評估,團隊管理, 專案管理, 產品管管,團隊建設 有參考作用 , 您可能感興趣的文章:
領導人怎樣帶領好團隊
構建創業公司突擊小團隊
國際化環境下系統架構演化
微服務架構設計
視訊直播平臺的系統架構演化
微服務與Docker介紹
Docker與CI持續整合/CD
網際網路電商購物車架構演變案例
網際網路業務場景下訊息佇列架構
網際網路高效研發團隊管理演進之一
訊息系統架構設計演進
網際網路電商搜尋架構演化之一
企業資訊化與軟體工程的迷思
企業專案化管理介紹
軟體專案成功之要素
人際溝通風格介紹一
精益IT組織與分享式領導
學習型組織與企業
企業創新文化與等級觀念
組織目標與個人目標
初創公司人才招聘與管理
人才公司環境與企業文化
企業文化、團隊文化與知識共享
高效能的團隊建設
專案管理溝通計劃
構建高效的研發與自動化運維
某大型電商雲平臺實踐
網際網路資料庫架構設計思路
IT基礎架構規劃方案一(網路系統規劃)
餐飲行業解決方案之客戶分析流程
餐飲行業解決方案之採購戰略制定與實施流程
餐飲行業解決方案之業務設計流程
供應鏈需求調研CheckList
企業應用之效能實時度量系統演變

如有想了解更多軟體設計與架構, 系統IT,企業資訊化, 團隊管理 資訊,請關注我的微信訂閱號:

作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。 該文章也同時釋出在我的獨立部落格中-Petter Liu Blog。