Apa itu pengujian ujung ke ujung (E2E)?

Tiga rekan kerja duduk di meja mengadakan pertemuan dengan komputer di sekitar

Penyusun

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Apa yang dimaksud dengan pengujian end-to-end?

Pengujian end-to-end (E2E) adalah metodologi pengujian perangkat lunak yang memvalidasi seluruh alur kerja aplikasi dari awal hingga akhir.

Pengujian E2E menegaskan bahwa komponen terintegrasi (seperti front end, back end, database, dan layanan pihak ketiga) bekerja dengan lancar bersama. Ini juga berusaha untuk menggabungkan skenario pengguna dunia nyata.

Saat ini, terdapat berbagai jenis pengujian perangkat lunak yang tersedia secara lengkap. Anda dapat menguji area tertentu dari keseluruhan aplikasi, dengan memfokuskan pada aspek tertentu yang menarik, bahkan hingga pengujian unit pada tingkat penambahan terkecilnya. Mungkin Anda ingin menguji seberapa baik perangkat lunak menjalankan berbagai fungsi spesifik atau bagaimana komponennya semua saling cocok. Dalam kasus ini, sebaiknya Anda Jelajahi functional testing atau integration testing.

Tapi katakanlah tujuan Anda adalah mendapatkan gambaran paling lengkap tentang bagaimana aplikasi perangkat lunak beroperasi. Anda ingin melihat aplikasi beraksi—dari awal hingga selesai—dan melihat seberapa efisien aplikasi menangani subsistem dan dependensi terkait.

Di luar langkah-langkah itu, misalkan Anda juga ingin mendapatkan gambaran umum tentang seberapa baik antarmuka pengguna (UI) bekerja. Jadi, pendekatan apa pun yang Anda pilih perlu mengatasi kinerja aplikasi dari perspektif pengguna.

Pengujian E2E menyediakan jenis kerangka pengujian komprehensif yang menawarkan tampilan awal hingga akhir tentang perilaku aplikasi dan sarana untuk mengevaluasi kualitas pengalaman pengguna (UX).

Karena pengujian E2E cukup ambisius untuk mempertaruhkan seluruh siklus pengembangan aplikasi, tidak mengherankan untuk menemukan bahwa pengujian E2E membutuhkan lebih banyak komitmen, sumber daya, dan waktu.

Pengujian E2E berbeda secara signifikan dari strategi pengujian “kotak hitam”, di mana operasi disederhanakan menjadi penilaian “lulus/gagal”. Strategi ini berarti bahwa kami hanya mencari tahu apakah aplikasi berfungsi sebagaimana mestinya. Untuk alasan ini, E2E bukanlah pilihan ideal untuk setiap tujuan. Ini biasanya merupakan proses pengujian yang memakan waktu yang paling baik digunakan dalam situasi ketika penguji benar-benar memerlukan evaluasi setiap tahap kinerja aplikasi.

Berita teknologi terbaru, didukung oleh insight dari pakar

Tetap terinformasi tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan di luarnya dengan buletin Think. Lihat Pernyataan Privasi IBM®.

Terima kasih! Anda telah berlangganan.

Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM® kami untuk informasi lebih lanjut.

Tujuh langkah pengujian E2E

Proses pengujian E2E didasarkan pada langkah-langkah ini:

1. Perencanaan dan manajemen pengujian

Prosesnya dimulai dengan penguji yang mencurahkan beberapa pemikiran tentang bagaimana aplikasi akan dioperasikan oleh pengguna nyata. Bagian dari tahap ini adalah mempertimbangkan interaksi pengguna aplikasi yang paling penting, dan bagaimana alur kerja akan dialihkan dalam aplikasi.

Skenario pengujian yang berbeda harus mencerminkan serangkaian skenario dunia nyata dan perjalanan pengguna yang masuk akal, dan penguji harus mendokumentasikan skenario ini dan memetakan berbagai langkah yang terlibat dalam setiap skenario.

Penguji juga memerlukan sistem manajemen tes sehingga kasus uji dapat disimpan dengan cara yang terorganisir dan mudah diakses. Test suite memenuhi fungsi ini, mengelompokkan kasus uji sesuai dengan perjalanan pengguna, fitur tertentu atau modul dan komponen.

2. Penyiapan lingkungan pengujian

Tahap ini menyangkut lingkungan pengujian, dan ini adalah langkah lain yang membutuhkan beberapa premeditasi. Idealnya, penguji harus mengembangkan lingkungan penahapan yang sangat menyerupai lingkungan produksi.

