Ketika membuat solusi TI, kesalahan itu mahal, ini terutama terlihat dalam kedokteran, di mana kehidupan manusia tergantung pada kualitas perangkat lunak, atau di perbankan, di mana kerugian finansial yang besar mungkin terjadi. Otomatisasi uji memungkinkan Anda mengatur pemeriksaan kualitas produk secara konstan. Mari kita lihat dalam kasus apa dibutuhkan.
Beberapa perusahaan secara keliru percaya bahwa otomatisasi adalah pemborosan waktu dan uang, yang lain - bahwa ini adalah tren keren dan "pil" untuk semua penyakit. Pertimbangkan di mana jalan tengah dan apa gunanya otomatisasi.

Mengapa harus diuji?
Kesalahan sekecil apa pun dalam perangkat lunak mengancam biaya besar. Semakin baik proses pembangunan dibangun, semakin rendah risikonya. Namun, jika kita melihat fakta, kita melihat bahwa bahkan raksasa seperti Google, Microsoft atau bank terkemuka membuat kesalahan.
Misalnya, salah satu "kecelakaan" dunia keuangan yang terkenal terjadi di First National Bank of Chicago pada akhir 90-an: dalam semalam, rekening pelanggan tumbuh secara tidak masuk akal sebesar $ 900 juta. Kemudian wakil presiden senior bank, James Lancaster, mengakui bahwa itu adalah "kesalahan perangkat lunak di komputer" - yang, untungnya, tidak ada yang punya waktu untuk menggunakannya.
Kesalahan mahal terjadi di industri lain yang tampaknya tidak terkait langsung dengan TI. Contoh terkenal adalah kecelakaan pada peluncuran teknologi luar angkasa, khususnya, pada tahun 2017, Roscosmos
kehilangan satelit senilai 2,6 miliar rubel.
Ketika bekerja dengan solusi IT skala besar, misalnya, sistem perbankan jarak jauh (RBS), penting untuk terus menguji tidak hanya pengoperasian fungsi individu, tetapi juga interaksinya. Dalam kondisi tenggat waktu yang ketat, ketika bank terkemuka memperbarui aplikasi mereka setiap bulan, tidak mungkin untuk memeriksa semuanya secara manual - setidaknya tidak akan ada cukup waktu untuk ini.
Saat membuat produk IT untuk bisnis, dua pendekatan biasanya digabungkan:
- melakukan pemeriksaan secara manual dengan bantuan spesialis QA (Quality Assurance) ;
- menggabungkan pengujian manual dan otomatisasi kasus uji utama, dengan bantuan para ahli dari SDET (Software Development Engineer in Test) .
Pekerjaan spesialis SDET ada di perbatasan tiga area - development, QA dan DevOps, yang mencakup penulisan langsung tes otomatis dan tugas-tugas lainnya. Misalnya, SDET dapat mengkonfigurasi CI untuk secara otomatis mengirim dan menggunakan aplikasi, memelihara dokumentasi, dan mengatur proses. Namun, dalam artikel ini kami mempertimbangkan satu aspek - otomatisasi uji.
Apa yang memberi otomatisasi
Ini adalah salah satu arah yang cukup baru dalam pembangunan, dikelilingi oleh sejumlah besar mitos. Paling sering, bisnis beralih ke otomatisasi, meyakini bahwa:
- akan menyelesaikan semua masalah dalam merilis perangkat lunak berkualitas;
- akan memungkinkan untuk menolak pengujian manual;
- diperlukan hanya karena itu adalah "tren keren";
- mempercepat pelepasan rilis;
- akan meningkatkan jangkauan platform dan versi sistem operasi selama pengujian.
Jelas, tiga pernyataan pertama adalah terlalu kategorikal, dan karena itu, seperti yang sering terjadi, keliru: untuk memastikan kualitas produk TI, penting untuk mempertimbangkan kompleks dari banyak parameter, dan bukan hanya otomatisasi pengujian.
Pada gilirannya, dua pernyataan terakhir benar-benar benar: otomatisasi pengujian yang kompeten membantu mempercepat rilis dan meningkatkan cakupan kasing. Pada saat yang sama, jaminan kualitas manual dan otomasi, pada dasarnya, sama pentingnya dan digunakan dalam kombinasi. Selain itu, setiap proyek bersifat individual, dan terkadang otomasi tidak diperlukan.
Ketika otomatisasi diperlukan
- Aplikasi skala besar dengan banyak fungsi bisnis
- Kehidupan aplikasi yang signifikan (dari 1 tahun atau lebih)
- Implementasi CI / CD, rilis reguler + sejumlah kecil spesialis QA
Tugas Otomasi
Sebagai aturan, kami melibatkan pakar SDET untuk memecahkan masalah berikut:
- Otomatisasi pemeriksaan rutin dan sering, mengurangi beban pada spesialis QA.
- Memantau fungsi utama aplikasi dan melacak perubahan dalam produk.
- Kemampuan untuk menguji dengan sejumlah besar perangkat, versi peramban dan sistem operasi.
- Menguji kinerja aplikasi dalam kondisi kerja simultan dengan sejumlah besar data dan pengguna.
Hasil
Otomasi membantu membangun keseimbangan:
- memeriksa secara manual apa yang membutuhkan perhatian manusia (biasanya hingga 25% kasus);
- Otomatiskan kasus lain.
Pada saat yang sama, otomatisasi dalam jangka panjang mengurangi biaya pengujian dan risiko yang terkait dengan faktor manusia.
Selain itu, jika perlu, Anda dapat mempercepat rilis. Misalnya, jika Anda perlu memeriksa sekitar 400 kasus dalam sprint pengembangan, maka verifikasi manual akan memakan waktu hingga dua minggu, dan pengujian otomatis dapat dilakukan pada malam hari dan dianalisis dalam 4 jam.
Berkat otomatisasi, sebuah bisnis mendapat kesempatan kapan saja untuk memastikan bahwa fungsi utama sistem bekerja dengan benar dan untuk memeriksa kesalahan (dan jika ada, apa saja).
Contoh
Misalkan saat ini di bank seluler Anda harus melewati hingga 700 kasing, masing-masing 70 hingga 100 kali setahun. Kurang dari 25% kasus memerlukan verifikasi manual, sisanya 75% dapat diotomatisasi.
Waktu yang dihabiskan untuk verifikasi manual:- 30 jam
Waktu otomatisasi:Uji coba semalam membutuhkan 8 jam, tetapi tanpa campur tangan manusia, oleh karena itu tidak diperhitungkan.
Biaya waktu lainnya:
- 8 jam untuk verifikasi kasus secara manual yang tidak dapat dicakup oleh swa-uji (25%);
- 6 jam untuk menganalisis hasil, serta, jika perlu, untuk memeriksa kegagalan (hingga 10% dari tes).
Total: otomatisasi uji dapat
mengurangi waktu yang dihabiskan dari 30 hingga 14 jam .
Tentu saja, setiap kasing memiliki karakteristiknya sendiri, sehingga waktu yang dihabiskan dapat berbeda. Kami terus-menerus menganalisis berapa banyak waktu yang diperlukan untuk menulis tes otomatis, dukungan, analisis hasil.
Rata-rata, otomatisasi
menghemat 30 hingga 50% dari waktu setidaknya , memungkinkan Anda mengalokasikan lebih banyak waktu, misalnya, untuk mengembangkan dan meningkatkan produk.
Cara uji otomasi bekerja
Setiap perusahaan IT memiliki karakteristik sendiri dalam pengujian otomasi, seperti dalam proses kerja lainnya. Di SimbirSoft, kami mematuhi metode berikut yang membantu Anda dengan cepat membangun pekerjaan dengan proyek klien kami.
Proses pengujian dimulai dengan pengembangan strategi - rencana pengujian, dasar untuk menyusun setiap kasus uji. Untuk mengotomatisasi SDET, para insinyur memilih skenario utama yang sering digunakan dari pengguna yang bekerja dengan produk - skenario tersebut memberikan sekitar 80% dari nilai bisnis.
Setelah itu, kami membuat dasar untuk autotest lebih lanjut, mendirikan stand dan alur kerja untuk bekerja dengan mereka, CI untuk secara teratur menjalankan tes pada berbagai cabang. Kami memilih pendekatan mana dalam persiapan data uji yang akan kami gunakan (API, akses ke basis data, pembuatan data sintetis, penggunaan data dari penjualan). Insinyur SDET menulis tes yang mencakup skenario utama bekerja dengan produk, menganalisis hasil dan kebutuhan untuk otomatisasi lebih lanjut.
Kami mengembangkan tes otomatis menggunakan semua bahasa pemrograman paling populer - Java, Python, Kotlin, dll. Alat dan teknologi utama kami adalah Appium, TestNG | JUnit, RobotFramework | Pytest, Selenium | Senenide, Allure, TeamCity, Jenkins, JMeter.
Tes apa yang perlu diotomatisasi pada awalnya tergantung pada fitur-fitur produk tertentu. Sebagian besar perusahaan mengotomatisasi tes asap, uji regresi untuk memeriksa fungsi yang sudah jadi, dan kasus untuk memeriksa berbagai parameter (misalnya, data yang valid dan tidak valid selama pendaftaran).
Dalam praktik kami, kami membangun proses otomasi pengujian yang sudah di awal pengembangan, bersamaan dengan pengujian manual. Pekerjaan ini bukan satu kali, ini sedang berlangsung, terutama pada proyek-proyek besar, termasuk perbankan.
Untuk meringkas
Keseimbangan pengujian manual dan otomatis memungkinkan Anda untuk terus memantau kualitas produk TI. Beberapa proyek diperiksa secara manual, tugas-tugas lain dapat lebih berhasil diselesaikan dengan bantuan otomatisasi. Pengujian manual digunakan dalam kasus-kasus di mana orang tidak tergantikan, misalnya, jika Anda memerlukan lokalisasi, deskripsi kesalahan, pengujian kegunaan manual. Dalam proyek kecil, pengembang sering menulis tes.
Pengujian manual dalam hubungannya dengan otomatisasi dilakukan ketika membuat produk-produk IT besar, di mana beberapa tim bekerja (misalnya, dalam aplikasi perbankan), di mana terdapat algoritma dan logika bisnis yang kompleks. Metode ini membantu membangun proses pengujian produk dan mengurangi risiko kesalahan yang mahal, yang sangat penting saat bekerja dalam jadwal rilis yang ketat.
Terima kasih atas perhatian anda! Semoga artikel ini bermanfaat bagi Anda!