Jumat, 20 Juni 2014

Tes Method

TEST METHOD
(Best Practice)
1.      Type of Test
Pengujian dari sebuah sistem merupakan sebuah jaminan dalam menjaga kualitas suatu sistem. Ada beberapa pengujian dalam pengembangan suatu sistem, tujuan dari tiap test itu berbeda-beda. Biasanya, ada beberapa test yang dilakukan dalam pengembangan suatu sistem yaitu sebagai berikut:
·         Unit Test
·         System Test
·         Integration Test
·         Infra Test
·         IT Operation Test
·         User Acceptance Test


Test type
Purpose
Scope
Methode
PIC
Unit Test (UT)
Menjamin detail desain
Each program/module
ERD
Error code
Screen/ report
White box
Black box
Vendor (developer)
System Test (ST)
Menjamin detail internal
Combination of module
Internal interface
Top down test
Bottom up test
Vendor (developer)
Infra Test
Guarantee non function request.
Guarantee system Architecture
Fault Tolerant.
Network.

Scenerio
Work Instruction
Vendor (designer)
Infra team
Integration Test
Guarantee the external design
Whole system
Function Relation
External Interface
Data Migration
Performance
Load Test
Simultaneous
Access
Parallel Processing
Scenario (regular/irregular)
Vendor (designer)

IT Dept
Operation Test
Guarantee daily IT operation
Start & shutdown
Backup & restore
JOB
Scenario
Work Instruction
Vendor (Designer)

Operational team
User Acceptance Test (UAT)
Guarantee the user request definition.
Judge go live.
Approval for system
Whole business process
Whole system
User operation
Real equipment / environment
Scenario (regular/irregular)
User
IT Dept
Assist by vendor

2.      Test Method
a.       White Box Test
      white box digunakan untuk mengetahui struktur internal dari program sumber untuk menciptakan suatu pola dan data. Jenis test pada White Box Test adalah sebagai berikut :
1.      Instruction Covering
Jika kita melakukan pengujian menggunakan “Instruction Covering” itu sudah cukup untuk menjalankan intruksi dari semua. In abs function, we use “X= -1”.
2.      Branch Covering
Jika kita melakukan pengujian menggunakan “Branch Covering” itu sudah cukup untuk menjalankan semua cabang. In abs function, we use “X = -1, X=0)

Source Program
1: int abs(int x) {
2:   if(x<0) {
3:        x = -x;
4:    }
5:    return x;
6: }

b.      Black Box Test
      Black Box Test dibuat tanpa melihat program sumber, mereka hanya menciptakan pola uji dan data hanya dari spesifikasi yang diminta. Jenis test pada Black Box test adalah sebagai berikut:
1.      Equivalence Partitioning
Ekivalensi partisi membagi nilai dalam beberapa kelompok sehingga dapat ditangani dengan cara yang sama sebagai masukan, pengujian dengan menggunakan nilai khas masing-masing.
2.      Limit check
Limit check membagi nilai dalam kelompok yang dapat ditangani dengan cara yang sama yaitu input dan pengujian menggunakan batas nilai cabang. Karena kesalahan sering terjadi pada batas cabang.
c.       Top Down Test
      Dengan metode ini, anda dapat menggabungkan tingkat model yang lebih rendah dalam urutan dari modul atas dulu yang akan terus menguji (dari atas kebawah). Keuntungtan dalam menggunakan "Top Down Test" yang memeriksa modul dari atas maka akan ditemukan perbedaan pengenalan dan kebocoran awal.
    

d.       Bottom Up Test
Dengan metode ini, anda akan menggabungkan modul tingkat atas dalam urutan dari modul yang lebih rendah ke modul tingkat atas. Keuntungan menggunakan “Black Box Test” adalah dapat dilakukan secara parallel dalam pembangunan dan pengujiannya.
e. Test Scenario 
Pada "test scenario" kita dapat membuat uji kasus dengan cara mendefinisikan persyaratan atau desain aplikasi yang dibuat.

f. Test Plan
Pada “test Plan”, kita dapat melakukan pengujian berdasarkan:
·         Objective (sasaran)
·         Ruang Lingkup (App, I/F, Infra)
·         Test Scenario (regular/irregular, daily/monthly)
·        
Test Data (master, transaction, initial file/migration/volume)
·         Organization (Roll & Responsibility)
·         Acceptance Criteria
·         Manage Procedure (Progress, Fault, Issue, Quality, Data)

3. Test Evaluation Method
Ada banyak metode dalam mengevaluasi hasil tes. Pada dasarnya itu adalah tujuan untuk memverifikasi bahwa menerapkan benar atau tidak terhadap suatu desain. Namun penerapan itu akan menjadi bug dalam pengujian tidak realistis. Karena kita tidak tahu berapa banyak jumlah bug dalam sistem tersebut. Selain itu juga ada batas untuk waktu dan biaya untuk menyelesaikan tes. Jadi pengujian itu sangat sulit.

Ini adalah kurva yang menggambarkan teory tentang trend bug.


Sebenernya, menentukan test ratio atau bug ratio itu sulit, karena sangat dibutuhkan akumulasi data lampau. Pada dasarnya, tujuan dari pengujian adalah untuk mengecekan dan menjamin kualitas dari masing-masing desain. Dibawah ini adalah skema pertanyaan pada tahap evaluasi, untuk menentukan apakah sistem itu itu sukses atau gagal.

4. Summary

5. Source
Modul Mata kuliah Testing dan implementasi sistem, Mohammad Lili.



Software Testing

