Siklus proses pengujian TF

Siklus proses pengujian yang dijalankan menggunakan Trade Federation terdiri dari empat tahap terpisah, yang dirancang berdasarkan antarmuka yang ditentukan secara formal.

Antarmuka yang ditentukan

  • Penyedia Build: Menyediakan build untuk diuji, mendownload file yang sesuai jika diperlukan.
  • Target Preparer: Menyiapkan lingkungan pengujian, mungkin termasuk penginstalan software dan konfigurasi perangkat.
  • Pengujian: Menjalankan pengujian dan mengumpulkan hasil pengujian. Ini dapat berupa Pengujian JUnit apa pun, meskipun antarmuka IRemoteTest kami dirancang secara khusus agar berfungsi dengan baik di lingkungan Trade Federation.
  • Test Invocation Listener (pelaporan hasil): Memproses hasil pengujian, biasanya untuk meneruskan hasil pengujian ke repositori atau menampilkannya ke Test Runner.

Entitas pengujian dasar di TF adalah Konfigurasi (config). Konfigurasi adalah file XML yang mendeklarasikan komponen siklus proses pengujian.

Pemisahan siklus proses pengujian ini dimaksudkan untuk memungkinkan penggunaan kembali. Dengan desain ini, Developer dapat membuat Pengujian satu kali, lalu Integrator dapat membuat Konfigurasi yang berbeda untuk menjalankan Pengujian tersebut di lingkungan yang berbeda. Misalnya, mereka dapat membuat Konfigurasi yang akan menjalankan pengujian di komputer lokal dan membuang hasilnya ke stdout. Kemudian, mereka dapat membuat Konfigurasi kedua yang akan menjalankan pengujian yang sama, tetapi menggunakan Test Invocation Listener yang berbeda untuk menyimpan hasil pengujian dalam database. Konfigurasi ketiga mungkin dirancang untuk menjalankan pengujian secara terus-menerus dari lab pengujian di suatu tempat.

Perlu diperhatikan di sini bahwa Konfigurasi beserta argumen command line-nya (seperti yang disediakan oleh Test Runner) dikenal sebagai Perintah. Saat TF menyambungkan Perintah dengan ITestDevice dan menjalankannya, objek berikutnya dikenal sebagai Pemanggilan. Singkatnya, Panggilan mencakup eksekusi pengujian TF lengkap, di seluruh siklus prosesnya.

Komponen konfigurasi tambahan

  • Pemulihan Perangkat: mekanisme untuk memulihkan komunikasi perangkat jika hilang.
  • Logger: mengumpulkan data logging tradefed.

Output dan error tahap

Setiap tahap pemanggilan dieksekusi secara berurutan dan memiliki sasaran tertentu. Bagian ini menjelaskan output dan error biasa dari setiap tahap.

Membuat penyedia

Tahap ini membuat dan menghasilkan objek IBuildInfo yang berisi semua referensi file yang diperlukan untuk menyiapkan dan menjalankan pengujian.

Error yang paling umum pada tahap ini adalah kegagalan untuk mendownload atau menemukan file yang diminta.

Error pada tahap ini akan langsung melaporkan error, dan tidak ada pengujian yang dijalankan.

Persiapan target

Tahap ini menyiapkan status yang diperlukan untuk target yang sedang diuji. Tahap ini dapat mengubah perangkat atau penyiapan host sesuai kebutuhan untuk pemanggilan pengujian tertentu.

Error umum pada tahap ini biasanya melibatkan kegagalan untuk menyiapkan perangkat ke status tertentu (misalnya, flash gagal) dan kegagalan untuk menemukan file yang diperlukan untuk penyiapan.

Error pada tahap ini akan menyebabkan pembersihan target berjalan, melaporkan error, dan tidak ada pengujian yang dijalankan.

Pengujian

Tahap ini menjalankan pengujian yang diminta pada target yang disiapkan sebelumnya, dan melaporkan semua hasil eksekusi pengujian.

Error umum pada tahap ini biasanya melibatkan target yang sedang diuji tidak tersedia atau beberapa error yang menyebabkan eksekusi pengujian sebagian. Error ini adalah masalah infrastruktur yang memengaruhi eksekusi pengujian itu sendiri, bukan kegagalan satu kasus pengujian.

Error pada tahap ini menyebabkan eksekusi pengujian berhenti, pembersihan target berjalan, melaporkan error, dan mendapatkan hasil sebagian.

Pelaporan hasil

Tahap ini melaporkan hasil dan error ke layanan yang dikonfigurasi (misalnya, server dan file lokal).

Meskipun setiap pelapor hasil dapat mengalami error, pelapor tersebut diisolasi satu sama lain (satu pelapor tidak melihat error dari pelapor lain). Error ini hanya memengaruhi pelaporan hasil reporter individual dan error dapat dilihat di log.