Penguji mengisi lingkungan penahapan ini dengan komponen individu yang biasanya akan diintegrasikan ke dalam proses pengembangan perangkat lunak, seperti antarmuka pemrograman aplikasi (API), database, dan komponen lain yang diperlukan. Dan, jika data kinerja nyata tidak dapat diakses, penguji mungkin memilih untuk menggunakan data sintetis sebagai gantinya.

3. Pemilihan alat pengujian

Aspek selanjutnya dari merancang tes E2E adalah memilih alat pengujian yang tepat, khususnya kerangka kerja dan alat otomatisasi yang diperlukan. Alat bantu otomatisasi terbukti penting untuk menjalankan pengujian E2E karena alat bantu ini merampingkan proses pengujian dan menjalankan pengujian dengan lebih cepat. Ketika penguji mengevaluasi seluruh kinerja aplikasi, penghematan waktu tersebut membantu efisiensi.

Persisnya alat yang digunakan penguji bergantung pada jenis aplikasi. Penguji yang melengkapi aplikasi web biasanya memilih alat seperti Cypress atau Selenium. Penguji yang bekerja dengan aplikasi mobile memilih alat seperti Appium. 

4. Pembuatan dan pelaksanaan pengujian

Kami telah mendekati tahap di mana penguji merumuskan skrip pengujian yang menguraikan skenario penggunaan yang berbeda karena berkaitan dengan semua komponen terkait, seperti front end, back end, database, dan API.

Saat pengujian E2E berjalan, penguji mengevaluasi perilaku aplikasi seiring berjalannya alur kerja, memeriksa untuk memastikan integritas data terjaga selama pelaksanaan pengujian. Jika penguji memilih untuk tidak menggunakan skrip pengujian, mereka perlu melakukan pengujian manual untuk skenario pengujian sebagai gantinya.

5. Validasi hasil

Metode pengujian hanya berguna sesuai dengan apa yang mereka ungkapkan, dan selama tahap ini, inilah saatnya untuk secara hati-hati mengevaluasi data pengujian yang telah dihasilkan oleh pengujian. Penguji membandingkan hasil tes dan metrik terkait dengan hasil yang diharapkan untuk melihat apa yang dapat dipelajari dari cakupan pengujian dan kekurangan atau kesalahan apa yang saat ini masih ada dalam kode.

6. Resolusi cacat

Penguji sekarang mulai bekerja memperbaiki masalah apa pun yang ditemukan dengan pengujian. Penguji mempelajari pesan kesalahan dan log kinerja untuk melihat di mana kegagalan berakar. Ketika penguji berhasil men-debug masalah aplikasi, pengujian dijalankan kembali untuk melihat apakah masalah telah diperbaiki dan kinerja telah dioptimalkan melalui proses pengujian.

Tahap ini adalah di mana penguji menjalankan fungsi jaminan kualitas normal (QA), dengan tujuan membangun kualitas data yang mulus.

7. Otomatisasi

Langkah terakhir pengujian E2E melibatkan memanfaatkan kekuatan otomatisasi untuk melihat bahwa tes otomatis terintegrasi dengan benar sebagai aktivitas yang terjadi secara teratur. Itu berarti menambahkan otomatisasi pengujian dari alat seperti kerangka kerja sumber terbuka Playwright ke dalam pipa integrasi dan pengiriman berkelanjutan (CI/CD) sehingga pengujian yang diperlukan dijalankan secara teratur dan rutin.

Penguji yang menggunakan pipeline CI/CD kemudian dapat deteksi masalah kinerja lebih awal dalam proses pengembangan perangkat lunak, ketika mereka dapat menguranginya dengan cepat dan mudah.

Pengembangan Aplikasi

Bergabunglah: Pengembangan aplikasi Enterprise di cloud

Dalam video ini, Dr. Peter Haumer membahas seperti apa pengembangan aplikasi perusahaan modern saat ini di hybrid cloud dengan menunjukkan berbagai komponen dan praktiknya, termasuk IBM Z Open Editor, IBM Wazi, dan Zowe. 

Praktik terbaik pengujian E2E

Ingin menyempurnakan praktik pengujian menyeluruh Anda? Pertimbangkan tips ini.

Urutkan alur kerja penting

Perjalanan pengguna sering kali berbeda secara signifikan, dan meskipun penting untuk menyertakan sebanyak mungkin perjalanan pengguna dalam pengujian Anda, Anda mungkin perlu memprioritaskan pengujian Anda. Pendekatan ini harus berkonsentrasi pada pengujian terlebih dahulu perjalanan pengguna Anda yang paling penting.

