新四季網

軟體測試方法及裝置製造方法

2023-06-05 22:20:51

軟體測試方法及裝置製造方法
【專利摘要】本發明公開了一種軟體測試方法及裝置。該方法包括:從待測軟體的當前狀態對應的所有狀態切換操作中隨機選擇一個作為當前狀態對應的目標操作,執行目標操作,將測試深度累加一次,獲得當前測試深度;確定當前測試深度是否達到預設測試深度;如果是,則此次軟體測試成功。通過從當前狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作來執行,確保軟體測試過程能夠模擬用戶操作軟體的隨機行為,使得軟體測試更具可靠性。通過為此次軟體測試過程設置預設測試深度,確保可以執行任意次數的狀態切換操作,使得軟體測試過程可以覆蓋用戶的所有行為,從而能夠提高軟體測試的全面性。另外,由於無需人工參與測試,使得軟體測試的成本較低。
【專利說明】軟體測試方法及裝置
【技術領域】
[0001]本發明涉及軟體【技術領域】,特別涉及一種軟體測試方法及裝置。
【背景技術】
[0002]隨著軟體技術的迅速發展,出現了越來越多的計算機應用軟體。軟體運營商在設計好軟體之後,為了保證軟體能夠正常運行,會對設計好的軟體進行軟體測試。軟體測試是軟體工程中非常重要的一個環節,良好的軟體測試方法是軟體質量的重要保障。
[0003]相關技術在進行軟體測試時,會預先設計此次軟體測試需要測試的功能的測試用例,並根據設計好的測試用例通過自動測試或人工測試的方法進行軟體測試。具體地,對於每一個測試用例,均對應一個輸入狀態、一個輸出狀態以及從輸入狀態到輸出狀態需執行的每個狀態切換操作。因此,在相關技術中,當使用自動測試的方法進行軟體測試時,所採用的方法為:第一步,自動測試機獲取為此次軟體測試設計的測試用例,並按照測試用例的流程執行從該測試用例的輸入狀態到輸出狀態需執行的每個狀態切換操作,獲得輸出狀態。例如,如果從輸入狀態到輸出狀態需執行a、b和c三個狀態切換操作,且測試用例設計的執行流程為a-b-c,則自動測試機按照a-b-c的順序運行獲得輸出狀態。第二步,判斷此次軟體測試的輸出狀態與測試用例的輸出狀態是否一致;如果輸出狀態與測試用例的輸出狀態一致,則此次軟體測試成功;如果在測試的過程中出現異常或者出現輸出狀態與測試用例的輸出狀態不一致的情況,則此次軟體測試失敗。當採用人工測試的方法進行軟體測試時,是通過人工執行從測試用例的輸入狀態到輸出狀態需執行的每個狀態切換操作,獲得輸出狀態,並判斷輸出狀態與設計用例的輸出狀態是否一致來實現。
[0004]在實現本發明的過程中,發明人發現相關技術至少存在以下問題:
[0005]由於用戶在操作軟體的過程中的行為具有隨意性和不可預料性,因此,對於自動化測試來說,由於自動化測試是基於測試用例編寫的流程化的測試方法,而測試用例的流程中設計的每個狀態切換操作有可能不能和用戶操作軟體時執行的每個狀態切換操作完全一致。例如,測試用例的流程為a-b-c,而用戶執行的狀態切換操作為a-b-d-e-c。在此種情況下,測試用例包含的狀態切換操作可能不包括用戶執行的某些狀態切換操作,導致軟體測試的可靠性不高。另外,如果測試用例過於簡單,則可能不能覆蓋用戶操作軟體時執行的所有狀態切換操作,無法保證軟體測試的全面性。對於人工測試來說,雖然人工測試可以對既定的測試用例無法覆蓋的用戶執行的狀態切換操作進行擴充,但是會耗費大量的人力成本,導致軟體測試的成本較高。

【發明內容】

