Siklus Hidup Tes TF

Siklus hidup pengujian yang dijalankan menggunakan Federasi Perdagangan terdiri dari empat tahap terpisah, dirancang di sekitar antarmuka yang ditentukan secara formal.

Antarmuka yang ditentukan

  • Build Provider : Menyediakan build untuk diuji, mengunduh file yang sesuai jika perlu.
  • Persiapan Target : Mempersiapkan lingkungan pengujian, mungkin termasuk instalasi perangkat lunak dan konfigurasi perangkat.
  • Test : Menjalankan tes dan mengumpulkan hasil tes. Ini mungkin 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 untuk 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 suatu pengujian.

Pemisahan siklus hidup pengujian ini dimaksudkan untuk memungkinkan penggunaan kembali. Dengan menggunakan desain ini, Pengembang dapat membuat Pengujian sekali, dan kemudian Integrator dapat membuat Konfigurasi yang berbeda untuk menjalankan Pengujian tersebut di lingkungan yang 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, tetapi menggunakan Pemroses Panggilan Uji yang berbeda untuk menyimpan hasil pengujian dalam database. Konfigurasi ketiga mungkin dirancang untuk menjalankan pengujian itu secara terus-menerus dari lab pengujian di suatu tempat.

Lebih mudah untuk dicatat di sini bahwa Konfigurasi bersama dengan argumen baris perintahnya (seperti yang disediakan oleh Test Runner) dikenal sebagai Command . Ketika TF memasangkan Command dengan ITestDevice dan mengeksekusinya, objek berikutnya dikenal sebagai Invocation . Singkatnya, Invocation mencakup eksekusi pengujian TF yang lengkap, di seluruh siklus hidupnya.

Komponen konfigurasi tambahan

  • Device Recovery : mekanisme untuk memulihkan komunikasi perangkat jika hilang.
  • Logger : mengumpulkan data logging yang diperdagangkan.

Output panggung dan kesalahan

Setiap tahap dari sebuah pemanggilan dieksekusi secara berurutan dan memiliki tujuan tertentu. Bagian ini menjelaskan keluaran dan kesalahan yang biasa terjadi dari setiap tahap.

Penyedia bangunan

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 menghasilkan 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 penyiapan host sesuai kebutuhan untuk pemanggilan pengujian yang diberikan.

Kesalahan umum pada tahap ini biasanya melibatkan kegagalan untuk mengatur perangkat ke keadaan tertentu (misalnya, gagal berkedip) dan kegagalan untuk 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 tes yang diminta pada target yang telah disiapkan sebelumnya, dan melaporkan semua hasil eksekusi tes.

Kesalahan umum pada tahap ini biasanya melibatkan target yang sedang diuji yang tidak tersedia atau beberapa kesalahan yang menyebabkan sebagian pelaksanaan pengujian. Kesalahan ini adalah masalah infrastruktur yang mempengaruhi pelaksanaan pengujian itu sendiri sebagai lawan dari kegagalan kasus pengujian tunggal.

Kesalahan pada tahap ini mengakibatkan eksekusi pengujian berhenti, pembersihan target berjalan, melaporkan kesalahan, dan mendapatkan hasil sebagian.

Pelaporan hasil

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

Meskipun reporter hasil individu dapat memiliki kesalahan, mereka terisolasi satu sama lain (satu reporter tidak melihat kesalahan dari reporter lainnya). Kesalahan ini hanya mempengaruhi pelaporan hasil reporter individu dan kesalahan dapat dilihat di log.