Bagaimana Anda mendefinisikan “penting” akan sedikit berbeda. Namun, secara umum, yang kita bicarakan di sini adalah pengujian yang dilakukan dengan frekuensi reguler karena kepentingannya yang tetap dan berkelanjutan untuk sebuah organisasi-seperti login situs, misalnya.

Bagian lain dari langkah ini adalah memecah alur kerja menjadi langkah-langkah yang dapat dikelola untuk pengujian yang lebih mudah. 

Pilih selektor yang stabil

Selektor adalah pola yang memanggil elemen reaktif dalam Model Objek Dokumen (DOM) dari halaman web. Selektor berfungsi sebagai alamat yang membantu kerangka kerja pengujian dalam menemukan elemen layar seperti bidang input, elemen teks, dan tombol.

Demikian pula, yang terbaik adalah menggunakan atribut “data-*” atau pengidentifikasi stabil lainnya. Selektor rapuh seperti nama kelas harus dihindari. Selanjutnya, struktur DOM dapat melalui iterasi yang berbeda, jadi mungkin sebaiknya digunakan dengan hati-hati. 

Memastikan independensi pengujian

Apa yang masuk ke dalam membuat tes yang baik? Sukses dapat mengambil beberapa bentuk, tetapi contoh pengujian terbaik biasanya berbagi beberapa atribut. Sebagai permulaan, penguji harus dapat memanggil tes yang sama kapan pun diperlukan, sehingga dianggap penting untuk memastikan bahwa tes dapat diulang.

Demikian pula, pengujian harus dapat berjalan bebas dan tidak terbebani oleh pengaruh eksternal, seperti ketersediaan pihak ketiga dan masalah waktu jaringan. Masalah ini dapat menghasilkan hasil yang tidak dapat diandalkan. 

Membuat pengujian dapat dikelola

Tanpa manajemen yang efektif untuk mengendalikan jangkauan ruang lingkup, mudah bagi tes E2E untuk menjadi terlalu besar. Ketika itu terjadi, tes bisa macet dan sulit dijalankan. Jadi, kinerja pengujian menderita karenanya.

Itu sebabnya, jika memungkinkan, masuk akal untuk menurunkan beberapa tugas pemrosesan terberat. Utamanya, ini berarti aktivitas verifikasi logika, yang dapat dilakukan oleh penguji sebagai bagian dari pengujian unit dan integration testing. Metode ini memungkinkan pengujian E2E tetap dikhususkan untuk memvalidasi tren perilaku pengguna dan menyinkronkan sistem perangkat lunak.

Memberdayakan otomatisasi pengujian

Mungkin satu-satunya hal terbaik yang dapat dilakukan penguji untuk mendorong pengujian yang efisien dan komprehensif adalah melepaskan kekuatan pemrosesan yang luas yang diwakili oleh otomatisasi pengujian. Itulah cara utama untuk memastikan bahwa pengujian terjadi dengan frekuensi yang tepat.

Ini juga merupakan cara utama untuk membatasi adanya kesalahan manusia yang sedang berlangsung dalam pengujian, selain mengotomatiskan pekerjaan pengujian yang berulang-ulang. Saat bekerja dengan aplikasi lintas-browser dan aplikasi mobile, banyak penguji memilih layanan pengujian berbasis cloud.

Membangun lingkungan pengujian

Menciptakan dan memelihara lingkungan pengujian adalah bagian penting dari pengujian sistem. Penguji harus mengoptimalkan lingkungan pengujian dan membuatnya setangkas mungkin untuk memungkinkan pengaturan cepat dan pengujian langsung.

Juga sangat penting bahwa lingkungan pengujian menyediakan isolasi yang dalam untuk melindungi hasil pengujian dari gangguan yang tidak semestinya dari sumber luar.

Membina pendekatan tim

Pengujian E2E bekerja paling baik ketika semua pihak yang berafiliasi berada di dalamnya. Begitulah cara penguji dapat menggunakan hasil pengujian berkualitas tinggi yang terbukti sangat berharga selama revisi kode. Secara khusus, tim DevOps dan tim QA perlu menjaga komunikasi dan kolaborasi yang erat untuk membantu memastikan kualitas perangkat lunak yang optimal.

Penting juga untuk mengedukasi tim QA agar mereka memiliki pemahaman yang jelas tentang persyaratan bisnis organisasi dan tidak membahayakannya secara tidak sengaja saat melakukan revisi.

Terakhir, peringatkan semua pemangku kepentingan terkait tentang perkembangan proyek.

Dedikasikan waktu untuk pengujian API

API sangat penting untuk menjalankan aplikasi karena memungkinkan berbagai komponen yang terlibat dalam aplikasi untuk berkomunikasi satu sama lain.

