Functional Test
Salah satu tipe dari software test untuk menguji suatu aplikasi dari segi fungsional. Di dalam functional test sebagian besar kita menguji API, Database, dan User Interface.
Step Functional Test
- Create test data (input values)
Sebelum menyiapkan data untuk test, alangkah baiknya memahami requirement, selanjutnya membuat dokumen skenario test atau yang sering disebut test cases. Menyiapkan test data yang valid, tidak valid, short text, long text, format dokumen valid, dan format dokumen tidak valid. Dengan tujuan untuk mendapatkan warning dari sistem, selain itu agar user input data valid saja.
2. Execute test cases
Melakukan pengujian berdasarkan test cases yang terdiri dari skenario test positif dan skenario test negatif. Bisa juga ditambahkan dengan explorary test yaitu test diluar lingkup test cases.
3. Compare actual and expected output
Setelah melakukan pengujian, kita mendapatkan hasil test yang biasa disebut actual output. Sedangkan expected output adalah output yang diharapkan berdasarkan test cases. Membandingkan actual dan expected output, jika keduanya sudah sama, pada test cases bisa di tandai dengan status passed. Dan jika sebaliknya, di beri status failed.
Principal objectives of functional testing
- Mainline function
Fungsi utama dari suatu aplikasi yang biasa disebut happy path atau skenario test positif. Tujuan utama dari functional test adalah memastikan suatu aplikasi berjalan sesuai dengan requirement. Tetapi alangkah baiknya jika memastikan skenario test negatif, edge case, bahkan out of scope.
2. Basic usability
Suatu aplikasi dapat di gunakan dan di mengerti dengan baik oleh user. Terkadang aplikasi terdapat product tour dan guide book cara menggunakan aplikasi. Selain itu, juga terdapat live chat dan contact center agar user dapat menghubungi customer center jika terdapat kendala dalam menggunakan aplikasi.
3. Basic accessability
User dapat mengakses suatu aplikasi pada berbagai operation system, browser, dan device. di beberapa studi kasus suatu aplikasi hanya bisa digunakan pada beberapa operation system, browser, dan device. alangkah baiknya jika tim pengembang aplikasi memberi info keterbatasan aplikasi tersebut, dan lebih baik lagi jika tidak menganjurkan user untuk update versi aplikasi tersebut, kecuali jika ada big changes.
4. Error conditions
Kondisi error selalu muncul di berbagai skenario. Dengan adanya functional test, diharapkan sebuah tim mampu menampilkan respon yang dapat di mengerti user. Selain itu juga di harapkan meminimalisir terjadinya error yang ditemukan oleh user.
Type of functional test
- Unit test
Dilakukan pertama kali oleh developer sebelum deliver ke QA. Jenis pengujian perangkat lunak, di mana unit individu dan komponen perangkat lunak diuji. Pengujian unit memastikan setiap modul bekerja dengan benar. Contohnya menguji setiap unit dari fitur login pada aplikasi mobile cookpedia.
2. Integration Test
Dilakukan oleh developer setelah unit test dan sebelum deliver ke QA. Pengujian integrasi menggabungkan unit individu dan diuji sebagai kelompok. Pengujian ini bertujuan untuk mengungkap kesalahan dalam interaksi antara unit-unit yang terintegrasi. Contohnya menguji unit dari fitur login dan fitur signup pada aplikasi mobile cookpedia.
3. Smoke test
Dilakukan setelah rilis aplikasi, bertujuan untuk memastikan fungsi utama aplikasi berjalan dengan baik dan stabil. Contohnya menguji aplikasi mobile cookpedia setelah rilis versi 1.12 untuk memastikan graphic user interface berjalan dengan baik dan stabil di ios dan andriod.
4. Sanity test
Dilakukan setelah smoke test, bertujuan untuk memastikan fungsi utama aplikasi berjalan dengan baik setelah adanya minor changes dari aplikasi. Contohnya menguji aplikasi web cookpedia setelah rilis versi 3.12.8, baik dari minor changes dan fungsi utama seperti login masih dapat berjalan dengan baik.
5. Regression Test
Dilakukan setelah sanity test, berkonsentrasi pada semua bagian berfungsi atau tidak. Bertujuan untuk mengontrol dan mengonfirmasi bahwa perubahan kode baru tidak memengaruhi fitur yang ada. memastikan bahwa kode lama masih berfungsi setelah perubahan kode terbaru selesai. Contohnya setiap quarter dilakukan regression test pada aplikasi mobile dan web Cookpedia, agar memastikan semua fungsi masih berjalan dengan baik.
6. Usability Test
Dalam lingkungan seperti production, produk di expose ke actual user dan diuji. Kenyamanan pengguna diperoleh, dan feedback diterima.
Kelebihan dan kekurangan functional test
- Kelebihan functional test
Kelebihan dari functional test adalah:
- menghasilkan produk yang minim bug.
- memastikan bahwa semua persyaratan terpenuhi.
- memastikan berfungsinya semua fungsi aplikasi/perangkat lunak/produk.
- memastikan bahwa perangkat lunak / produk berfungsi seperti yang diharapkan.
- meningkatkan kualitas produk.
2. Kekurangan functional test
Kekurangan dari functional test adalah:
- dapat melewatkan kesalahan kritis dan logis dalam sistem, karena ada yang miss dalam requirement dan development.
- bukan jaminan perangkat lunak untuk go live, sehingga dibutuhkan non functional test.
- kemungkinan melakukan pengujian berlebihan tinggi, karena melakukan scenario test yang sama berulang kali.
Referensi
https://www.qatouch.com/blog/functional-testing-everything-you-need-to-know/
https://www.softwaretestinghelp.com/guide-to-functional-testing/