Rangkaian cenderung mencakup beberapa modul pengujian dan dapat mencapai jumlah ukuran korpus uji. Misalnya, Compatibility Test Suite (CTS) Android mencakup ratusan modul dan ratusan ribu kasus pengujian.
Sejumlah besar pengujian dapat gagal karena isolasi yang buruk atau perangkat yang dalam kondisi buruk.
Fitur coba lagi suite dimaksudkan untuk mengatasi kasus tersebut: Hal ini memungkinkan Anda mencoba lagi kegagalan itu saja alih-alih rangkaian lengkap untuk mengesampingkan kegagalan dan isolasi yang buruk. Jika pengujian terus-menerus gagal, percobaan ulang juga akan gagal; dan Anda mendapatkan sinyal yang jauh lebih kuat bahwa ada masalah nyata.
Mengimplementasikan percobaan ulang suite
Percobaan ulang hasil melibatkan pembacaan hasil sebelumnya dan menjalankan kembali pemanggilan sebelumnya.
Antarmuka utama yang mendorong percobaan ulang adalah ITestSuiteResultLoader
,
yang memungkinkan Anda memuat hasil sebelumnya, dan baris perintah sebelumnya.
RetryRescheduler
menggunakan informasi ini untuk membuat ulang
perintah sebelumnya dan mengisi beberapa
filter untuk menjalankan kembali kegagalan sebelumnya
atau pengujian yang tidak dijalankan.
Contoh percobaan ulang suite: CTS
Konfigurasi percobaan ulang di CTS adalah:
<configuration description="Runs a retry of a previous CTS session.">
<object type="previous_loader" class="com.android.compatibility.common.tradefed.result.suite.PreviousResultLoader" />
<test class="com.android.tradefed.testtype.suite.retry.RetryRescheduler" />
<logger class="com.android.tradefed.log.FileLogger">
<option name="log-level-display" value="WARN" />
</logger>
</configuration>
Hal ini berlaku untuk sebagian besar suite yang memperluasnya, misalnya VTS.
Fungsi ini akan dipanggil dengan:
cts-tradefed run retry --retry <session>
Sesi dapat ditemukan dengan mencantumkan hasil sebelumnya pada konsol CTS:
cts-tf > l r
Session Pass Fail Modules Complete Result Directory Test Plan Device serial(s) Build ID Product
0 2092 30 148 of 999 2018.10.29_14.12.57 cts [serial] P Pixel
Perintah asli yang sama persis akan dimuat ulang dan dijalankan kembali dengan filter tambahan. Ini berarti bahwa jika perintah asli Anda menyertakan beberapa opsi, itu juga sebagai bagian dari percobaan ulang.
Contoh:
cts-tradefed run cts-dev -m CtsGestureTestCases
Percobaan ulang tindakan di atas selalu terikat dengan CtsGestureTestCases
karena
kita mencoba kembali
perintah yang hanya melibatkannya.
Mengonfigurasi percobaan ulang untuk suite gaya CTS
Agar percobaan ulang berhasil, hasil sebelumnya harus diekspor di proto. Hal berikut perlu ditambahkan:
<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />
Ini perlu ditambahkan ke konfigurasi XML perintah utama, dan itu
menghasilkan file test-record.pb
yang dibuat di folder hasil.
Percobaan ulang CTS kemudian memuat data dari kombinasi test-record.pb
dan
test_result.xml
yang ada untuk menyiapkan pemanggilan percobaan ulang.