Pengujian API berfokus pada fungsionalitas API dan dapat menyingkirkan masalah berbasis logika sebelum penguji mengevaluasi fungsionalitas UI.

Menerapkan beberapa eksekusi pengujian

Apabila Anda menjalankan beberapa tes, Anda harus memanfaatkan kemampuan sistem Anda untuk melakukan banyak tes dengan menjalankan tes secara paralel. Metode ini terutama berlaku untuk konfigurasi pengujian berbasis cloud, tetapi ini adalah panduan yang baik secara keseluruhan.

Ketika Anda menjalankan tes secara paralel, Anda mengurangi jumlah waktu yang diperlukan untuk eksekusi tes, ditambah lagi Anda memungkinkan masukan yang lebih cepat dari tes tersebut.

Meninjau kembali dan merevisi tes sesuai kebutuhan

Seperti yang kita sekarang terus-menerus diingatkan, sedikit di dunia komputer yang tetap sama untuk waktu yang lama. Berbagai hal berubah dan situasi berkembang, begitu juga aplikasi. Karena perubahan konstan ini, pekerjaan penguji tidak pernah sepenuhnya selesai.

Sebaiknya tinjau kembali kasus pengujian E2E Anda secara berkala dan lihat apakah ada yang berubah yang dapat berdampak negatif pada kinerja analitiknya. 

AI bertemu E2E

Kecerdasan buatan (AI) menyegarkan dan merevolusi hampir semua aspek komputasi. Untuk pengujian E2E, manfaat utama AI kurang lebih seperti keuntungan yang diperkenalkan AI pada bentuk pengujian perangkat lunak lainnya. Pada dasarnya, AI tersebut membuat pengujian E2E berlangsung lebih cepat, mendorong proses menjadi lebih efisien, dan menjaga aplikasi lebih terlindungi terhadap kesalahan.

Di luar aspek-aspek tersebut, AI membantu proses pengujian E2E dengan menghasilkan kasus pengujian berdasarkan perilaku aplikasi dan alur pengguna. Pendekatan ini mencakup pengujian penyembuhan mandiri yang dapat memperbaiki diri berdasarkan pengenalan sistem perubahan UI.

AI dapat memantau tes dalam aplikasi yang berkembang dan menyesuaikan tes tersebut berdasarkan perubahan penting yang dirasakan. Dan ketika tiba waktunya untuk menjalankan tes tersebut, AI dapat melakukannya dengan kecepatan super cepat. Selain itu, dapat mengidentifikasi area yang mungkin memerlukan pengujian lanjutan tambahan.

Untuk organisasi yang ingin menghindari biaya besar infrastruktur lokal, ada pengujian yang dipenuhi AI yang dapat dijalankan di cloud. Untuk perusahaan yang bergerak di bidang penerbitan perangkat lunak, AI dapat membantu mereka menjalankan pengujian perangkat lunak yang dibutuhkan dengan lebih cepat, sehingga memungkinkan rilis produk yang lebih cepat.

Terakhir, berbeda dengan anggapan umum tentang AI yang "mengambil alih" aktivitas bisnis apa pun, AI mempermudah pengguna nonteknis untuk terlibat dalam proses pengujian. Hal ini membawa lebih banyak orang ke dalam proses melalui alat didukung AI yang membutuhkan lebih sedikit pengetahuan yang diasumsikan dari pihak penguji.

Solusi terkait
IBM Enterprise Application Service for Java

Layanan penyewa tunggal yang dikelola sepenuhnya untuk mengembangkan dan menyediakan aplikasi Java.

Jelajahi Aplikasi Java
Solusi DevOps

Gunakan perangkat lunak dan alat bantu DevOps untuk membangun, menerapkan, dan mengelola aplikasi cloud native di berbagai perangkat dan lingkungan.

Jelajahi solusi DevOps
Layanan Pengembangan Aplikasi Perusahaan

Pengembangan aplikasi cloud berarti membangun sekali, mengulangi dengan cepat, dan menerapkan di mana saja.

Layanan pengembangan aplikasi
Ambil langkah selanjutnya

Layanan Konsultasi Pengembangan Aplikasi IBM Cloud menawarkan panduan pakar dan solusi inovatif untuk menyederhanakan strategi cloud Anda. Bermitralah dengan para pakar cloud dan pengembangan IBM untuk memodernisasi, menskalakan, dan mempercepat aplikasi Anda, sehingga memberikan hasil yang transformatif bagi bisnis Anda.

Jelajahi layanan pengembangan aplikasi Mulai membangun dengan IBM cloud secara gratis