Bagi orang-orang yang bergelut dalam sebuah pengembangan software maka pasti sudah mengetahui tentang yang namanya SDLC, kepanjangan dari Software Development Life Cycle. Namun apakah sudah mengetahui atau pernah mendengar tentang STLC? STLC mungkin sudah tidak asing di telinga Quality Assurance karena memang STLC berfokus pada tahapan testing.
Software Testing Life Cycle (STLC) adalah serangkaian aktivitas sistematis dan terencana yang dilakukan selama melakukan software testing guna memastikan capaian kualitas software terpenuhi. STLC memiliki fase yang setiap fasenya memiliki tujuan dan hasil. Fase STLC mungkin akan memiliki banyak versi, karena menyesuaikan kebutuhan dari perusahaan. Namun, STLC versi apapun pasti memiliki dasar fase STCL yang sama.
Fase yang ada di STLC, yaitu:
Requirement Analysis
Mempelajari dan menganalisa kebutuhan dari perspektif pengujian untuk mengidentifikasi apakah kebutuhan dapat dilakukan testing atau tidak. Jika kebutuhan tidak dapat dilakukan testing, maka lakukan komunikasi ke tim agar dapat direncanakan strategi lain untuk mengurangi rabbit hole atau hal yang membuat stuck di akhir. Tim QA yang masih merasa belum paham akan kebutuhan testing juga dapat berkomunikasi aktif dengan stakeholder terkait (Business Analyst, Project Leader, Client dll) untuk dapat memahami kebutuhan secara detail. Cakupan testing juga dideklarasikan di fase ini.
Entry Criteria
- Dokumen requirements
- Arsitektur aplikasi
- Acceptence criteria
Activities
- Menyiapkan pertanyaan untuk dijawab oleh stakeholder
- Mengidentifikasi tipe testing yang perlu dilakukan (Functional, Security, Performance dll)
- Menjabarkan fokus dan prioritas testing
- Menyiapkan RTM (Requirements Traceability Matrix)
- Mengidentifikasi detail environment di mana testing akan dilakukan
- Melakukan pengecekan kelayakan automasi jika dibutuhkan dan menyiapkan laporan kelayakan automasi
Deliverables
- Daftar pertanyaan dan jawaban yang sudah terjawab
- Dokumen RTM (Requirements Traceability Matrix)
- Laporan kelayakan automasi
Test Planning
Mengidentifikasi aktifitas dan sumber data yang akan digunakan untuk membantu objective dalam testing. Pada fase ini akan ditentukan strategi testing dan juga melakukan estimasi terhadap upaya dan biaya yang akan digunakan, sehingga test planning sering disebut sebagai test strategy.
Entry Criteria
- Dokumen requirements
- Laporan ketersediaan automasi
- Dokumen RTM (Requirements Traceability Matrix)
Activities
- Menguji perkiraan usaha dan perencanaan sumber daya
- Memilih alat pendukung testing jika ada
- Menentukan peran dan kewajiban masing-masing
- Menentukan kriteria input, output, suspension, resumption
- Kebutuhan pelatihan (jika dibutuhkan)
Deliverables
- Dokumen test plan atau test strategy
- Dokumen perkiraan usaha testing
Test Case Development
Tim QA akan melakukan pembuatan test case secara rinci dan juga menyiapkan test data yang akan digunakaan pada testing nantinya. Setelah test case sudah selesai, maka akan dilakukan review oleh rekan lainnya atau lead test.
Entry Criteria
- Dokumen requirements
- Dokumen RTM (Requirements Traceability Matrix) dan test plan
- Laporan analisis automasi
Activities
- Menyiapkan dokumentasi test case
- Menyiapkan script automation test
- Melakukan review test case dan script test
- Menyiapkan kembali data yang akan digunakan untuk testing
Deliverables
- Dokumen test cases
- Test script
- Test data yang akan digunakan
Test Environment Setup
Fase ini adalah fase yang tidak bergantung dengan yang lainnya, sehingga dapat dikerjakan bersamaan dengan fase Test Case Development. Fase ini bisa jadi tidak dilakukan oleh tim QA, jika tim developer nantinya yang akan menyiapkan.
Entry Criteria
- Test plan dan test data
- Smoke test cases
- Dokumen desain dan arsitektur sistem
- Dokumen penyiapan environment
Activities
- Menganalisa perangkat lunak dan perangkat keras yang dibutuhkan
- Menyiapkan test environment
- Melakukan smoke testing
Deliverables
- Hasil dari smoke testing
- Environment siap untuk diinputkan dengan test data
Test Execution
Fase ini adalah fase puncaknya yaitu melakukan testing. Pada fase ini akan dilakukan testing berdasarkan test plan dan test case yang sudah disiapkan di fase sebelumnya. Tim QA akan melakukan testing dan menandai tiap case-nya apakah lulus atau gagal.
Entry Criteria
- Dokumen test plan atau test strategy
- Test script
- Test case dan test data
- Test environment siap digunakan
Activities
- Mengeksekusi test case sesuai test planning yang sudah dibuat sebelumnya
- Melakukan dokumentasi dan memberikan tanda pada cases yang berhasil dan gagal
- Menugaskan perbaikan defect kepada programmer
- Melakukan testing ulang untuk defect yang sudah diperbaiki
- Melacak defect untuk dapat ditutup
Deliverables
- Defect report
- Test cases yang sudah diperbarui dengan hasil test-nya
- Melengkapi dokumen RTM dengan status eksekusi
Test Closure
Semua anggota tim QA akan berkumpul bersama untuk melakukan diskusi dan melaporkan hasil pengujian yang sudah dilakukan. Pada diskusi dapat membahas terkait hambatan ketika testing, apa yang dapat ditingkatkan dan lain-lain. Untuk defect yang ditemukan juga dilakukan analisa sesuai dengan priority dan severity-nya.
Entry Criteria
- Semua test case sudah selesai dieksekusi
- Laporan eksekusi test case
- Laporan defect
Activities
- Mengevaluasi penyelesaian siklus berdasarkan waktu, test scope, biaya, perangkat lunak, kualitas, dan kepentingan tujuan bisnis.
- Menyiapkan laporan test closure dan metrik pengujian
- Dokumentasi lesson learn dari proyek tersebut
- Laporan kualitatif dan kuantitatif kualitas produk kepada konsumen
- Analisa hasil testing untuk mendistirbusikan defect berdasarkan priority dan severity (baca: Tipe Bug pada Software Testing)
Deliverables
- Laporan test closure
- Metriks pengujian