Macam - Macam Testing Dalam Software Dan Hardware


Testing adalah bagian yang sangat penting dalam sebuah development (pengembangan) sistem informasi begitu juga dalam commercial software (perangkat lunak komersil/yang di jual ke publik) dan biasanya testing tidak terlalu diperhatikan lebih sebagaimana mestinya. Testing biasanya dilakukan setelah tahap  coding selesai dan sebelum tahap publikasi / finishing. Testing dilakukan dalam software dan hardware yang baru ataupun yang sedang direvisi/diperbaiki.

Software Vendor (Penjual Perangkat Lunak) yang menyediakan software infrastruktur yang kritikal/penting seperti Sistem Operasi harus melakukan sejumlah testing kepada ribuan penggunanya (user), yang dimana mereka mengharapkan perbaikan-perbaikan atau kemajuan di versi software berikutnya yang mereka gunakan. Mereka lebih mengharapkan hal tersebut daripada mencoba sebuah buggy software (perangkat lunak yang punya banyak kesalahan/error/tidak stabil) dan melaporkannya ke vendor.

Berikut ini adalah ringkasan jenis-jenis / tipe-tipe atau macam-macam testing yang dikumpulkan saya sebagai penulis.
Semua jenis testing ditulis dalam bahasa Inggris, karena jika diterjemahkan, akan terasa aneh baik bagi penulis dan mungkin juga bagi pembaca.
Test = Uji coba

Acceptance Test
Test yang dilakukan oleh user-user / pengguna terhadap sistem yang baru atau sistem yang telah diubah dengan tujuan memperoleh persetujuan terhadap sistem yang sedang di testing dan go live (siap dipakai). Dikenal juga sebagai UAT (User Acceptance Test)..

Active Test
Melakukan test data dan menganalisa hasilnya. Kebalikan dari "Passive Test" (liat dibawah).

Ad Hoc Test
Test non-formal tanpa Test Case (lihat bawah).

Age Test (aging)
Mengevaluasi kemampuan sistem dalam melaksanakan tugas2nya di masa yang akan datang. Untuk melakukan test ini, hardware dan/atau data uji coba dimodifikasi ke tanggal yang akan datang

Alpha Test
Tahapan testing paling awal di sebuah laboratorium. Setelah itu, baru release Beta Testing.

Automated Test
Menggunakan software untuk menguji coba software (A Software Testing a Software).
Walaupun begitu, testing ini masih memerlukan intervensi manusia untuk memonitor tahapan2/langkah2 dari analasis atau error yang ada.

Beta Test
Test yang dilakukan oleh end users (pengguna akhir). Tahap testing yang dilakukan setelah Alpha Testing.

Black Box Test
Test terhadap software yang didasarkan atas hasil keluarannya saja (output) tanpa pengetahuan mendalam tentang kode-kode atau logika yang terdapat didalam software tersebut. Kebalikan dari "white box test" dan "gray box test."

Environment Test
Test sebuah software baru yang menentukan apakah semua transaksi antara input, output dan media penyimpanan berjalan sebagaimana mestinya.

Functional Test
Uji coba terhadap kebutuhan fungsional software, seperti menu dan kunci perintah (key commands).

Fuzz Test
Test terhadap software bugs dengan memberikan data yang dihasilkan secara acak.


Gray Box Test
Uji coba software dengan adanya pengetahuan di kode / logika internal software tersebut. Kebalikan dari "white box test" dan "black box test."

Negative Test / Dirty Test
Menggunakan inputan yang salah/tidak sesuai untuk mengetes kemampuan error handling program.

Passive Test
Memonitor hasil dari sistem yang sedang berjalan tanpa melakukan tes data yang unik terhadap sistem. Kebalikan dari "active test" (diatas).

Recovery Test
Menguji kemampuan sistem untuk recover/pulih dari hardware atau software failure. Misalnya, gagal booting, overheat, overload data processing, transaksi putus karena koneksi down, dll. Apa yang akan terjadi?

Regression Test
Menguji coba software yang telah direvisi untuk melihat apakah fungsi-fungsi sebelumnya dapat berjalan dengan baik atau mengalami pengaruh.

Smoke Test
Menyalakannya dan melihat apa yang terjadi. (Testing untuk harware)