SOFTWARE TESTING
OVERVIEW AND FUNDAMENTAL

  A. Basic Knowledge Software Development
            Testing dan implementasi sistem merupakan bagian dari SDLC (system Development Life Cycle). SDLC (System Development Life Cycle) atau siklus hidup pengembangan sistem adalah metodologi umum dalam siklus pengembangan sistem, dan merupakan penyusunan suatu sistem yang baru untuk menggantikan sistem yang lama dengan atau memperbaiki sistem yang sudah ada.


            SLDC (System Development Life Cycle) adalah pola yang dibuat dalam mengembangkan sistem perangkat lunak, yang terdiri dari beberapa tahap yaitu: Tahap Inisiasi (Initiation Phase), Tahap desain (Design Phase), Tahap Implementasi  (Implementation Phase),  transition phase dan control phase. Dalam rekayasa perangkat lunak, konsep SDLC mendasari berbagai jenis metodologi pengembangan perangkat lunak.


     1. Initiation Phase
      Tahap ini adalah tahap pengumpulan informasi sebanyak-banyaknya dan sedetail-detailnya yang terkait dengan  requirement client maupun proses bisnis yang terjadi dalam aplikasi serta tahap kesepakatan dalam penentuan jadwal proyek (schedule) dan harga software aplikasi.
      2. Design Phase
     Tahap ini adalalah tahap pembuatan diagram-diagram seperti class, activity, maupun sequence diagram, DFD dan juga ERD dari sistem yang akan dikembangkan. Selain itu pada tahap ini juga dibuat pemodelan database dan juga interface dari sistem.
     3. Implementation Phase
    Tahap implementsi terdiri dari sebagai berikut
·   Design : User Requirement, screen.
·   Development : coding and execution
              Pada fase ini programmer mulai melakukan coding sesuai dengan informasi yang dihasilkan dari fase desain dengan bahasa pemrograman yang sudah ditentukan.
·   Testing : unit test, system test, integration test, user acceptance test (UAT)
               Tujuan utama dari fase ini adalah mencari error atau bug sebanyak-banyaknya dari program yang sudah dikembangkan dengan harapan aplikasi yang diserahkan kepada client sudah terjamin bebas eror dan proses bisnis yang diharapkan juga benar-benar tercapai. Beberapa metode yang umum digunakan adalah Black Box and White box.
·   Implement : Preparation, Go – Live, support so on
      4. Transition Phase
      Setelah sistem yang sudah dianggap lulus dari tahap testing akan diserahkan ke pihak client yang juga akan melakukan pengecekan sistem (user acceptance test), terkait dengan pengoperasian aplikasi.
      5.    Control Phase
        Tahap ini adalah tahap terakhir yang biasanya ada didalam SDLC. Pada fase ini, aplikasi sudah berjalan di pihak client. Jadi tahap pengontrolan dilakukan oleh tim maintenance pihak client selama masa garansi sudah habis.

             B. Testing Based on Practice
·         Unit Test
Unit test merupakan proses pengujian properties secara detail pada setiap sifat, fungsi dasar, aliran data layar dan lain-lain. Contohnya: Seorang tester itu harus mengetes secara keseluruhan mulai dari pengecekan form data pribadi apakah sudah betul dan juga menguji apakah fungsi tombol, fungsi penyimpanan dan fungsi lainnya sudah berjalan dengan baik atau belum.
·         System Test    
System Test merupakan proses pengujian secara detail mengenai aliran bisnisnya, fungsi utama dan fungsi pola pikir si pengguna akhir mengenai sistem atau aplikasi yang sedang dibangun. Contohnya: Entity Relationship Diagram (ERD) each function such as 1 to many, flow process, so on.
·         Integration Test
Integration test merupakan proses yang menguji mengenai hubungan sistem dengan sistem atau aplikasi lain. Contohnya: sebuah online shop pasti akan terintegrasi dengan bank untuk sistem pembayarannya.
·         User Acceptance Test
User acceptance test merupakan pengujian yang dilakukan oleh pengguna akhir (end user). Pada tahap ini si end user melakukan pengecekan secara langsung  dari fungsi- fungsi aplikasi, bagaimana cara mengoperasikan aplikasi tersebut serta aliran bisnisnya dll. Tahap testing ini dilakukan untuk menstimulasi penggunaan nyata dari suatu aplikasi pada lingkungan yang sebenarnya. Contohnya si vendor pengembang aplikasi akan meminta end user untuk melakukan pengecekkan terhadap aplikasi yang sedang dibangunnya sebelum sistem tersebut diterapkan.

            C.  Implantation of System Based on Practice
·               Preparation: Go-Live check List
Pada tahap persiapan ini dilakukan pengecekan satu per satu semua tugas yang diperlukan sebelum Go – Live seperti mempersiapkan server, buku manual, aliran pendukung, rencana  terhadap kemungkinan yang terjadi (contingency plan) dll.
·               Go-Live Judgement
Mendengarkan keputusan dari project Manager dan owner untuk jadi mengaktifkan atau tidak (go – live or not) sistem tersebut berdasarkan pada tahap persiapan  tepatnya kelengkapan semua tugas sebelum Go – Live.
·               Post Go-Live Support
Meluncurkan aplikasi baru termasuk  dukungan oleh “front end” dan “back end”.
·                Closing
Melakukan prosedur penutupan proyek (sign off project closed).
·               Handover to Maintenance
Tahap ini dilakukannya transfer pengetahuan dari “Tim Proyek” developer kepada tim maintenance pengguna sistem.

           D.    Source
     Modul Mata kuliah testing dan implementasi sistem, Mohammad Lili