[0006]為了解決相關技術的問題,本發明實施例提供了一種軟體測試方法及裝置。所述技術方案如下:
[0007]第一方面,提供了一種軟體測試方法,所述方法包括:
[0008]確定待測軟體的當前狀態,並確定所述當前狀態對應的所有狀態切換操作,所述當前狀態對應的所有狀態切換操作為從所述當前狀態切換至與所述當前狀態相關的各個下一狀態需執行的狀態切換操作的集合,且從所述當前狀態切換至與所述當前狀態相關的任意下一狀態均需執行一次狀態切換操作;
[0009]從所述當前狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為當前狀態對應的目標操作,執行所述當前狀態對應的目標操作,並將測試深度累加一次,獲得當前測試深度,所述測試深度為此次軟體測試過程已經執行狀態切換操作的次數;
[0010]確定所述當前測試深度是否達到預設測試深度,所述預設測試深度為預先設置的此次軟體測試過程需執行狀態切換操作的次數;
[0011]如果所述當前測試深度達到所述預設測試深度,則確定此次軟體測試成功。
[0012]結合第一方面,在第一方面的第一種可能的實現方式中,所述確定待測軟體的當前狀態之前,還包括:
[0013]獲取根據所述待測軟體的功能確定的所述待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作;
[0014]所述確定所述當前狀態對應的所有狀態切換操作,包括:
[0015]根據所述待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定所述當前狀態對應的所有狀態切換操作。
[0016]結合第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,所述根據所述待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定所述當前狀態對應的所有狀態切換操作,包括:
[0017]根據所述待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定狀態切換關係;
[0018]根據所述狀態切換關係確定所述當前狀態對應的所有狀態切換操作。
[0019]結合第一方面,在第一方面的第三種可能的實現方式中,所述確定所述當前測試深度是否達到預設測試深度之後,還包括:
[0020]如果所述當前測試深度未達到所述預設測試深度,則將執行所述當前狀態對應的目標操作獲得的狀態作為更新後的狀態,並從所述更新後的狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為更新後的狀態對應的目標操作,執行所述更新後的狀態對應的目標操作,並返回將測試深度累加一次的步驟。
[0021]結合第一方面至第一方面的第三種可能的實現方式中的任一種可能的實現方式,在第一方面的第四種可能的實現方式中,所述確定所述當前測試深度是否達到預設測試深度之後,還包括:
[0022]如果此次軟體測試過程發生異常,則跳出軟體測試,並確定此次軟體測試失敗。
[0023]第二方面,提供了一種軟體測試裝置,所述裝置包括:
[0024]第一確定模塊,用於確定待測軟體的當前狀態;
[0025]第二確定模塊,用於確定所述當前狀態對應的所有狀態切換操作,所述當前狀態對應的所有狀態切換操作為從所述當前狀態切換至與所述當前狀態相關的各個下一狀態需執行的狀態切換操作的集合,且從所述當前狀態切換至與所述當前狀態相關的任意下一狀態均需執行一次狀態切換操作;
[0026]第一選擇模塊,用於從所述當前狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為當前狀態對應的目標操作;
[0027]第一執行模塊,用於執行所述當前狀態對應的目標操作;
[0028]累加模塊,用於將測試深度累加一次,獲得當前測試深度,所述測試深度為此次軟體測試過程已經執行狀態切換操作的次數;
[0029]第三確定模塊,用於確定所述當前測試深度是否達到預設測試深度,所述預設測試深度為預先設置的此次軟體測試過程需執行狀態切換操作的次數;
[0030]第四確定模塊,用於當所述當前測試深度達到所述預設測試深度時,確定此次軟體測試成功。
[0031]結合第二方面,在第二方面的第一種可能的實現方式中,所述裝置,還包括:
[0032]獲取模塊,用於獲取根據所述待測軟體的功能確定的所述待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作;
[0033]所述第二確定模塊,用於根據所述待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定所述當前狀態對應的所有狀態切換操作。
[0034]結合第二方面的第一種可能的實現方式,在第二方面的第二種可能的實現方式中,所述第二確定模塊,包括:
[0035]第一確定單元,用於根據所述待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定狀態切換關係;
[0036]第二確定單元,用於根據所述狀態切換關係確定所述當前狀態對應的所有狀態切換操作。
[0037]結合第二方面,在第二方面的第三種可能的實現方式中,所述裝置,還包括:
[0038]第五確定模塊,用於當所述當前測試深度未達到所述預設測試深度時,將執行所述當前狀態對應的目標操作獲得的狀態作為更新後的狀態;
[0039]第二選擇模塊,用於從所述更新後的狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為更新後的狀態對應的目標操作;
[0040]第二執行模塊,用於執行所述更新後的狀態對應的目標操作,並返回將測試深度累加一次的步驟。
[0041]結合第一方面至第一方面的第三種可能的實現方式中的任一種可能的實現方式,在第一方面的第四種可能的實現方式中,所述裝置,還包括:
[0042]第六確定模塊,用於當此次軟體測試過程發生異常時,跳出軟體測試,並確定此次軟體測試失敗。
[0043]本發明實施例提供的技術方案帶來的有益效果是:
[0044]通過從當前狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作來執行,確保軟體測試過程能夠模擬用戶操作軟體的隨機行為,使得軟體測試更具可靠性。通過為此次軟體測試過程設置預設測試深度,確保可以執行任意次數的狀態切換操作,使得軟體測試過程可以覆蓋用戶的所有行為,從而能夠提高軟體測試的全面性。另外,由於無需人工參與測試,使得軟體測試的成本較低。
【專利附圖】