System Test
Testing keseluruhan di laboratorium dan di lingkungan pengguna (user environment).

Test Case
Sekumpulan data percobaan, program percobaan dan hasil tes yang diharapkan.

Test Scenario
Sekumpulan dari Test Case.

Test Suite
Kumpulan dari Test Case dan Tes Scenario yang telah dirangkum dengan detail.

Unit Test
Tes yang hanya dilakukan untuk satu komponen saja dalam suatu sistem. Kebalikan dari "system test."

White Box Test
Tes sebuah software dengan pengetahuan lengkap akan kode-kode / logikal-logika yang terdapat didalam software yang diujicoba. Kebalikan dari "black box test" and "gray box test."

Sumber
Sumber

Profesi Bidang TI yang Diinginkan

Sebagai lulusan sarjana dibidang Teknologi Informasi, saya ingin sekali menjadi Web Developer. Mungkin ini pilihan pekerjaan yang sangat saya inginkan, Dikarenakan peluang menjadi Web Developer masih terbuka sangat lebar, dengan kemampuan yang saya miliki. Saya merasa sudah siap untuk terjun ke dunia kerja. Skill yang saya miliki:

1. PHP
2. MySQL
3. Framework Codeigniter, Laravel
4. Javascript, Jquery, Ajax
5. HTML / CSS

Dunia Teknologi sudah semakin berkembang, sudah banyak kegiatan-kegiatan yang dilakukan secara manual mulai pindah menggunakan teknologi. 

Modal Pengembangan Standar Profesi

Seperti kita tahu, dunia IT sangat luas dan beragam, mulai dari aspek pembangun hingga pendukung berdirinya IT. Sehingga dibutuhkan banyak profesi untuk memegang aspek-aspek tersebut. Seiring perkembangan IT, makin meningkat pula permintaan akan sumber daya manusia yang berkompeten oleh berbagai perusahaan, baik nasional maupun multi nasional untuk mengembangkan atau sekedar memelihara teknologi informasi yang ada diperusahaan mereka. Jenis profesi dibidang IT bisa dikatakan cukup diminati sekarang ini, apa sajakah profesi-profesi tersebut ?

Secara garis besar, profesi-profesi dibidang IT digolongkan menjadi 4 jenis yaitu :
  1. Network System (Bagian Sistem Jaringan)
Dalam bagian sistem jaringan ini kita juga dapat menyebutkan contoh jenis profesi yang termasuk dalam bagian ini yaitu; Network Administrator, Teknisi jaringan, PC Support, Analis Data Komunikasi, Administrator Keamanan jaringan. Pada bagian ini peluang dalam dunia kerja masih banyak sekali di butuhkan oleh perusahaan IT maupun non-IT.
  1. Informatian Support and Service (Pelayanan Informasi dan Dukungan)
Bagian Profesi pekerjaan ini membantu kita untuk memperoleh data dan informasi, Bagian ini juga meliputi custumer service helpdek, kemudian teknikal support yang bekerja untuk membantu proses pekerjaan jika ada yang bermasalah dengan komputer secara umum. Kemudian Database Administrator yang sangat di perlukan untuk mengatur data-data yang di miliki oleh sebuah oraganisasi maupun perusahaan.
  1. Interactive Media (Bagian Media Interaktif)
Berhubungan dengan media merupakan salah satu karakteristik dalam dunia informasi, semua harus menggunakan media. Jadi bagian web development, web desain, penggambar 3D, dan jenis pekerjaan yang sedikit membutuhkan seni sangat di perlukan pada jenis profesi dalam bidang tekhnologi informasi ini. Gaji yang di tawarkan pun cukup besar sekali jika anda master dalam bidang ini.
  1. Programming Software Enginerring (Bagian Teknik Pemogramman Software)
Dunia komputer tidak lepas dengan namanya program, jika dunia komputer tanpa program, sama saja manusia tanpa otak. Jadi bidang programmer dan system analis sangat di perlukan sekali dalam bidang komputer. Jenis bidang IT yang memiliki gaji lumayan besar terletak pada bidang ini.

Berikut ini jenis-jenis profesi dibidang IT beserta Job Descriptionnya:

1. Systems Analysts Job Descriptions:
·      Memperluas atau memodifikasi sistem untuk melayani tujuan baru atau meningkatkan alur kerja.
·  Menguji, memelihara, dan memantau program komputer dan sistem, termasuk koordinasi instalasi program komputer dan sistem.
·  Mengembangkan, dokumen dan merevisi prosedur desain sistem, prosedur pengujian, dan standar kualitas.
·  Menyediakan staf dan pengguna dengan membantu memecahkan masalah komputer terkait, seperti malfungsi dan masalah program.
·   Meninjau dan menganalisa hasil print-out komputer dan indikator kinerja untuk menemukan masalah kode, dan memperbaiki eror dengan mengkoreksi kode.
2. Database Administrators Job Descriptions:
·      Menguji program atau database, memperbaiki kesalahan dan membuat modifikasi yang diperlukan.
·      Memodifikasi database dan sistem manajemen database yang ada.
·  Merencanakan, mengkoordinasikan dan melaksanakan langkah-langkah keamanan untuk melindungi informasi dalam file komputer terhadap kerusakan, pemodifikasian atau akses yang tidak sah.
·  Bekerja sebagai bagian dari tim proyek untuk mengkoordinasikan pengembangan database dan menentukan lingkup proyek dan keterbatasan.
·    Menulis dan mengkode deskripsi database secara fisik dan logis dan menentukan pengidentifikasi dari database untuk sistem manajemen atau orang lain secara langsung dalam pengkodean deskripsi.
3. Network Systems and Data Communications Analysts Job Descriptions:
  • Menguji dan mengevaluasi hardware dan software untuk menentukan efisiensi, reliabilitas, dan kompatibilitas dengan sistem yang ada, dan membuat rekomendasi pembelian.
  • Desain dan implementasi sistem, konfigurasi jaringan, dan arsitektur jaringan, termasuk teknologi perangkat keras dan perangkat lunak, lokasi situs, dan integrasi teknologi.
  • Membantu pengguna untuk mendiagnosa dan memecahkan masalah komunikasi data.
  • Memantau kinerja sistem dan menyediakan langkah-langkah keamanan, tips dan pemeliharaan yang diperlukan. 
4. Computer Programmers Job Descriptions:
  • Memperbaiki kesalahan dengan membuat perubahan yang sesuai dan memeriksa kembali program untuk memastikan bahwa hasil yang diinginkan yang dihasilkan.
  • Melakukan percobaan menjalankan program dan aplikasi software untuk memastikan bahwa mereka akan menghasilkan informasi yang dikehendaki dan bahwa instruksi sudah benar.
  • Menulis, mengupdate, dan memelihara program komputer atau paket perangkat lunak untuk menangani pekerjaan tertentu seperti pelacakan inventaris, menyimpan atau mengambil data, atau mengontrol peralatan lainnya.
  • Menganalisis, meninjau, dan menulis ulang program, menggunakan grafik dan diagram alur kerja, dan menerapkan pengetahuan tentang kemampuan komputer, materi pelajaran, dan logika simbolik.
  •  Melakukan atau revisi langsung, perbaikan, atau perluasan program yang ada untuk meningkatkan efisiensi operasi atau beradaptasi dengan persyaratan baru.
5.      Computer Systems Engineers Job Descriptions:
  • Berkomunikasi dengan staf atau klien untuk memhami persyaratan sistem tertentu.
  • Memberikan saran pada biaya proyek, konsep desain, atau perubahan desain.
  • Dokumen desain spesifikasi, petunjuk instalasi, dan sistem informasi terkait lainnya.
  • Verifikasi stabilitas, interoperabilitas, portabilitas, keamanan, atau skalabilitas arsitektur sistem. 
  • Berkolaborasi dengan engineer atau pengembang perangkat lunak untuk memilih solusi desain yang tepat atau memastikan kompatibilitas komponen sistem.
6.      Web Administrators Job Descriptions:
  • Back up atau memodifikasi aplikasi dan data yang terkait untuk menyediakan pemulihan kerusakan.
  • Menentukan sumber halaman web atau masalah server, dan mengambil tindakan untuk memperbaiki masalah tersebut.
  • Meninjau atau memperbarui konten halaman web atau link pada waktu yang tepat, menggunakan tool-tool.
  •  Memonitor sistem untuk intrusi atau serangan denial of service, dan melaporkan pelanggaran keamanan untuk personil yang tepat.
  • Menerapkan langkah-langkah keamanan situs web, seperti firewall atau enkripsi pesan.
