第一部分 精準測試概述
一、背景
? ? 公司慢慢的進入到敏捷開發模式,在此模式下,迭代頻繁,回歸測試時,總不知道變更的地方在哪里?有時知道修改的地方在哪里,但卻不知道影響的范圍有多大,通常情況,要么測試范圍定小了,遺漏了,要么測試范圍過大,付出過多的代價,每次回歸,測試心里總是沒底氣,生怕漏了哪里,每次上線都是一次驚心動魄的實驗,如何才能準確定位到變更的范圍呢?故此引出精準測試概念;
二、?可行性研究結論
1、? 通過是這個探索能讓我們更加深入的去了解被測系統及架構,在保障質量的前提下,在不斷的版本迭代過程中更加高效、可靠、自信地制定合理的測試計劃和執行我們的測試工作。
2、 精準測試對于企業來說通過測試人員的管理,中后期的測試效率以及不依賴個人能力等特點,大大降低了企業測試團隊成本,精準測試通過一系列技術手段在不改變原有的測試流程大幅度降低測試人員要求,并在中后期的測試效率上給予大幅度的幫助提高質量,這使得企業成本的核心公式計算中發生了轉變。
3、 精準測試為企業帶來的是明確的、數字化的對于產品質量的信心,而并不是對于團隊的模糊的基于能力的、經驗的判斷。
三、存在的問題及建議
1、? 精準測試基于自動化覆蓋率到達一定數量的基礎上去做比較有意義。
2、 精準測試的核心需求來自于對軟件質量的較高要求,如果是需求響應快,而且產品發布成本低,快速試錯的小流量新功能,對發布質量并不太敏感,則不適合精準測試,如果需要準確把握用戶的需求,需要進行系統測試,通常采用用戶測試的方式對項目進行驗收,對項目的上線質量比較敏感,則使用精準測試的產出比較高!
第二部分精準測試發起過程及提出的理由
一、背景詳解
公司經過了如下階段:
第一階段,公司剛起步,產品初創,需要先把東西做出來獲得市場的初步驗證,或獲得投資人的認可。這個階段,測試團隊基本屬于手工測試,人數也沒有那么多;
第二階段,公司開始快速擴張,不計研發成本,每天都在不斷地招聘測試人員,業務快速擴充,業務需求多時間緊,測試也沒有時間沉淀;
第三階段,經過快速擴張后開始穩定運作,成本開始被考慮。業務線基本穩定,測試開始沉淀一些流程、技能、方法等來提高測試效率,比如自動化平臺建立,接口自動化的接入,性能、安全方面的沉淀,都一步一步的穩定建立;
現在公司來到了第三階段,慢慢的會進入第四階段,開始嚴格控制各個環節的成本,測試的工作也會往上轉移,自動化代碼的質量保證,開發代碼的內部邏輯深入,覆蓋率的分析等等,不管如何深入,還是會碰到如下痛點:
1、 敏捷迭代更新快,人力有限;
2、 多分支代碼合并到主分支,修改哪個文件哪個行,測試不可控;
3、代碼更新影響哪些功能無感知;
4、盲測,上線風險大;
5、 無法更加精準監控代碼質量;
6、不能做到高效精準,不可衡量roi;
故此,提出“精準測試”概念,一種可追溯的軟件測試技術;
二、?精準測試核心及關鍵特性
? ??首先概述下精準測試概念,從字面理解,精準就是非常準確。非常準確需要用數字說話。
????在測試領域,精準測試是一套計算機測試輔助分析系統,對測試過程的活動進行監控,將采集到的監控數據進行分析,得到精準的量化數據,使用這些量化數據進行質量評價,利用這些分析數據可以促進測試過程的不斷完善,形成度量及分析閉環。精準測試就是一種可追溯的軟件測試技術。
1、精準測試核心
? ? ? ?精準測試的核心思想就是使用非常精確和智能的軟件來解決軟件測試的問題,從根本上引領從經驗型方法向技術型方法的轉型。質量的評估不再靠經驗,而是通過精準的數據來判定。
?????? 精準測試沒有改變傳統的軟件測試方法,區別只在于,由軟件去采集測試過程執行的代碼邏輯及測試數據的過程,自動建立測試用例與程序代碼之間的邏輯關系。在測試過程加入軟件的采集過程,可以形成正向和逆向的追溯。
?????? 通過正向追溯,開發人員可以看到測試人員執行用例的代碼細節,以方便進行缺陷的修復,測試數據可以直接為開發調試提供依據,快速定位并修復缺陷。
?????? 通過逆向追溯,測試人員通過修改的源代碼快速確定測試用例的范圍,極大減少回歸測試的盲目性和工作量,快速修訂測試用例,達到測試覆蓋率最大化。
第三部分精準測試技術方案
????對于精準測試方案,其核心內容是在知識庫里包含著測試用例和開發代碼的關聯關系,代碼改動后,推薦改動關聯的相應測試用例,爭取做到,改哪里測哪里,達到精準測試境界;
? ? ?以下是針對精準測試流程及細節的方案思考,從大流程到小流程小細節的順序進行闡述
一、產品研發流程:
二、精準測試系統流程圖
(2-1)差異化分析流程圖
(2-2)測試分析流程圖
建立知識庫
知識庫數據庫大概方案:
獲取方法調用鏈動態工具闡述,(暫時未進行工具的詳細分析):
插樁方式工具
1、源代碼插樁:GCT等
2、中間代碼插樁:JACOCO\EMMA等
3、二進制代碼插樁:XDebug等
(2-3)用例執行流程圖
(2-4)質量評估流程圖
第四部分? 總結
????精準測試的核心是一自動化的軟件對軟件測試過程數據進行記錄,從而實現精準測試用例推薦。通過精準測試,我們可以實現軟件質量的實時監控,回歸用例的智能篩選,測試覆蓋率的精準分析以及軟件缺陷的快速定位。???????
? ? ?但精準測試并非適用于所有的軟件項目類型,互聯網應用、項目級應用和產品級應用,對軟件質量的需求,也就是對精準測試的要求是逐漸遞增的。???????
? ? ? ?精準測試的誕生,核心原因是對于軟件質量的要求。無論是項目驗收公信力手段、測試效率管控、測試與開發人員的協同以及復雜的分布式架構帶來的挑戰,無不圍繞著對軟件質量的需求滿足。而軟件質量的最終價值,是用戶體驗的提升。對精準測試的實現過程,實際上也是軟件測試過程數字化的一種體現。精準測試通過提升軟件質量,改善了用戶體驗,從而賦予企業數字化轉型更可靠的軟件能力。?