專利名稱:一種手機軟件的自動化測試方法
技術領域:
本發明涉及一種可以對手動的測試操作進行錄制,然后回放所錄制的腳本來進行自動化測試的方法。
背景技術:
隨著手機的越來越普及,特別是越來越多的人開始使用智能手機,手機軟件測試工作變得越來越重要,尤其是智能手機的開放性,更是給手機測試增加了很多不確定因素,如果仍然使用傳統的手動測試方法,工作量將會變得非常龐大,對測試人員的能力要求也大大提高,因此,自動化測試在手機軟件測試領域變得越來越重要。
發明內容
為了在這個各種類手機快速發展的時代,提高手機軟件測試的效率和質量,本發明通過修改手機系統的framework層,對底層事件進行捕獲,從而實現對手動測試操作的錄制,并能夠將錄制完成的腳本寫入手機然后通過工具進行調用,使其在手機上自動運行,以完成手機的自動測試。以Android系統為例,對Android系統的framework層做相應修改,然后對按鍵、觸屏點擊、觸屏滑動、軌跡球滾動等操作進行函數定義,之后便可以對這些事件進行捕獲,從而可以將這些操作錄制為腳本,通過adb可以將腳本寫入手機,然后調用,手機便可以自動執行腳本中的操作了。除了錄制和運行以外,通過此方法錄制下來的腳本還可以進行修改,使其可以更加適應本手機升級以后的軟件,或者寫入到同平臺的其他手機中進行運行以實現對同平臺其他手機的自動化測試。此方法錄制的腳本具有通俗易懂的特點,修改起來也會比較容易,即使是沒有深入學習過編程的人也可以輕松進行腳本的修改,甚至可以直接編寫腳本。不僅僅是Android系統,其他手機平臺亦可以用此方法實現自動化測試。本發明解決了純手動測試工作量大的問題,也解決了由于測試人員技能水平和能力的差異而導致的會經常漏測的問題,只需要將測試步驟操作一遍即可以將其完整錄制下來,錄制完成的腳本既可以用于本手機的回歸測試或者驗證難以復現的bug,也可以將腳本進行部分修改,然后復用到其他手機進行相關測試。
具體實施例方式如
圖1所示,首先對手機系統的framework層進行相應修改(這種修改不會對手機本身的功能造成影響),然后將手機與PC進行連接,用戶下達指令啟動錄制功能,啟動錄制后在手機上進行測試操作,如按鍵、觸屏點擊、觸屏滑動、軌跡球滾動等,用戶每進行一步操作,系統都會將該步操作記錄下來,然后執行該操作,執行完一步后再去記錄用戶的下一步操作然后執行,如此循環(如圖2),最終將用戶的所有操作記錄在腳本中。待操作完成后,用戶下達指令停止錄制,生成腳本。腳本根據需要修改后(或不修改)寫入手機中運行,運行腳本時,系統先讀取腳本進行解析,然后根據腳本中記錄的操作生成相應的事件執行操作(如圖3)。
此方法的腳本內容記錄的是用戶事件,比如按鍵、觸屏。在腳本中對于按鍵操作記錄的是按鍵的鍵值,而對于觸屏操作記錄的是觸屏坐標。顯然,對于不同分別率的手機存在腳本兼容性的問題以及重新設計界面布局后腳本復用性的問題。由于按鍵的鍵值和分辨率無關,所有手機的鍵值都是相同的,所以按鍵操作不存在兼容性的問題。對于觸屏操作,在本發明中是通過兩級映射來解決上述問題的。將各界面的軟鍵分別進行按鍵定義,并且定義每一個軟鍵的熱區范圍,此為第一級映射;然后針對不同分辨率的手機分別定義一個映射表,記錄每個軟鍵的有效坐標(此坐標落于軟鍵的熱區范圍中),此為第二級映射。于是腳本中的操作可以是每個軟鍵的鍵值,再通過一個腳本解析程序根據映射表將軟鍵鍵值轉換為對應坐標,即可以供手機執行。對于不同分辨率的手機只需要使用不同的映射表即可以解決兼容性的問題,對于重新設計布局后的界面只需要修改腳本中的軟鍵鍵值即可以解決復用性的問題。通過此方法甚至可以直接根據測試用例將測試腳本編寫出來,這就使得測試腳本更加靈活。錄制完成后的腳本主要可以用于如下測試1、可以將該腳本直接寫入到本手機,然后調用該腳本執行。此用途主要是對升級軟件后的手機進行回歸測試。2、此方法錄制的腳本在運行時可以自定義重復執行的次數,因此對于難以復現的非必現問題,將操作步驟錄制為腳本后調用該腳本反復執行,可以方便的對此類問題進行復現。3、如果手機中的某功能進行了更改,可以直接在腳本中針對軟件更改部分進行腳本的修改使其符合更改后的軟件,然后可以直接在新版軟件中運行該修改過的腳本進行自動化測試,這樣就不用在每次更改手機軟件后都重新錄制一遍腳本。4、可以修改腳本用于同平臺其他型號手機的自動化測試,只需針對新型號手機的功能和特點將腳本中相應部分進行修改即可,這樣只需要錄制和維護一套腳本就可以對該平臺所有手機進行自動化測試,這個復用的特點使得軟件測試的效率大大提高。5、兼容性測試。錄制完成的腳本可以直接或者進行部分修改后寫入到其他手機中運行以測試某些程序在不同手機中的兼容性。例如開發一款應用程序后需要將其安裝到不同的手機中測試其兼容性,此時只需要在一臺手機上操作測試步驟然后將其錄制為腳本,再將腳本寫入到所有需要測試兼容性的手機中運行就可以完成兼容性的測試,不需要在每一臺手機上都手動測試一遍,測試工作量被大大減少。不僅僅是手機,這種兼容性測試同樣也可以用在如平板電腦等其他終端上。6、在錄制腳本時可以分模塊進行錄制,這樣將得到一個腳本集合,包含記錄各個模塊測試操作的一系列腳本。在使用腳本進行測試時,可以根據具體的測試需要從該集合中選擇需要的腳本然后進行適當的組合,形成一個恰當的測試序列,還可以在該測試序列中添加一些必要的測試步驟以完善測試流程。錄制時的模塊大小可以根據需要任意劃分。7、其他測試。如單元測試、壓力測試等,測試的同時會記錄trace信息,將測試過程中產生的trace信息和正確的trace信息對比,判斷是否存在問題,如有問題則修改腳本或軟件再次進行測試,如無問題則測試結束。同時在執行測試時還可以記錄測試的操作步驟為腳本,在出現問題時將此腳本回放復現問題,從而快速的進行問題定位。
權利要求
1.一種手機自動化測試方法,其特征在于 將手機系統進行部分修改擴展,可以用于對底層事件的捕獲。
2.根據權利要求1所述方法,其特征在于 使用修改后的系統,可以將對手機的按鍵、觸屏點擊、觸屏滑動、軌跡球滾動等手動操作進行錄制、回放。
3.根據權利要求1或2所述功能,其特征在于 手機連接PC后,可以通過PC控制手機啟動腳本錄制、停止腳本錄制、運行腳本等功能,并且錄制后的腳本可以進行修改。
4.根據權利要求2或3所述功能,其特征在于 錄制完成的腳本可以直接或者經過修改后用于如下測試 a、用于本手機升級版本的回歸測試;b、對非必現問題進行復現;c、用于本手機修改部分功能后的測試;d、用于同平臺其他型號手機的測試;e、兼容性測試;f、分模塊進行腳本錄制,然后組合,用于不同的測試需要;g、其他測試。
5.根據權利要求4所述功能,其特征在于,進一步包括 運行腳本的同時會記錄trace信息,將此trace信息和正確的trace信息進行對比,可以判斷是否存在問題,如果存在問題則修改腳本或軟件重新測試,同時在執行測試時還可以記錄測試的操作步驟為腳本,在出現問題時將此腳本回放復現問題。
6.根據權利要求3或4所述內容,其特征在于,進一步包括 測試腳本可以進行修改或直接編寫,在編輯腳本時,按鍵操作記錄為鍵值,而觸屏操作則將各軟鍵定義鍵值,然后根據針對不同分辨率定義好的映射表使用腳本解析程序將鍵值轉換為坐標供手機執行。
全文摘要
本發明為一種手機軟件的自動化測試方法。目前手機的普及程度幾乎達到了人手一部,隨著手機的不斷發展,使用智能手機的人也越來越多,特別是近幾年快速興起的Android手機,越來越多的公司開始進行Android手機的開發,但是智能手機軟件的復雜性特別是Android系統的高度開放性使其軟件測試工作變得非常復雜,即使是目前仍廣泛使用的功能手機(featurephone)包含的功能也越來越多,如果使用傳統的手動黑盒測試,工作量將隨之激增。本發明為一種基于錄制、回放思想的自動化測試方法,可以將手動測試操作錄制為腳本,然后通過回放腳本來實現自動化測試。這個發明可以使大量的手動測試工作轉化為自動測試,大大提高了測試效率。
文檔編號G06F11/36GK103064781SQ20111031728
公開日2013年4月24日 申請日期2011年10月18日 優先權日2011年10月18日
發明者萬忠翔 申請人:飛圖科技(北京)有限公司