Siklus hidup pengujian yang dijalankan menggunakan Federasi Dagang terdiri dari empat tahap terpisah, yang dirancang berdasarkan antarmuka yang ditentukan secara formal.
Antarmuka yang ditentukan
- Build Provider : Menyediakan build untuk diuji, mendownload file yang sesuai jika perlu.
- Target Preparer : Mempersiapkan lingkungan pengujian, mungkin termasuk instalasi perangkat lunak dan konfigurasi perangkat.
- Tes : Menjalankan tes dan mengumpulkan hasil tes. Ini bisa berupa Tes JUnit apa pun, meskipun antarmuka IRemoteTest kami dirancang khusus untuk bekerja dengan baik di lingkungan Federasi Perdagangan.
- Test Invocation Listener (pelaporan hasil) : Mendengarkan hasil tes, biasanya dengan tujuan meneruskan hasil tes ke repositori atau menampilkannya ke Test Runner.
Entitas pengujian mendasar di TF adalah Konfigurasi (config). Konfigurasi adalah file XML yang mendeklarasikan komponen siklus hidup pengujian.
Pemisahan siklus hidup pengujian ini dimaksudkan agar dapat digunakan kembali. Dengan menggunakan desain ini, Pengembang dapat membuat Pengujian satu kali, dan kemudian Integrator dapat membuat Konfigurasi berbeda untuk menjalankan Pengujian tersebut di lingkungan berbeda. Misalnya, mereka dapat membuat Konfigurasi yang akan menjalankan pengujian pada mesin lokal dan membuang hasilnya ke stdout. Mereka kemudian dapat membuat Konfigurasi kedua yang akan menjalankan pengujian yang sama, namun menggunakan Test Invocation Listener yang berbeda untuk menyimpan hasil pengujian dalam database. Konfigurasi ketiga mungkin dirancang untuk menjalankan pengujian tersebut secara terus menerus dari lab pengujian di suatu tempat.
Perlu diperhatikan di sini bahwa Konfigurasi beserta argumen baris perintahnya (seperti yang disediakan oleh Test Runner) dikenal sebagai Command . Saat TF memasangkan Command dengan ITestDevice
dan menjalankannya, objek berikutnya dikenal sebagai Invocation . Singkatnya, Doa mencakup eksekusi pengujian TF yang lengkap, di seluruh siklus hidupnya.
Komponen konfigurasi tambahan
- Pemulihan Perangkat : mekanisme untuk memulihkan komunikasi perangkat jika hilang.
- Logger : mengumpulkan data logging yang diperdagangkan.
Keluaran panggung dan kesalahan
Setiap tahap pemanggilan dijalankan secara berurutan dan memiliki tujuan tertentu. Bagian ini menjelaskan keluaran dan kesalahan yang biasa terjadi pada setiap tahap.
Membangun penyedia
Tahap ini membuat dan mengeluarkan objek IBuildInfo
yang berisi semua referensi file yang diperlukan untuk menyiapkan dan menjalankan pengujian.
Kesalahan paling umum pada tahap ini adalah kegagalan mengunduh atau menemukan file yang diminta.
Kesalahan pada tahap ini mengakibatkan pelaporan kesalahan secara langsung, dan tidak ada pengujian yang dijalankan.
Persiapan sasaran
Tahap ini menyiapkan status yang diperlukan untuk target yang diuji. Tahap ini dapat mengubah perangkat atau pengaturan host sesuai kebutuhan untuk pemanggilan pengujian yang diberikan.
Kesalahan umum pada tahap ini biasanya melibatkan kegagalan mengatur perangkat ke keadaan tertentu (misalnya, gagal melakukan flashing) dan kegagalan menemukan file yang diperlukan untuk pengaturan.
Kesalahan pada tahap ini mengakibatkan pembersihan target berjalan, pelaporan kesalahan, dan tidak ada pengujian yang dijalankan.
Tes
Tahap ini menjalankan pengujian yang diminta pada target yang telah disiapkan sebelumnya, dan melaporkan seluruh hasil pelaksanaan pengujian.
Kesalahan umum pada tahap ini biasanya melibatkan tidak tersedianya target yang diuji atau beberapa kesalahan yang menyebabkan pelaksanaan pengujian sebagian. Kesalahan ini adalah masalah infrastruktur yang memengaruhi pelaksanaan pengujian itu sendiri dan bukan kegagalan satu kasus pengujian.
Kesalahan pada tahap ini mengakibatkan eksekusi pengujian terhenti, pembersihan target berjalan, melaporkan kesalahan, dan mendapatkan hasil parsial.
Pelaporan hasil
Tahap ini melaporkan hasil dan kesalahan ke layanan yang dikonfigurasi (misalnya server dan file lokal).
Meskipun setiap pelapor hasil dapat memiliki kesalahan, mereka terisolasi satu sama lain (satu pelapor tidak melihat kesalahan pelapor lainnya). Kesalahan ini hanya mempengaruhi hasil pelaporan masing-masing pelapor dan kesalahan dapat dilihat di log.