Menjadi Software Tester, Kenali Dulu Perannya !
Software tester atau penguji perangkat lunak sebenarnya cukup jelas dari namanya. Penguji (tester) yang menguji bagaimana suatu perangkat lunak (software) bekerja sesuai dengan fungsinya dan sesuai keinginan dari pengembang (developer) maupun owner dari aplikasi itu sendiri. Software Tester bekerja dengan cara yang terbilang berbeda dengan developer software itu sendiri namun memiliki satu tujuan yang sama, yaitu aplikasi yang minim akan adanya bugs atau error. Satu sisi developer menginginkan aplikasi cepat rilis dan dilain sisi software tester ingin menemukan bugs atau error sebelum aplikasi rilis agar pengguna software sendiri lebih nyaman dan aman ketika memakai aplikasinya.
Apa saja yang dipakai Software Tester Dalam Bekerja ?
Sebelum bekerja menguji aplikasi itu sendiri, seorang tester akan mengacu pada keinginan owner dan developer. Keingina dua belah pihak ini akan diwujudukan dalam dokumen seperti SAD dan SRS. Hal ini dimaksudkan agar tester mengetahui apa yang ingin dan yang tidak ingin dicapai saat aplikasi rilis dan dikonsumsi publik, seperti bugs dan error tadi.
SAD ( Software Architecture Document )
SAD merupakan gambaran bagaimana aplikasi terbentuk menggunakan arsitektur tertentu seperti overview software, references, architectural representation (screen map, CS Management, Flow chart, database model, sequence diagram, dan class diagram), architectural goals dan constraints, use-case view, logical view, process view, deployment view serta size and performance.
SRS ( Software Requirement Specification )
SRS sendiri lebih umum daripada SRS, karena menurut saya SRS mencakup spesifikasi aplikasi yang diinginkan oleh owner/user yang ditujukan khusus terhadap bagian aplikasi tertentu, seperti use case description, level, included form, extend, primary actor, precondition, scope dan yang lain.
Aplikasi dan Lingkungan Kerja dimana Aplikasi Berjalan
Pengujian aplikasi berdasarkan platform yang diminta, semisal aplikasi berbasis LINUX maka environment yang digunakan seperti OS UBUNTU, KUBUNTU, PHOENIX, dan yang lain. Aplikasi android berjalan dengan lingkungan sistem turunan LINUX, Aplikasi berbasis WINDOWS seperti .NET juga diuji sesuai lingkungannya. Namun beberapa aplikasi bisa diuji lintas platform seperti pada flutter dan reactJS.
Baca Juga : Rahasia JavaScript Terungkap! Kehebatannya dan Tips Optimalisasi Super Praktis
Jenis-jenis Testing
Tester melakukan pengujian dengan beberapa jenis, seperti unit testing dan acceptance testing pada node JS. Karena saya masih baru dalam dunia uji menguji dan yang paling baru belajar menguji kode node JS, maka hanya kedua jenis test tersebut yang dibahas.
UNIT TESTING
Unit testing sendiri merupakan pengujian kode nodeJS yang dilakukan secara spesifik terhadap hasil output dari sebuah function atau method yang harus memberikan hasil sesuai output yang ditentukan. Misal kita membuat sebuah fungsi untuk menghitung nilai rata - rata suatu siswa dalam kelas, maka output harus menghasilkan rata - rata tersebut. Jika terdapat salah atau ketidaktepatan nilai dari parameter input yang diberikan user, maka harus ditangani dengan error handling. Error tersebut akan memberikan informasi kepada user/pengguna jika mereka memasukkan data yang tidak sesuai, misal nilai tidak boleh berisikan 'char' atau karakter spesial.
Contoh unit testing nilai rata - rata adalah sebagai berikut :
gradeCalculations.js <-- Nama file fungsi yang akan diuji
const averageExams = (valuesExam) => {
const numberValidation = valuesExam.every(exam => typeof exam === 'number');
if (!numberValidation) throw Error('please input number');
const sumValues = valuesExam.reduce((accumulator,currentValue) => accumulator + currentValue, 0);
return sumValues / valuesExam.length;
};
const isStudentPassExam = (valuesExam, name) => {
const minValues = 75;
const average = averageExams(valuesExam);
if (average > minValues) {
console.log(`${name} is fail the exams`);
return true;
} else {
console.log(`${name} is pass the exams`);
return false;
}
};
module.exports = { averageExams, isStudentPassExam };
Kemudian kode testing yaitu :
gradeCalculations.test.js <-- nama file dummy untuk testing fungsi rata - rata di atas
const {averageExams} = require('../gradeCalculations');
test ('menghasilkan nilai rata-rata', () => {
const listValueOfExams = [80,90,100];
expect(averageExams(listValueOfExams)).toEqual(90);
})
Kode test diatas akan memanggil file fungsi nilai rata - rata kemudian akan memberikan informasi apakah nilainya sesuai dengan 90. Jika input parameter bernilai angka dan sesuai (bukan karakter spesial, dll ) maka hasilnya akan menampilkan kalimat "menghasilkan nilai rata-rata". Hal ini menandakan fungsi berjalan dengan baik. Library yang digunakan untuk testing ini yaitu "JEST".
ACCEPTANCE TESTING
Test ini bersifat terlihat yaitu seputar UI ( User Interface ) sebuah web atau aplikasi android, yang dimana ketika bagian tertentu ditekan akan menghasilkan sebuah aksi yang sesuai keinginan. Misalkan tombol close akan menutup aplikasi android ketika ditekan.
Sumber :
1. https://idjs.github.io/belajar-nodejs/testing/index.html
2. Jurnal Teknologi Informasi DINAMIK Volume X, No. 1, Januari 2005 : 45-49