本申請涉及軟件測試技術領域,特別是涉及一種軟件系統測試需求評估方法及裝置。
背景技術:
軟件開發是指根據用戶需求構建軟件系統的過程。通常軟件系統的開發流程如下:首先由管理人員確定該軟件系統的開發人員;然后由開發人員,根據用戶需求,確定構建該軟件系統的代碼模塊;最后,由開發人員對上述代碼模塊修改和搭建,形成軟件系統。
為了保證所構建軟件系統的正常運行,在軟件系統上線前,一般需對軟件系統進行功能性測試。但在實際應用中,由于各種原因,比如時間倉促、研發成本較高等,需綜合考慮一軟件系統的重要性、開發質量以及自測情況等各種因素,確定一軟件系統是否需測試。
目前,通常采用兩種方式,確定一軟件系統是否需測試:一種是開發人員憑經驗判斷該軟件系統是否需測試;另一種是測試人員憑經驗判斷該軟件系統是否需測試。可見,上述兩種方式,均是通過個人經驗判斷所開發的軟件系統是否需測試;那么,如果所開發的一軟件系統漏洞較大,重要性較高,而判斷人員做出無需測試的決定,此時將影響該軟件系統的正常運行。
申請內容
本申請實施例中提供了一種軟件系統測試需求評估方法及裝置,以確保所開發軟件系統的正常運行。
為了解決上述技術問題,本申請實施例公開了如下技術方案:
本申請公開了一種軟件系統測試需求評估方法,包括:
獲取構建軟件系統的代碼模塊和開發人員;
提取所述代碼模塊的可靠性特征值、重要性特征值,以及,所述開發人員的開發質量特征值;
根據所述可靠性特征值、重要性特征值以及開發質量特征值,確定所述軟件系統的測試量化值,所述測試量化值,用于量化所述軟件系統無需測試的程度;
如果所述測試量化值小于預設閾值,確定所述軟件系統需測試,否則,確定所述軟件系統無需測試。
優選的,根據所述可靠性特征值、重要性特征值以及開發質量特征值,確定所述軟件系統的測試量化值,包括:
分別確定所述可靠性特征值、重要性特征值以及開發質量特征值的權重;
根據所述特征值以及相應的權重,確定所述軟件系統的測試量化值。
優選的,分別確定所述可靠性特征值、重要性特征值以及開發質量特征值的權重,包括:
獲取多個軟件系統的估計量化值,所述估計量化值為用戶估計的所述軟件系統的測試量化值;
分別提取每個軟件系統的可靠性特征值、重要性特征值以及開發質量特征值;
根據多個軟件系統的估計量化值以及相對應的特征值,確定所述可靠性特征值、重要性特征值以及開發質量特征值的權重。
優選的,根據所述可靠性特征值、重要性特征值以及開發質量特征值,確定所述軟件系統的測試量化值,包括:
將所述可靠性特征值、重要性特征值以及開發質量特征值量化為同一數據級別;
將所述特征值量化后的結果相加,且將相加之和,作為所述軟件系統的測試量化值。
優選的,所述方法還包括:
判斷所述軟件系統的代碼模塊或開發人員中是否存在預警項;
如果存在預警項,確定所述軟件系統需測試。
優選的,所述重要性特征值包括所述代碼模塊的訪問量、鏈路依賴值以及故障等級;所述可靠性特征值包括所述代碼模塊的自測數據、開發測試數據以及所述代碼模塊的變更數據;所述開發質量特征值包括所述開發人員的歷史開發故障率。
本申請還公開了一種軟件系統測試需求評估裝置,包括:
獲取模塊,用于獲取構建軟件系統的代碼模塊和開發人員;
提取模塊,用于提取所述代碼模塊的可靠性特征值、重要性特征值,以及,所述開發人員的開發質量特征值;
確定測試量化值模塊,用于根據所述可靠性特征值、重要性特征值以及開發質量特征值,確定所述軟件系統的測試量化值,所述測試量化值,用于量化所述軟件系統無需 測試的程度;
確定需測試模塊,用于當所述測試量化值小于預設閾值時,確定所述軟件系統需測試;
確定無需測試模塊,用于當所述測試量化值大于等于預設閾值時,確定所述軟件系統無需測試。
優選的,所述確定測試量化值模塊包括:
確定權重單元,用于分別確定所述可靠性特征值、重要性特征值以及開發質量特征值的權重;
確定測試量化值單元,用于根據所述特征值以及相應的權重,確定所述軟件系統的測試量化值。
優選的,其特征在于,所述確定權重單元包括:
獲取子單元,用于獲取多個軟件系統的估計量化值,所述估計量化值為用戶估計的所述軟件系統的測試量化值;
提取子單元,用于分別提取每個軟件系統的可靠性特征值、重要性特征值以及開發質量特征值;
確定權重子單元,用于根據多個軟件系統的估計量化值以及相對應的特征值,確定所述可靠性特征值、重要性特征值以及開發質量特征值的權重。
優選的,所述確定測試量化值模塊,包括:
量化子單元,用于將所述可靠性特征值、重要性特征值以及開發質量特征值量化為同一數據級別;
相加子單元,用于將所述特征值量化后的結果相加,且將相加之和,作為所述軟件系統的測試量化值。
優選的,所述裝置還包括:
判斷模塊,用于判斷所述軟件系統的代碼模塊或開發人員中是否存在預警項;
需測試確定模塊,用于當所述軟件系統中存在預警項時,確定所述軟件系統需測試。
由以上技術方案可見,在本申請實施例中,首先獲取構建軟件系統的代碼模塊和開發人員;然后,提取所述代碼模塊的可靠性特征值、重要性特征值,以及,所述開發人員的開發質量特征值;再然后,根據所述可靠性特征值、重要性特征值以及開發質量特征值,確定所述軟件系統的測試量化值,所述測試量化值,用于量化所述軟件系統無需 測試的程度,且所述測試量化值越大,代表所述軟件系統越無需測試;最后,根據所述測試量化值與預設閾值的大小關系,確定該軟件系統是否需測試。由上可見,采用本申請實施例所提供的方法及裝置,可避免由于判斷人員的經驗不足,做出無需測試的誤判,從而保證所開發軟件系統的正常運行。
附圖說明
為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領域普通技術人員而言,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本申請實施例所公開的軟件系統測試需求評估方法的一流程示意圖;
圖2為本申請實施例所公開的軟件系統測試需求評估方法的另一流程示意圖;
圖3為本申請實施例所公開的軟件系統測試需求評估方法的又一流程示意圖;
圖4為本申請實施例所公開的軟件系統測試需求評估方法的另一流程示意圖;
圖5為本申請實施例所公開的軟件系統測試需求評估方法的又一流程示意圖;
圖6為本申請實施例所公開的軟件系統測試需求評估裝置的一模塊示意圖;
圖7為本申請實施例所公開的軟件系統測試需求評估裝置的另一模塊示意圖;
圖8為本申請實施例所公開的軟件系統測試需求評估裝置的又一模塊示意圖;
圖9為本申請實施例所公開的軟件系統測試需求評估裝置的另一模塊示意圖;
圖10為本申請實施例所公開的軟件系統測試需求評估裝置的又一模塊示意圖。
具體實施方式
本申請提供一種軟件系統測試需求評估方法及裝置,以確保所開發軟件系統的正常運行。
首先對本申請實施例所提供的軟件系統測試需求評估方法進行說明,如圖1所示,所述方法至少包括:
步驟S11:獲取構建軟件系統的代碼模塊和開發人員;
在本申請實施例中,所述軟件系統可為一個完整的軟件系統,也可為一軟件系統中的部分應用。
步驟S12:提取所述代碼模塊的可靠性特征值、重要性特征值,以及,所述開發人員的開發質量特征值;
在本申請實施例中,可具體在所述代碼模塊相關聯的可靠性系統以及重要性系統,分別提取所述代碼模塊的可靠性特征值以及重要性特征值;可在開發質量系統,提取所述開發人員的開發質量特征值。
在本申請實施例中,所述重要性特征值可包括所述代碼模塊的訪問量、鏈路依賴值以及故障等級等特征值;所述代碼模塊的訪問量可為所述代碼模塊的每小時/每天/每周的訪問量;所述鏈路依賴值可為所述代碼模塊相關聯鏈路的數量;所述故障等級特征值可為所述代碼模塊允許出現故障的等級。
在本申請實施例中,所述可靠性特征值可包括所述代碼模塊的自測數據、開發測試數據以及所述代碼模塊的變更數據等特征值;所述代碼模塊的自測數據可為所述代碼模塊的程序代碼中可實現自動測試的行數;開發測試數據可為開發人員所測試代碼模塊中程序代碼的行數;變更數據可為開發人員修改代碼模塊的程序代碼的行數。
在本申請實施例中,所述開發質量特征值可包括所述開發人員的歷史開發故障率;所述歷史開發故障率可為所述開發人員在預設時間段時所開發軟件系統的線上故障率與線下故障率的平均值。
步驟S13:根據所述可靠性特征值、重要性特征值以及開發質量特征值,確定所述軟件系統的測試量化值,所述測試量化值,用于量化所述軟件系統無需測試的程度;
步驟S14:判斷所述測試量化值是否小于預設閾值,如果是,執行步驟S15;否則,執行步驟S16;
在本申請實施例中,所述測試量化值用于量化所述軟件系統無需測試的程度,該測試量化值越大,可代表該軟件系統越無需進行測試,因此,可當一軟件系統的測試量化值小于預設閾值時,判定該軟件系統需測試。而關于預設閾值的大小,可由本領域技術人員,根據經驗自行設置。
步驟S15:確定所述軟件系統需測試;
步驟S16:確定所述軟件系統無需測試。
由上可見,在本申請實施例中,首先獲取構建軟件系統的代碼模塊和開發人員;然后,提取所述代碼模塊的可靠性特征值、重要性特征值,以及,所述開發人員的開發質量特征值;再然后,根據所述可靠性特征值、重要性特征值以及開發質量特征值,確定所述軟件系統的測試量化值,所述測試量化值,用于量化所述軟件系統無需測試的程度,且所述測試量化值越大,代表所述軟件系統越無需測試;最后,根據所述測試量化值與 預設閾值的大小關系,確定該軟件系統是否需測試。由上可見,采用本申請實施例所提供的方法,可避免由于判斷人員的經驗不足,做出無需測試的誤判,從而保證所開發軟件系統的正常運行。
在本申請的又一可行實施例中,如圖2所示,上述所有實施例中的步驟S13可包括:
步驟S21:分別確定所述可靠性特征值、重要性特征值以及開發質量特征值的權重;
在本申請實施例中,可靠性特征值、重要性特征值以及開發質量特征值的權重,可為正數,也可為負數。
步驟S22:根據所述特征值以及相應的權重,確定所述軟件系統的測試量化值。
在本申請實施例中,假設一軟件系統由代碼模塊A與代碼模塊B構建,由開發人員C與開發人員D共同開發。
同時,假設所提取的代碼模塊A的可靠性特征值為10、重要性特征值為20;提取的代碼模塊B的可靠性特征值為20、重要性特征值為10;而提取的開發人員C的開發質量特征值為50,提取的開發人員D的開發質量特征值為100;而步驟S41中所確定的可靠性特征值的權重為0.3,重要性特征值的權重為-0.2,開發質量特征值的權重為0.5;那么可利用下述公式計算所述軟件系統的測試量化值;
軟件系統的測試量化值=代碼模塊A的測試量化值+代碼模塊B的測試量化值+開發人員C的測試量化值+開發人員D的測試量化值=(代碼模塊A的可靠性特征值*權重+代碼模塊A的重要性特征值*權重)+(代碼模塊B的可靠性特征值*權重+代碼模塊B的重要性特征值*權重)+(開發人員C的開發質量特征值*權重)+(開發人員D的開發質量特征值*權重)=(10*0.3+20*-0.2)+(20*0.3+10*-0.2)+(50*0.5)+(100*0.5)=74。
由上可見,采用本申請實施例所公開的方法,可確定一軟件系統的測試量化值。
在本申請的另一可行實施例中,如圖3所示,上述所有實施例中的步驟S21可包括:
步驟S31:獲取多個軟件系統的估計量化值,所述估計量化值為用戶估計的所述軟件系統的測試量化值;
在本申請實施例中,所述估計量化值可為本領域技術人員,綜合考慮軟件系統的各種因素,估算出的軟件系統的測試量化值。
步驟S32:分別提取每個軟件系統的可靠性特征值、重要性特征值以及開發質量特征值;
步驟S33:根據多個軟件系統的估計量化值以及相對應的特征值,確定所述可靠性特征值、重要性特征值以及開發質量特征值的權重。
在本申請的上述實施例中,已公開,所述測試量化值=可靠性特征值*權重+重要性特征值*權重+開發質量特征值*權重。因此,在本申請實施例中,可利用所述測試量化值的計算公式,建立三個以可靠性特征值權重、重要性特征值權重和開發質量特征值的權重為未知數的,以估計量化值、可靠性特征值、重要性特征值和開發質量特征值為已知數的三元三次方程,通過求解,即可獲取上述特征值的權重。
當然,在實際應用中,可利用現有技術中已公開的RX隨機分離算法,求解上述特征值的權重。
由上可見,在本申請實施例中,可分別確定可靠性特征值、重要性特征值以及開發質量特征值的權重。
在本申請的又一可行實施例中,如圖4所示,上述所有實施例中的步驟S21可包括:
步驟S41:將所述可靠性特征值、重要性特征值以及開發質量特征值量化為同一數據級別;
在實際應用中,由于可靠性特征值、重要性特征值以及開發質量特征值經常位于不同的數據級別,比如可靠性特征值可能為一代碼模塊的訪問量,可能為千位級別,而重要性特征值可能為一代碼模塊變更的程序代碼的行數,可能為個位級別,因此,為了在測試量化值中統一體現可靠性特征值、重要性特征值以及開發質量特征值的作用,需將上述特征值量化為同一數據級別。在本申請實施例中,可將上述特征值均量化為個位級別。
步驟S42:將所述特征值量化后的結果相加,且將相加之和,作為所述軟件系統的測試量化值。
由上可見,在本申請實施例中,可確定一軟件系統的測試量化值。
在本申請的另一可行實施例中,如圖5所示,上述所有實施例中的方法,還可包括:
步驟S51:判斷所述軟件系統的代碼模塊或開發人員中是否存在預警項;如果存在,執行步驟S52;否則,結束流程。
在本申請實施例中,預警項可為對軟件系統的正常運行或開發質量,存在嚴重影響的項目。在本申請實施例中,所述預警項可具體為入職3個月的新員工等項目。
步驟S52:確定所述軟件系統需測試。
由上可見,本申請實施例中,可當一軟件系統中存在預警項時,確定該軟件系統需測試,從而保證所開發軟件系統的正常運行。
通過以上的方法實施例的描述,所屬領域的技術人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本申請的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:只讀存儲器(ROM)、隨機存取存儲器(RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質。
與本申請提供的軟件系統測試需求評估方法實施例相對應,本申請還提供了一種軟件系統測試需求評估裝置,如圖6所示,至少包括:
獲取模塊61,用于獲取構建軟件系統的代碼模塊和開發人員;
提取模塊62,用于提取所述代碼模塊的可靠性特征值、重要性特征值,以及,所述開發人員的開發質量特征值;
確定測試量化值模塊63,用于根據所述可靠性特征值、重要性特征值以及開發質量特征值,確定所述軟件系統的測試量化值,所述測試量化值,用于量化所述軟件系統無需測試的程度;
確定需測試模塊64,用于當所述測試量化值小于預設閾值時,確定所述軟件系統需測試;
確定無需測試模塊65,用于當所述測試量化值大于等于預設閾值時,確定所述軟件系統無需測試。
由上可見,在本申請實施例中,獲取模塊61用于,獲取構建軟件系統的代碼模塊和開發人員;提取模塊62,用于提取所述代碼模塊的可靠性特征值、重要性特征值,以及,所述開發人員的開發質量特征值;確定測試量化值模塊63用于,根據所述可靠性特征值、重要性特征值以及開發質量特征值,確定所述軟件系統的測試量化值,所述測試量化值,用于量化所述軟件系統無需測試的程度;確定需測試模塊64,用于當所述測試量化值小于預設閾值時,確定所述軟件系統需測試;確定無需測試模塊65,用于當所述測試量化值大于等于預設閾值時,,確定所述軟件系統無需測試。由上可見,采用本申請 實施例所公開的方法,可避免由于判斷人員的經驗不足,做出無需測試的誤判,從而保證所開發軟件系統的正常運行。
在本申請的另一可行實施例中,如圖7所示,上述所有實施例中的確定測試量化值模塊63可包括:
確定權重單元71,用于分別確定所述可靠性特征值、重要性特征值以及開發質量特征值的權重;
確定測試量化值單元72,用于根據所述特征值以及相應的權重,確定所述軟件系統的測試量化值。
由上可見,采用本申請實施例所公開的方法,可確定一軟件系統的測試量化值。
在本申請的又一可行實施例中,如圖8所示,上述所有實施例中的確定權重單元71可包括:
獲取子單元81,用于獲取多個軟件系統的估計量化值,所述估計量化值為用戶估計的所述軟件系統的測試量化值;
提取子單元82,用于分別提取每個軟件系統的可靠性特征值、重要性特征值以及開發質量特征值;
確定權重子單元83,用于根據多個軟件系統的估計量化值以及相對應的特征值,確定所述可靠性特征值、重要性特征值以及開發質量特征值的權重。
由上可見,在本申請實施例中,可確定上述多個個特征值的權重。
在本申請的另一可行實施例中,如圖9所示,上述所有實施例中的確定測試量化值模塊63,可包括:
量化子單元91,用于將所述可靠性特征值、重要性特征值以及開發質量特征值量化為同一數據級別;
相加子單元92,用于將所述特征值量化后的結果相加,且將相加之和,作為所述軟件系統的測試量化值。
由上可見,在本申請實施例中,亦可確定一軟件系統的測試量化值。
在本申請的又一可行實施例中,如圖10所示,上述所有實施例中的裝置還可包括:
判斷模塊101,用于判斷所述軟件系統的代碼模塊或開發人員中是否存在預警項;
需測試確定模塊102,用于當所述軟件系統中存在預警項時,確定所述軟件系統需測試。
由上可見,在本申請實施例中,可根據一軟件系統中的預警項,確定一軟件系統是否需測試。
需要說明的是,在本文中,諸如“第一”和“第二”等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
以上所述僅是本申請的具體實施方式,使本領域技術人員能夠理解或實現本申請。對這些實施例的多種修改對本領域的技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或范圍的情況下,在其它實施例中實現。因此,本申請將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
以上所述僅是本申請的具體實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本申請原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本申請的保護范圍。