7.      Computer Security Specialists Job Descriptions:
  • Mengenkripsi transmisi data dan membangun firewall untuk menyembunyikan informasi rahasia seperti sedang dikirim dan untuk menahan transfer digital tercemar.
  • Mengembangkan rencana untuk melindungi file komputer terhadap modifikasi disengaja atau tidak sah, perusakan, atau pengungkapan dan untuk memenuhi kebutuhan pengolahan data darurat.
  • Meninjau pelanggaran prosedur keamanan komputer dan mendiskusikan prosedur dengan pelanggar untuk memastikan pelanggaran tidak terulang kembali.
  • Memonitor penggunakan file data dan mengatur akses untuk melindungi informasi dalam file komputer.
  • Monitor laporan saat ini dari virus komputer untuk menentukan kapan untuk memperbarui sistem perlindungan virus.
  • Standar Profesi ACM dan IEEE
ACM (Association for Computing Machinery)
ACM atau Asosiasi untuk Permesinan Komputer adalah sebuah serikat ilmiah dan pendidikan komputer pertama di dunia yang didirikan pada tahun 1947. Anggota ACM sekitar 78.000 terdiri dari para profesional dan para pelajar yang tertarik akan komputer. ACM bermarkas besar di Kota New York. ACM diatur menjadi 170 bagian lokal dan 34 grup minat khusus (SIG), di mana mereka melakukan kegiatannya. ACM telah menciptakan sebuah perpustakaan digital di mana ia telah membuat seluruh publikasi yang tersedia. ACM perpustakaan digital merupakan koleksi terbesar di dunia informasi mengenai mesin komputasi dan berisi arsip jurnal, majalah, prosiding konferensi online, dan isu-isu terkini ACM publikasi. Layanan online termasuk forum yang disebut Ubiquity dan Tech News mencerna, baik yang berisi informasi terbaru tentang dunia IT.

IEEE (Institute of Electrical and Electronics Engineers)
IEEE (Institute of Electrical and Electronics Engineer) merupakan asosiasi professional terbesar di dunia yang didedikasikan atau dibuat untuk memajukan inovasi teknologi dan kesempurnaan untuk kepentingan kemanusiaan. IEEE adalah sebuah organisasi profesi nirlaba yang terdiri dari banyak ahli di bidang teknik yang mempromosikan pengembangan standar-standar dan bertindak sebagai pihak yang mempercepat teknologi-teknologi baru dalam semua aspek dalam industri dan rekayasa (engineering), yang mencakup telekomunikasi, jaringan komputer, kelistrikan, antariksa, dan elektronika.
Proses pembangunan IEEE standar dapat dipecah melalui tujuh langkah dasar yaitu:
  1. Mengamankan Sponsor
  2. Meminta Otorisasi Proyek
  3. Perakitan Kelompok Kerja
  4. Penyusunan Standard
  5. Pemungutan suara
  6. Review Komite
  7. Final Vote
Perbandingan ACM dan IEEE Computer Society
1. ACM
  • berfokus pada ilmu komputer teoritis dan aplikasi pengguna akhir
  • ACM adalah ilmuwan computer
2. IEEE
  • lebih memfokuskan pada masalah-masalah hardware dan standardisasi
  • IEEE adalah untuk insinyur listrik
Meskipun subkelompok terbesar adalah IEEE Computer Society, tentu saja ada tumpang tindih yang signifikan antara kedua organisasi, dan mereka kadang-kadang bekerjasama dalam proyek-proyek seperti pengembangan kurikulumilmu computer.
Standar Profesi di Indonesia dan Regional
Berdasarkan perkembangan Teknologi Informasi secara umum, serta kebutuhan di Indonesia serta dalam upaya mempersiapkan diri untuk era perdagangan global. Beberapa usulan dituangkan dalam bab ini. Usulan-usulan tersebut disejajarkan dengan kegiatan SRIG-PS (SEARCC), dan IPKIN selaku perhimpunan masyarakat komputer dan informatika di Indonesia. Juga tak terlepas dari agenda pemerinta melalui Departemen terkait

 
 Gambar 1. Implementasi Standardisasi Profesi bidang TI di Indonesia

