1. 程式人生 > >淺談團隊提高軟體質量的方式,減少測試輪次

淺談團隊提高軟體質量的方式,減少測試輪次

軟體質量是產品或服務所滿足明示或暗示需求能力的固有特性和特徵的集合,軟體的質量特性有功能性、可靠性、易用性、可維護性、可移植性。缺陷則指系統所需要實現的某種功能的失效或違背。通過發現缺陷可以提高產品質量,而找出缺陷發生的根本原因,或總結出軟體產品的缺陷模式,避免將來犯同樣的錯誤或產生類似的問題,將有效提高後續產品質量。從這個角度來講,兩者相互統一,缺陷少就潛移默化地成為了高質量軟體的代名詞。那麼團隊如何提高軟體質量呢?分別從專案管理、開發人員、測試人員角度考慮,可以歸納為以下八點:

1.讓研發團隊領導重視測試,測試部門和研發部門獨立

研發領導重視測試,明白測試給專案帶來的價值,重視每輪的測試報告,開發程式碼的質量會提高得多。其次,測試團隊必須是獨立於開發團隊,在專案中不受制於開發團隊,測試人員根據軟體質量規範,結合專案實際情況預估測試時間,對產品進行測試,讓測試驅動開發。測試團隊應該是對產品經理負責 ,知道產品質量、產品進度、產品功能互相影響,追求極致,能站在客戶的角度對軟體進行測試,為客戶提高良好的使用者體驗。

2.獨立建立溝通機制,專案結束進行必要的覆盤和總結,績效考核加強督促力度

在實際做專案過程中,團隊儘量要保持暢通的溝通環境和方式,避免因跨團隊溝通不暢導致的bug,可以組織每天站會的形式,快速無邊界溝通,做到資訊同步,遇到問題及時溝通解決,提高效率。測試人員每天都編寫測試日誌,郵件抄送給專案部成員和公司領導報告每天測試情況,加強不同層次的領導對開發人員的督促力度。其次,同時可以把缺陷的數量、嚴重程度作為開發人員的績效考核標準,提高開發人員的質量意識,促進開發編碼規範。定期進行bug的分佈分析,線上bug的分析,找到出現該bug真正的原因,bug頻發的功能、場景,以及機型等,找出來一些預防避免的措施,度量與預防bug。針對專案過程中出現的問題,及時的做出調整,避免團隊下次再犯同樣錯誤。

3.保持測試和開發獨立的測試環境,服務監控告警

大部分的專案硬體都非常昂貴,現在很多公司為了節省成本,開發和測試環境都在同一臺機器上,開發人員在測試機器上開發,這樣混亂的測試環境,導致一些測試出來的Bug可能不能夠重現,增加了測試分辨定位bug的難度,甚至會把嚴重級別bug誤以為是環境異常。所以應把測試環境和開發環境分開,測試資料庫的資料再也不會隨意被開發人員修改,測試出現的bug一般在開發環境也能夠重現。運維層面提供完善的監控體系,分別從網路層、作業系統層、應用層、介面層、做到埠存活、程序存活、頁面級別的監控,最好能做到行為級別的監控,包括後期根據業務發展進行擴容,引數調優等。通過這些方面的嚴格監控報警,為產品保駕護航,適應業務快速且穩定的發展。

4.規範開發編碼,開發多自測,進行CodeReview

因為單元測試可以發現大約80%的bug,所以要求開發加大單元測試的力度,儘早發現並修復缺陷,減低測試成本。同時還可使用程式語言對應的format、link等程式碼審查工具對程式碼進行格式、引用等靜態檢查,規範程式碼格式,發現程式碼錯誤。規範編碼開發不僅可以有效減少出現類似空指標、陣列越界、崩潰這樣的低階bug而且還很難定位bug原因的情況,快速查詢bug,降低維護成本、極大地提高團隊對程式碼的可讀性,而且還有助於程式碼review。提交程式碼和sql上線時進行必有的review,可避免一條sql引起全站癱瘓。

5.細化送測標準,建立詳盡的預測試和測試結束標準

測試經理在編寫測試計劃時,編寫詳細的測試規範,明確規定了軟體版本的送測標準(如:某個獨立模組的功能點完成了多少百分比,才能夠開始測試等等,都要寫成一個標準),如果被測試軟體符合送測標準以後,開發部門才能夠請求測試部門進行測試。測試部門接受到開發部門的配置表以後,在伺服器上取下測試的版本,編譯、部署後,安排部分專案核心人員,對部分主要的功能進行預測試,如果預測試通過了,就可以開始測試。如果預測試不通過,就打回開發部門修改好後再預測試,直到預測試通過為止。

6.測試部門建立完善的測試規範和上線規範

根據公司的實際情況來制定合理的測試流程,有效提高效率,明確PC、APP測試流程規範,大致分為測試需求分析、測試計劃編寫、case編寫、case評審、介面測試、冒煙測試、功能測試、UED測試、UAT測試、效能測試、提交testin進行相容眾測,線上環境迴歸測試、釋出版本後安裝解除安裝升級主流程測試、測試報告編寫,合理管理每個測試階段相應的成果物產出。上線規範主要包括對程式碼分支的管理、程式碼的編譯上線、上線前的自動化驗證等流程。大部公司的研發分支團隊很多,需要維護公共程式碼庫,所以很有必要約定好一套規範的上線流程,保證分支程式碼正確才能合併到主幹,再做主幹整體迴歸,避免上線事故。

7.重視用例評審,提高測試用例的質量

就目前來說,很多的公司都不是很規範。一種情況:變更了軟體需求,相應的測試用例沒有及時增加,測試人員測試時,完全憑個人的理解和經驗,想到哪裡就測到哪裡隨便測試。另外一種情況就是測試人員設計測試用例的水平不高,測試用例質量較差,導致測試反覆進行,也測試不出Bug。這就要求測試部門主管,加大測試用例評審的力度,力爭以最少的測試用例,測試出較多的Bug。

8.部門員工進行模組交叉測試,避免漏測

測試主管在安排測試時,要注意“用人之長,避人之短”。測試啟動階段,要對這個系統集中培訓,讓測試部門的成員對整個系統達成一致意見,最好在第一輪測試時,儘可能發現較多缺陷,開發人員儘早修復。第二輪測試就可以進行模組交叉測試。一方面我們可以避免個人原因造成的漏測試,另外一方面也可以利用每個人不同的思維方式,很容易發現其它模組的缺陷,避免多次重複測試,提高測試人員的積極性。
 

簡而言之,純粹作為測試人員可以做到以下幾點來提升軟體質量:

1. 測試左移,測試提前介入至需求分析,甚至立項階段。

2. 制定合理詳細的測試計劃,給予測試執行明確方向,杜絕盲目測試。

3. 測試用例嚴格評審,提高測試覆蓋率,減少冗餘測試用例,只需設計代表性強的等價類用例。

4. 嚴格測試提測標準,減少提測版本數量,一旦發現重大問題或未通過冒煙測試,則測試中斷,版本打回至開發。

5. 主觀能動性,積極主動溝通。與專案經理、產品經理、開發人員、市場人員及客戶溝通,互相配合促進,增進感情,提高工作效率。

另外,從長遠角度看,測試部門內部定期進行技能培訓,階段性測試工作完成後的總結會議,分享經驗,加強溝通學習,儘早規避一些可預測性的軟體風險,也是提升軟體質量的重要方式。