【附圖說明】
[0045]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0046]圖1是本發明實施例一提供的一種軟體測試方法的流程圖;
[0047]圖2是本發明實施例二提供的一種軟體測試方法的流程圖;
[0048]圖3是本發明實施例二提供的一種狀態切換關係的示意圖;
[0049]圖4是本發明實施例三提供的第一種軟體測試裝置結構示意圖;
[0050]圖5是本發明實施例三提供的第二種軟體測試裝置結構示意圖;
[0051]圖6是本發明實施例三提供的第三種軟體測試裝置結構示意圖;
[0052]圖7是本發明實施例三提供的第四種軟體測試裝置結構示意圖。
【具體實施方式】
[0053]為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
[0054]本發明實施例提供的軟體測試方法通過軟體測試裝置完成軟體測試。其中,在軟體測試裝置中預先存儲了根據待測軟體的功能確定的待測軟體的全部狀態以及在每兩個狀態之間切換時需執行的狀態切換操作,並通過該軟體測試裝置實現在待測軟體的全部狀態之間進行切換的有限狀態機,使得通過該軟體測試裝置能夠測試待測軟體包含的全部功倉泛。
[0055]其中,本發明實施例不對軟體測試裝置的具體類型進行限定。具體實施時,軟體測試裝置包括但不限於可以為QTP(QuickTest Professiona,自動測試機),等等。
[0056]其中,具體的軟體測試方法詳見下述實施例一和實施例二:
[0057]實施例一
[0058]結合上述內容,本發明實施例提供了一種軟體測試方法。參見圖1,本發明實施例提供的方法流程包括:
[0059]101:確定待測軟體的當前狀態,並確定當前狀態對應的所有狀態切換操作,當前狀態對應的所有狀態切換操作為從當前狀態切換至與當前狀態相關的各個下一狀態需執行的狀態切換操作的集合,且從當前狀態切換至與當前狀態相關的任意下一狀態均需執行一次狀態切換操作。
[0060]優選地,確定待測軟體的當前狀態之前,還包括:
[0061]獲取根據待測軟體的功能確定的待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作;
[0062]確定當前狀態對應的所有狀態切換操作,包括:
[0063]根據待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定當前狀態對應的所有狀態切換操作。
[0064]其中,根據待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定當前狀態對應的所有狀態切換操作,包括:
[0065]根據待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定狀態切換關係;[0066]根據狀態切換關係確定當前狀態對應的所有狀態切換操作。
[0067]102:從當前狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為當前狀態對應的目標操作,執行當前狀態對應的目標操作,並將測試深度累加一次,獲得當前測試深度,測試深度為此次軟體測試過程已經執行狀態切換操作的次數。
[0068]103:確定當前測試深度是否達到預設測試深度,預設測試深度為預先設置的此次軟體測試過程需執行狀態切換操作的次數。
[0069]104:如果當前測試深度達到預設測試深度,則確定此次軟體測試成功。
[0070]優選地,確定當前測試深度是否達到預設測試深度之後,還包括:
[0071]如果當前測試深度未達到預設測試深度,則將執行當前狀態對應的目標操作獲得的狀態作為更新後的狀態,並從更新後的狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為更新後的狀態對應的目標操作,執行更新後的狀態對應的目標操作,並返回將測試深度累加一次的步驟。
[0072]優選地,確定當前測試深度是否達到預設測試深度之後,還包括:
[0073]如果此次軟體測試過程發生異常,則跳出軟體測試,並確定此次軟體測試失敗。
[0074]本發明實施例提供的方法,通過從當前狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作來執行,確保軟體測試過程能夠模擬用戶操作軟體的隨機行為,使得軟體測試更具可靠性。通過為此次軟體測試過程設置預設測試深度,確保可以執行任意次數的狀態切換操作,使得軟體測試過程可以覆蓋用戶的所有行為,從而能夠提高軟體測試的全面性。另外,由於無需人工參與測試,使得軟體測試的成本較低。
[0075]實施例二
[0076]結合上述實施例一的內容,本發明實施例提供了一種軟體測試方法。參見圖2,本發明實施例提供的方法流程包括:
[0077]201:獲取根據待測軟體的功能確定的待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作。
[0078]為了測試待測軟體的全部功能,在本發明實施例中,將待測軟體的全部功能等效為各個狀態,並將實現某一功能需要執行的操作作為狀態切換操作,且在每兩個狀態之間切換時均需執行一次狀態切換操作。通過執行狀態切換操作,能在待測軟體的各個狀態之間切換,從而實現待測軟體的全部功能。例如,如果待測軟體當前要測試的功能為用戶A在與用戶B聊天的對話框中輸入聊天內容,然後通過點擊回車鍵發送,則此時待測軟體的一個狀態為用戶A在與用戶B對話的對話框中輸入聊天內容,另一狀態為用戶A可以通過在與用戶B對話的對話框中輸入聊天內容從而實現向用戶B發送已經輸入的聊天內容,從一個狀態到另一狀態切換時需執行的狀態切換操作即為用戶A點擊回車鍵的操作。
[0079]綜上,為了測試待測軟體的全部功能,需要獲取根據待測軟體的功能確定的待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作。
[0080]關於獲取根據待測軟體的功能確定的待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作的方式,本發明實施例不作具體限定。具體實施時,可以為其它設備根據待測軟體的功能生成待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作後,通過導入其它設備生成的待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作的方式來獲取,也可以通過接收其它設備發送的待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作的方式來獲取,還可以通過在本地生成待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作的方式來獲取,等等。
[0081]關於待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作的具體內容,本發明實施例不作具體限定。具體實施時,可以結合待測軟體具體要實現的功能而定。
[0082]優選地,在獲取到根據待測軟體的功能確定的待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作之後,需要存儲待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作。另外,為了便於記錄或查詢與各個狀態相關的狀態切換操作以及確定每兩個狀態進行切換時需執行的狀態切換操作,可以根據待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定狀態切換關係。
[0083]關於狀態切換關係的具體形式,本發明實施例不作具體限定。具體實施時,狀態切換關係包括但不限於可以使用如圖3所示的狀態切換圖的方式表示。由圖3所示的狀態切換關係可以很清楚地獲知待測軟體包含的全部狀態以及在每兩個狀態之間切換時需執行的狀態切換操作。例如,由圖3可得,與該狀態切換關係對應的待測軟體包含四個狀態,分別為狀態A、狀態B、狀態C和狀態D。狀態A和狀態B之間進行切換時需執行的狀態切換操作為操作1,狀態A和狀態D之間進行切換時需執行的狀態切換操作為操作5,等等。
[0084]需要說明的是,在進行軟體測試時,並不是每次測試過程都需要對待測軟體的所有功能進行測試,可以是選擇待測軟體的某些功能進行測試即可。在本發明實施例中,進行某次軟體測試過程,可以僅選擇其中的某些狀態進行測試,也可以選擇待測軟體的全部狀態進行測試。因此,上述步驟201為進行某次軟體測試之前需要執行的步驟,並不是進行每次軟體測試過程均需執行的步驟,保證在進行某次軟體測試之前,獲取到根據待測軟體的功能確定的待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作即可。下述各個步驟為進行某次軟體測試過程需執行的步驟,具體的進行某次軟體測試過程的具體方法,詳見下述各個步驟。
[0085]202:確定待測軟體的當前狀態,並確定當前狀態對應的所有狀態切換操作,其中,當前狀態對應的所有狀態切換操作為從當前狀態切換至與當前狀態相關的各個下一狀態需執行的狀態切換操作的集合,且從當前狀態切換至與當前狀態相關的任意下一狀態均需執行一次狀態切換操作。
[0086]為了從某一狀態開始進行此次軟體測試,需要確定待測軟體的當前狀態。另外,由於與當前狀態相關的下一狀態可能有多個,且在每兩個狀態之間進行切換時均需執行一次狀態切換操作。也就是說,與當前狀態相關的狀態切換操作可能為多個。因此,還需要確定當前狀態對應的所有狀態切換操作。
[0087]關於確定待測軟體的當前狀態的方式,本發明實施例不作具體限定。具體實施時,可以檢測當前軟體測試接口獲取到的狀態的特徵,並根據狀態的特徵確定待測軟體的當前狀態。例如,如果當前要測試的功能為通過點擊登錄框完成登錄操作,則可以通過遍歷待測軟體的全部狀態來查詢登錄框,並將查詢到的登陸框對應的狀態確定為當前狀態。另外,確定待測軟體的當前狀態時,還可以通過確定此次軟體測試需要測試的功能,從而獲取與該功能對應的狀態,並將該功能對應的狀態確定為當如狀態,等等。
[0088]其中,確定當前狀態對應的所有狀態切換操作的方式,可以為:根據待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定當前狀態對應的所有狀態切換操作。例如,如果在步驟201中在獲取到根據待測軟體的功能確定的待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作後,形成了狀態切換關係,則在確定當前狀態對應的所有狀態切換操作時,可以根據狀態切換關係確定當前狀態對應的所有狀態切換操作。如圖3所示,如果當前狀態為狀態A,則根據如圖3所示的狀態切換關係,可得到狀態A對應的所有狀態切換操作有操作1、操作5和操作7。
[0089]203:從當前狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為當前狀態對應的目標操作,執行當前狀態對應的目標操作。
[0090]為了模擬用戶操作軟體的隨意行為,本發明實施例提供的軟體測試方法在進行此次軟體測試時,從當前狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作來進行此次軟體測試,將隨機選擇的狀態切換操作作為當前狀態對應的目標操作,並執行當前狀態對應的目標操作。
[0091]其中,執行當前狀態對應的目標操作的方式,可以有很多種。例如,可以為獲取運行指令,並根據獲取到的運行指令從當前狀態開始執行當前狀態對應的目標操作。
[0092]204:將測試深度累加一次,獲得當前測試深度,測試深度為此次軟體測試過程已經執行狀態切換操作的次數。
[0093]為了確定此次軟體測試過程是否成功或者確定此次軟體測試過程是否還需繼續,在本發明實施例中通過根據此次軟體測試過程的當前測試深度來確定,並且在進行此次軟體測試的過程中,每執行一次狀態切換操作,累加一次測試深度。因此,在執行當前狀態對應的目標操作之後,需要將表示此次軟體測試過程已經執行狀態切換操作的次數的測試深度累加一次,從而獲得當前測試深度。
[0094]205:確定當前測試深度是否達到預設測試深度,如果當前測試深度達到預設測試深度,執行步驟206 ;如果當前測試深度未達到預設測試深度,執行步驟207。
[0095]其中,預設測試深度為預先設置的此次軟體測試過程需執行狀態切換操作的次數。
[0096]在本發明實施例中,根據表示預先設置的此次軟體測試過程需執行狀態切換操作的次數的預設測試深度與當前測試深度之間的關係來確定當前測試深度是否達到預設測試深度。因此,需要確定當前測試深度是否達到預設測試深度。
[0097]關於確定當前測試深度是否達到預設測試深度的方式,本發明實施例不作具體限定。具體實施時,可以通過將當前測試深度與預設測試深度進行比對來實現。
[0098]本發明實施例不對預設測試深度的數量進行限定,該預設測試深度的數量可以為任意數值,具體實施時可以根據需要進行設置。通過設置任意數值的預設測試深度,可以隨意地對此次軟體測試過程執行狀態切換操作的次數進行設置,不僅能進一步模擬用戶操作軟體的隨意性,而且能夠保證軟體測試過程的全面性。
[0099]206:確定此次軟體測試成功,流程結束。
[0100]例如,如果預設測試深度為300,通過執行步驟204獲得的當前測試深度達到300,則確定此次軟體測試成功。[0101]207:將執行當前狀態對應的目標操作獲得的狀態作為更新後的狀態,並從更新後的狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為更新後的狀態對應的目標操作,執行更新後的狀態對應的目標操作,並返回步驟204。
[0102]由於當前測試深度未達到預設測試深度,則說明還需要繼續進行此次軟體測試過程,因此,當從當前狀態開始執行當前狀態對應的目標操作獲得一個新的狀態後,將獲得的新的狀態作為更新後的狀態,並參照步驟203的方法,從更新後的狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為更新後的狀態對應的目標操作,執行更新後的狀態對應的目標操作,並返回步驟204。
[0103]關於從更新後的狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為更新後的狀態對應的目標操作,執行更新後的狀態對應的目標操作的原理同上述步驟203中從當前狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為當前狀態對應的目標操作,執行當前狀態對應的目標操作的原理相同,具體參見上述步驟203的原理,此處不再贅述。
[0104]優選地,如果在進行此次軟體測試的過程發生異常,則跳出軟體測試,並確定此次軟體測試失敗。
[0105]本發明實施例提供的方法,通過從當前狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作來執行,確保軟體測試過程能夠模擬用戶操作軟體的隨機行為,使得軟體測試更具可靠性。通過為此次軟體測試過程設置預設測試深度,確保可以執行任意次數的狀態切換操作,使得軟體測試過程可以覆蓋用戶的所有行為,從而能夠提高軟體測試的全面性。另外,由於無需人工參與測試,使得軟體測試的成本較低。
[0106]實施例三
[0107]本發明實施例提供了一種軟體測試裝置,該裝置用於執行上述實施例一和實施例二提供的軟體測試方法。參見圖4,該裝置包括:
[0108]第一確定模塊401,用於確定待測軟體的當前狀態;
[0109]第二確定模塊402,用於確定當前狀態對應的所有狀態切換操作,當前狀態對應的所有狀態切換操作為從當前狀態切換至與當前狀態相關的各個下一狀態需執行的狀態切換操作的集合,且從當前狀態切換至與當前狀態相關的任意下一狀態均需執行一次狀態切換操作;
[0110]第一選擇模塊403,用於從當前狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為當前狀態對應的目標操作;
[0111]第一執行模塊404,用於執行當前狀態對應的目標操作;
[0112]累加模塊405,用於將測試深度累加一次,獲得當前測試深度,測試深度為此次軟體測試過程已經執行狀態切換操作的次數;
[0113]第三確定模塊406,用於確定當前測試深度是否達到預設測試深度,預設測試深度為預先設置的此次軟體測試過程需執行狀態切換操作的次數;
[0114]第四確定模塊407,用於噹噹前測試深度達到預設測試深度時,確定此次軟體測試成功。
[0115]優選地,參見圖5,裝置,還包括:
[0116]獲取模塊408,用於獲取根據待測軟體的功能確定的待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作;
[0117]第二確定模塊402,用於根據待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定當前狀態對應的所有狀態切換操作。
[0118]優選地,第二確定模塊402,包括:
[0119]第一確定單元,用於根據待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定狀態切換關係;
[0120]第二確定單元,用於根據狀態切換關係確定當前狀態對應的所有狀態切換操作。
[0121]優選地,參見圖6,裝置,還包括:
[0122]第五確定模塊409,用於噹噹前測試深度未達到預設測試深度時,將執行當前狀態對應的目標操作獲得的狀態作為更新後的狀態;
[0123]第二選擇模塊410,用於從更新後的狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為更新後的狀態對應的目標操作;
[0124]第二執行模塊411,用於執行更新後的狀態對應的目標操作,並返回將測試深度累加一次的步驟。
[0125]優選地,參見圖7,裝置,還包括:
[0126]第六確定模塊412,用於當此次軟體測試過程發生異常時,跳出軟體測試,並確定此次軟體測試失敗。
[0127]本發明實施例提供的裝置,通過從當前狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作來執行,確保軟體測試過程能夠模擬用戶操作軟體的隨機行為,使得軟體測試更具可靠性。通過為此次軟體測試過程設置預設測試深度,確保可以執行任意次數的狀態切換操作,使得軟體測試過程可以覆蓋用戶的所有行為,從而能夠提高軟體測試的全面性。另外,由於無需人工參與測試,使得軟體測試的成本較低。
[0128]需要說明的是:上述實施例提供的軟體測試裝置在執行軟體測試方法時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的軟體測試裝置與軟體測試方法實施例屬於同一構思,其具體實現過程詳見方法實施例,這裡不再贅述。
[0129]上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。
[0130]本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬體來完成,也可以通過程序來指令相關的硬體完成,所述的程序可以存儲於一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁碟或光碟等。
[0131]以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
【權利要求】
1.一種軟體測試方法,其特徵在於,所述方法包括: 確定待測軟體的當前狀態,並確定所述當前狀態對應的所有狀態切換操作,所述當前狀態對應的所有狀態切換操作為從所述當前狀態切換至與所述當前狀態相關的各個下一狀態需執行的狀態切換操作的集合,且從所述當前狀態切換至與所述當前狀態相關的任意下一狀態均需執行一次狀態切換操作; 從所述當前狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為當前狀態對應的目標操作,執行所述當前狀態對應的目標操作,並將測試深度累加一次,獲得當前測試深度,所述測試深度為此次軟體測試過程已經執行狀態切換操作的次數; 確定所述當前測試深度是否達到預設測試深度,所述預設測試深度為預先設置的此次軟體測試過程需執行狀態切換操作的次數; 如果所述當前測試深度達到所述預設測試深度,則確定此次軟體測試成功。
2.根據權利要求1所述的方法,其特徵在於,所述確定待測軟體的當前狀態之前,還包括: 獲取根據所述待測軟體的功能確定的所述待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作; 所述確定所述當前狀態對應的所有狀態切換操作,包括: 根據所述待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定所述當前狀態對應的所有狀態切換操作。
3.根據權利要求2所述的方法,其特徵在於,所述根據所述待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定所述當前狀態對應的所有狀態切換操作,包括: 根據所述待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定狀態切換關係 根據所述狀態切換關係確定所述當前狀態對應的所有狀態切換操作。
4.根據權利要求1所述的方法,其特徵在於,所述確定所述當前測試深度是否達到預設測試深度之後,還包括: 如果所述當前測試深度未達到所述預設測試深度,則將執行所述當前狀態對應的目標操作獲得的狀態作為更新後的狀態,並從所述更新後的狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為更新後的狀態對應的目標操作,執行所述更新後的狀態對應的目標操作,並返回將測試深度累加一次的步驟。
5.根據權利要求1至4中任一權利要求所述的方法,其特徵在於,所述確定所述當前測試深度是否達到預設測試深度之後,還包括: 如果此次軟體測試過程發生異常,則跳出軟體測試,並確定此次軟體測試失敗。
6.一種軟體測試裝置,其特徵在於,所述裝置包括: 第一確定模塊,用於確定待測軟體的當前狀態; 第二確定模塊,用於確定所述當前狀態對應的所有狀態切換操作,所述當前狀態對應的所有狀態切換操作為從所述當前狀態切換至與所述當前狀態相關的各個下一狀態需執行的狀態切換操作的集合,且從所述當前狀態切換至與所述當前狀態相關的任意下一狀態均需執行一次狀態切換操作;第一選擇模塊,用於從所述當前狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為當前狀態對應的目標操作; 第一執行模塊,用於執行所述當前狀態對應的目標操作; 累加模塊,用於將測試深度累加一次,獲得當前測試深度,所述測試深度為此次軟體測試過程已經執行狀態切換操作的次數; 第三確定模塊,用於確定所述當前測試深度是否達到預設測試深度,所述預設測試深度為預先設置的此次軟體測試過程需執行狀態切換操作的次數; 第四確定模塊,用於當所述當前測試深度達到所述預設測試深度時,確定此次軟體測試成功。
7.根據權利要求6所述的裝置,其特徵在於,所述裝置,還包括: 獲取模塊,用於獲取根據所述待測軟體的功能確定的所述待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作; 所述第二確定模塊,用於根據所述待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作確定所述當前狀態對應的所有狀態切換操作。
8.根據權利要求7所述的裝置,其特徵在於,所述第二確定模塊,包括: 第一確定單元,用於根據所述待測軟體包含的所有狀態以及在每兩個狀態之間切換時需執行的狀態切換操作 確定狀態切換關係; 第二確定單元,用於根據所述狀態切換關係確定所述當前狀態對應的所有狀態切換操作。
9.根據權利要求6所述的裝置,其特徵在於,所述裝置,還包括: 第五確定模塊,用於當所述當前測試深度未達到所述預設測試深度時,將執行所述當前狀態對應的目標操作獲得的狀態作為更新後的狀態; 第二選擇模塊,用於從所述更新後的狀態對應的所有狀態切換操作中隨機選擇一個狀態切換操作作為更新後的狀態對應的目標操作; 第二執行模塊,用於執行所述更新後的狀態對應的目標操作,並返回將測試深度累加一次的步驟。
10.根據權利要求6至9中任一權利要求所述的裝置,其特徵在於,所述裝置,還包括: 第六確定模塊,用於當此次軟體測試過程發生異常時,跳出軟體測試,並確定此次軟體測試失敗。
【文檔編號】G06F11/36GK104008056SQ201410240379
【公開日】2014年8月27日 申請日期:2014年5月30日 優先權日:2014年5月30日
【發明者】羅靜 申請人:廣州華多網絡科技有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