Langkah-langkah yang diusulan dengan tahapan-tahapan sebagai beriku :
  • Penyusunan kode etik profesiolan Teknologi Infomrasi
  • Penyusunan Klasifikasi Pekerjaan (Job) Teknologi Informasi di Indonesia
  • Penerapanan mekanisme sertifikasi untuk profesional TI
  • Penerapan sistem akreditasi untuk Pusat Pelatihan dalam upaya Pengembangan Profesi
  • Penerapan mekanisme re-sertifikasi
Pembentukan Standar Profesi Teknologi Informasi di Indonesia
Dalam memformulasikan standard untuk Indonesia, suatu workshop sebaiknya diselenggarakan oleh IPKIN. Partisipan workshop tersebut adalah orang-orang dari industri, pendidikan, dan pemerintah. Workshop ini diharapkan bisa memformulasikan deskripsi pekerjaan dari klasifikasi pekerjaan yang belum dicakup oleh model SRIG-PS, misalnya operator. Terlebih lagi, workshop tersebut akan menyesuaikan model SRIG-PS dengan kondisi Indonesia dan menghasilkan model standard untuk Indonesia. Klasifikasi pekerjaan dan deskripsi pekerjaan ini harus diperluas dan menjadi standard kompetensi untuk profesioanal dalam Teknologi Informasi
Persetujuan dan pengakuan dari pemerintah adalah hal penting dalam pengimplementasian standard di Indonesia. Dengan demikian, setelah standard kompetensi diformulasikan, standard tersebut dapat diajukan kepada kepada Pemerintah melalui Menteri Tenaga Kerja. Selain itu standard tersebut juga sebaiknya harus diajukan kepada Menteri Pendidikan dengan tujuan membantu pembentukan kurikulum Pendidikan Teknologi Informasi di Indonesia dan untuk menciptakan pemahaman dalam pengembangan model sertifikasi.
Untuk melengkapi standardisasi, IPKIN sudah perlu menetapkan Kode Etik untuk Profesi Teknologi Informasi. Kode Etik IPKIN akan dikembangkan dengan mengacu pada Kode Etik SEARCC dan menambahkan pertimbangan-pertimbangan yang sesuai dengan kondisi di Indonesia.
Selanjutnya, mekanisme sertifikasi harus dikembangkan untuk mengimplementasikan standard kompetensi ini. Beberapa cara pendekatan dari negara lain harus dipertimbangkan. Dengan demikian, adalah penting untuk mengumpulkan mekanisme standard dari negara-negara lain sebelum mengembangkan mekanisme sertifikasi di Indonesia.
Gambar 2. Model Interaksi Sistem Sertifikasi Profesional TI

Sertifikasi sebaiknya dilaksanakan oleh IPKIN sebagai Asosiasi Komputer Indonesia. Pemerintah diharapkan akan mengakui sertifikat ini, dan memperkenalkan dan mendorong implementasinya di industri. Dalam mengimplementasikan mekanisme sertifikasi, beberapa badan perlu dibentuk
  •   Badan Penguji harus dibentuk dan institusi pendidikan sebaiknya dilibatkan dalam mekanisme ini. Hal ini perlu karena institusi pendidikan memiliki pengalaman dalam memberikan ujian.
  • Panitia Persiapan Ujian, mempersiakan kebutuhan administrasi, pendaftaran, penjadwalan, pengumpulan maeri ujian.
  • Pelaksana Ujian, mempersiapkan tempat ujian dan melaksanakan ujian. Menyerahkan hasil ujian kepada Badan Penguji untuk diperiksa, mengolah hasil dan memberikan hasil kepada IPKIN
  • Pelaksana akreditasi training centre, untuk kebutuhan resertifikasi maka perlu dibentuk badan yang melakukan penilaian terhadap pelaksana pusat pelatihan, tetapi hal ini baru dilaksanakan setelah 5 tahun sistem sertifikasi berjalan,.
  •  Pelaksana resertifikasi, hal ini mungkin baru dapat dilaksanakan setelah 5 tahun setelah sistem sertifikasi berjalan dengan baik