Quality assurance hanya melakukan testing atau pengujian saja di dalam software development itu adalah anggapan yang keliru, karena kontribusi quality assurance memiliki cakupan yang luas di dalam software development, yaitu dari awal sampai dengan akhir dari SDLC. Hal tersebutlah yang menjadi dasar perbedaan antara quality assurance dan software tester. Untuk lebih jelas dan detail, silahkan menuju ke link ini. Hal tersebut juga membuat quality assurance diwajibkan mempunyai kemampuan manajemen dan teknis yang baik, untuk lebih lengkap ada di link ini.
Pernyataan diatas menjelaskan bahwa quality assurance merupakan bagian yang tak terpisahkan dari software development life cycle (SDLC). Penyebabnya dikarenakan di dalam quality assurance memiliki life cycle-nya sendiri dan di dalam life cycle tersebut memiliki aktivitas-aktivitas yang berhubungan dengan aktivitas di dalam software development life cycle. Oleh karena itu, tulisan ini akan membahas secara jelas dan utuh life cycle yang dimiliki oleh tim quality assurance.
Merujuk kepada tulisan sebelumnya yang berjudul Software Tester ≠ Quality Assurance, dijelaskan bahwa salah satu fungsi dari quality assurance yaitu meningkatkan kualitas produk (software) dengan cara melakukan pemeriksaan atau pengujian terhadap produk tersebut. Untuk melakukan pengujian terhadap produk (software), tentunya setiap perusahaan atau organisasi memiliki standar dan prosedurnya masing-masing. Standar prosedur atau langkah-langkah tersebut dinamakan dengan software testing life cycle.
Mengutip dari www.softwaretestingclass.com, software testing life cycle atau yang disingkat dengan STLC adalah proses uji yang dieksekusi secara sistematis dan terencana.
Lalu, apa bedanya dengan SDLC (software development life cycle)?
Disimpulkan dari www.tutorialspoint.com, STLC adalah bagian yang tak terpisahkan dari SDLC karena setiap tahap SDLC adalah tahap STLC juga. Tetapi STLC hanya terbatas pada tahap pengujian dan hal-hal yang sejenisnya sedangkan SDLC lebih luas dan umum terhadap tahap pengembangan dan pembuatan produk (software).
Jadi, kegiatan apa saja yang dilakukan oleh tim quality assurance di dalam software testing life cycle (STLC)?
Dikutip dari artoftesting.com tentang perbandingan antara SDLC dan STLC dan www.softwaretestingclass.com tentang penjelasan STLC, dapat disimpulkan proses STLC dan kegiatan tim QA di dalamnya adalah sebagai berikut.
1. Requirement Analysis
Requirement analysis adalah tahap pertama dalam software testing life cycle atau STLC. Requirement software yang sudah ada dari stakeholder (system analyst, product manager, etc) kemudian dianalisa oleh tim QA untuk mengetahui detail software, module, fitur dan fungsi yang akan dibangun, review dan memvalidasi jika masih ada kekurangan dan atau untuk melengkapi kejelasan requirement tersebut, menganalisa apa saja yang dapat diuji (testable) secara manual dan automated serta menganalisa cakupan fungsi atau fitur mana saja yang akan diuji secara functional dan non-functional.
2. Planning
Tahap planning adalah tahap kedua dari proses STLC yang juga dapat disebut dengan test planning atau test strategy. Disini tim QA mulai melakukan segala perencanaan terkait pengujian software berdasarkan hasil analisis dari tahap pertama (requirement analysis). Pada tahap ini akan menghasilkan test specification yang berisi jenis atau teknik pengujian yang akan dilakukan, tools dan environment yang akan digunakan, estimasi cost (waktu, sumber daya, dll), prosedur dan proses uji, hal-hal yang dapat di-deliver setelah melakukan pengujian serta pembagian tanggung jawab kepada setiap subdivisi dari divisi atau tim QA itu sendiri.
3. Development
Jika requirement dan specification sudah tersedia, maka tahap selanjutnya adalah development. Tahap ini berisi hal-hal yang akan menjadi acuan dalam pengujian. Hal-hal tersebut yaitu membuat test case, membuat test data, membuat script automation test berdasarkan test case, dan mulai melakukan smoke test untuk memastikan environment test apakah sudah benar-benar siap.
4. Test Execution
Setelah software siap uji kemudian semua persiapan untuk pengujian juga siap, maka tahap selanjutnya dalam proses STLC adalah test execution atau eksekusi pengujian. Pada tahap ini, dilakukan pengujian berdasarkan test plan yang sudah direncanakan dan test case yang sudah dibuat dan kembangkan pada tahap sebelumnya. Jika fitur dan atau fungsi berjalan sesuai dengan software requirement dan test requirement, maka status fitur atau fungsi tersebut adalah pass atau berhasil, kemudian siap untuk masuk ke tahap deployment. Sebaliknya, jika fungsi tidak berjalan sesuai dengan requirement, maka tergantung dari kategori error yang terjadi. Error-error yang ditemukan tersebut dimasukkan ke dalam report tim QA yang akan disampaikan ke tim developer untuk diperbaiki, dan kembali diuji oleh tim QA. Pada tahap ini juga dilakukan sanity testing dan regression testing ketika akan melakukan deployment program baru atau program error yang sudah diperbaiki.
5. Maintenance
Dari semua proses yang sudah dilewati pada tahap-tahap sebelumnya, maka tahap terakhir dari proses STLC adalah maintenance. Tahap ini dilakukan ketika software atau program siap atau sudah ter-deliver sesuai dengan requirement software yang ditentukan sebelumnya. Hal-hal yang berkaitan dengan tahap maintenance STLC adalah evaluasi semua proses uji mulai dari analisis requirement uji, perencanaan, evaluasi test case, optimisasi automation test script, sampai dengan tahap reporting hasil uji. Tahap ini bertujuan agar pada tahap uji berikutnya selalu lebih baik, efektif dan efisien dari segi apapun.
Proses STLC yang sudah dijelaskan diatas berlaku pada produk (software, module, fitur atau fungsi) baru yang akan dibangun. Sedangkan untuk produk (software) yang sudah ada atau sedang digunakan user, dimana produk tersebut akan selalu berkembang dan bertambah dari segi fitur dan sebagainya, maka proses STLC-nya akan disesuaikan sesuai kebutuhan. Misalnya dilakukan regression test setiap hari dari automation test yang ada. Jika terjadi error pada saat daily test, maka dilakukan proses test execution dan maintenance seperti yang sudah dijelaskan diatas.
Dari proses STLC tersebut, maka dapat disimpulkan bahwa QA tidak hanya melakukan testing saja terhadap produk (software).
Tetapi bagaimana QA dapat memastikan produk (software) berjalan sesuai dengan kebutuhan yang ada sehingga produk yang digunakan dapat memiliki kualitas yang maksimal.
Sekian dan terima kasih, semoga bermanfaat.
Jika pembaca sependapat atau ada pendapat lain, penulis membuka ruang yang sangat lebar untuk berdiskusi terkait tulisan ini.
Referensi
- Software Testing Life Cycle (STLC) — https://www.softwaretestingclass.com/software-testing-life-cycle-stlc/
- Comparison STLC and SDLC — https://www.tutorialspoint.com/stlc/stlc_sdlc_comparison.htm
- SDLC vs STLC — http://artoftesting.com/manualTesting/difference-between-sdlc-and-stlc.html

