Laman

Jumat, 03 Desember 2010

Pengujian Aplikasi Web


Pengujian adalah salah satu instrumen yang paling penting dalam pengembangan aplikasi Web untuk mencapai produk-produk berkualitas tinggi yang memenuhi harapan pengguna. Metode dan pengujian sistematis dari aplikasi Web adalah tindakan penting yang diberikan penekanan khusus dalam jaminan kualitas. Ini adalah upaya yang bertujuan untuk menemukan kesalahan dan kekurangan dalam perangkat lunak yang diuji, mengamati ekonomi, temporal, dan teknis kendala. Banyak metode dan teknik untuk menguji sistem perangkat lunak saat ini.
            Pengujian aplikasi Web melampaui pengujian sistem perangkat lunak tradisional. Meskipun persyaratan yang sama berlaku untuk kebenaran teknis dari aplikasi, penggunaan Web aplikasi dengan kelompok pengguna heterogen pada sejumlah besar platform mengarah ke pengujian khusus persyaratan. Hal ini sulit untuk memperkirakan jumlah pengguna untuk aplikasi Web. Faktor penting lainnya untuk keberhasilan aplikasi Web misalnya, kegunaan, ketersediaan, browser kompatibilitas, keamanan, aktualitas, dan efisiensi, juga harus diperhitungkan dalam tes awal. Pengujian adalah kegiatan dilakukan untuk mengevaluasi kualitas suatu produk dan untuk meningkatkan dengan mengidentifikasi cacat dan masalah. Jika kita menjalankan program dengan maksud untuk menemukan kesalahan (Myers 1979). 



Gambar 7.1 Penataan jaminan kualitas perangkat lunak
Gambar 7-1 menunjukkan bahwa pengujian merupakan bagian dari jaminan kualitas analitis langkah-langkah (Bourque dan Dupuis 2005). Dengan menemukan kesalahan yang ada, keadaan kualitas Program yang diuji ditentukan, menciptakan dasar untuk peningkatan kualitas dengan menghapus kesalahan yang ditemukan.
7.1 Karakteristik Kualitas
            Sebuah taksonomi umum untuk karakteristik kualitas produk perangkat lunak ditentukan dalam ISO / IEC 9126-1 standar. Standar ini menyebutkan enam kategori utama karakteristik yaitu:
·         fungsionalitas,
·         keandalan,
·         kegunaan,
·         efisiensi,
·         pemeliharaan,
·         dan portabilitas

            Persyaratan mutu memainkan peran penting ketika pengujian aplikasi Web. Meskipun umumnya sama dengan persyaratan mutu untuk sistem perangkat lunak tradisional karena signifikansi besar kualitas berbeda karakteristik dan perbedaan tentang bagaimana web dapat diuji, banyak metode untuk  pengujian aplikasi Web berkonsentrasi pada satu atau beberapa karakteristik kualitas tertentu. Namun semua karakteristik kualitas yang penting bagi kualitas keseluruhan dari aplikasi Web. Pengujian untuk memastikan bahwa mereka telah berhasil dilaksanakan.

7.2 Tujuan Pengujian
            Tujuan utama pengujian adalah untuk menemukan kesalahan, bukan untuk menunjukkan ketidakhadiran. Jika tes tidak menemukan kesalahan, maka ini tidak berarti bahwa aplikasi yang diuji tidak berisi, kemungkinan saja hal ini belum terdeteksi. Jumlah besar karakteristik kualitas yang perlu dipertimbangkan, dan semua nilai input potensial dan kombinasi input, termasuk semua kondisi samping potensial dan proses, membuat tidak mungkin untuk mencapai cakupan uji yang lengkap. Bagian-bagian dari suatu aplikasi di mana kesalahan tidak terdeteksi, dan ke mana kesalahan akan memiliki konsekuensi paling kritis, harus diuji terlebih dahulu dengan usaha yang besar. Sebuah pengujian tersebut berhasil jika kesalahan yang terdeteksi, masing-masing informasi tambahan tentang masalah dan status aplikasi tersebut diperoleh.
            Hal ini terutama berlaku di Web pengembangan aplikasi, di mana pengujian harus terbatas pada minimum karena dibatasi sumber daya dan tekanan waktu yang ekstrim di mana aplikasi Web dikembangkan. Situasi ini juga mensyaratkan bahwa kesalahan serius harus ditemukan sedini mungkin untuk menghindari investasi yang tidak perlu karena biaya untuk menemukan dan menghapus kesalahan meningkat secara dramatis dengan setiap tahap pengembangan (Kaner et al. 1999).  Kesalahan yang terjadi pada tahap awal pembangunan sulit untuk melokalisir pada tahap selanjutnya, dan penghapusan mereka biasanya menyebabkan perubahan luas dan perlu berurusan dengan kesalahan konsekuensial. Oleh karena itu kita harus memulai pengujian sedini mungkin pada awal proyek.

7.3 Level Pengujian
            Menurut tahap pembangunan yang berbeda di mana dapat menghasilkan hasil yang diuji, mengidentifikasi tingkat uji untuk memfasilitasi pengujian hasil ini antara lain:
·           tes Unit: uji unit diuji terkecil (kelas, halaman Web, dll), bebas satu lain. Unit testing dilakukan oleh pengembang selama implementasi.
·           tes Integrasi: mengevaluasi interaksi antara unit yang berbeda dan terpisah diuji sekali mereka telah terintegrasi. Integrasi tes dilakukan oleh tester, pengembang, atau keduanya bersama-sama.
·           Sistem tes: menguji sistem, lengkap terintegrasi. Sistem tes biasanya dilakukan oleh tim khusus uji.
·           Tes Penerimaan: mengevaluasi sistem kerja sama dengan atau di bawah naungan klien dalam suatu lingkungan yang datang paling dekat dengan lingkungan produksi. Tes Penerimaan gunakan nyata kondisi dan data nyata.
·           Tes Beta : biarkan kerja yang ramah pengguna dengan versi awal produk dengan tujuan untuk memberikan awal umpan balik. Beta tes tes informal (tanpa rencana uji dan uji kasus) yang mengandalkanSimak pada jumlah dan kreativitas pengguna potensial

            Risiko yang melekat saat melakukan uji tingkat berurutan sesuai dengan tahapan proyek adalah bahwa kesalahan karena salah paham harapan pengguna dapat ditemukan hanya pada tahap akhir, yang membuat penghapusan mereka sangat mahal. Untuk meminimalkan risiko ini, pengujian harus menjadi bagian yang terintegrasi produk konstruksi yang harus mencakup seluruh proses pembangunan. Oleh karena itu, jaminan kualitas tindakan seperti review atau prototipe yang digunakan bahkan sebelum menjalankan unit tes. Sebuah proses pembangunan sangat iteratif dan evolusi mengurangi risiko ini sejak kecil bagian sistem sering diuji pada semua tingkat pengujian (termasuk mereka dengan validasi terhadap pengguna harapan), sehingga dapat ditemukan kesalahan sebelum mereka dapat memiliki dampak pada bagian lain dari sistem. Ini berarti bahwa urutan tingkat uji yang dijelaskan di atas tidak selalu mendikte urutan temporal untuk pengujian proyek Web tetapi dapat dilakukan beberapa kali, misalnya sekali untuk setiap incrementation fungsi.

7.4 Peran penguji
            Tujuannya untuk menemukan kesalahan yang terdapat pada sistem yang telah di buat. Penguji yang terbaik adalah bukan orang yang menemukan bug yang paling atau yang malu yang kebanyakan programmer.

7.5 Spesifik Pengujian Dalam Web Engineering
            Poin-poin berikut ini menguraikan spesifik yang paling penting dan tantangan di Web pengujian aplikasi berbasis pada karakteristik aplikasi yaitu:
·           Kesalahan dalam "isi" sering bisa ditemukan hanya dengan manual mahal atau tindakan organisasi, mis, oleh proofreading. Sederhana bentuk cek otomatis (misalnya, oleh pemeriksa ejaan) adalah bantuan yang berharga tetapi terbatas pada jangkauan terbatas cacat potensial. Meta-informasi tentang isi penataan dan semantik atau sistem referensi yang memasok komparatif nilai sering merupakan prasyarat untuk dapat melakukan tes secara mendalam. Jika prasyarat ini tidak tersedia, pendekatan lain harus ditemukan.
·           Ketika pengujian struktur hypertext, kita harus memastikan bahwa halaman terkait dengan benar, misalnya, setiap halaman harus dapat diakses melalui link dan, pada gilirannya, harus memiliki link kembali ke struktur hypertext. Selain itu, semua link harus menunjuk ke halaman yang sudah ada
·           Persyaratan subjektif pada tingkat penyajian aplikasi Web,
·           Jumlah besar perangkat potensial dan karakteristik yang berbeda kinerja
(Multi-platform) merupakan tantangan lain
·           Karena ketersediaan global dan penggunaan aplikasi Web, terdapat banyak tantangan sehubungan dengan multilinguality dan kegunaan dalam pengujian aplikasi Web.
·           Tim sering dikaitkan dengan penerimaan metodologi dan kesiapan masyarakat untuk melakukan pengujian. Seringkali pengetahuan tentang metode, teknologi, dan alat-alat harus diperoleh dalam kegiatan proyek. Berbeda sudut pandang yang berkaitan dengan pengujian harus konsolidasi.
·         Aplikasi Web terdiri dari sejumlah komponen perangkat lunak yang berbeda (misalnya, server Web, database, middleware) dan sistem terintegrasi (misalnya, sistem ERP, manajemen konten sistem), yang sering disediakan oleh vendor yang berbeda, dan dilaksanakan dengan teknologi yang berbeda. Komponen ini membentuk infrastruktur teknis dari Web aplikasi. Kualitas aplikasi Web pada dasarnya ditentukan oleh kualitas dari semua komponen perangkat lunak tunggal dan kualitas antarmuka. Ini berarti bahwa, di samping komponen dikembangkan dalam suatu proyek, kita harus menguji perangkat lunak komponen disediakan oleh pihak ketiga, dan integrasi dan konfigurasi komponen ini.
·         Ketidakmatangan ujian, banyak metode dan alat-alat merupakan tantangan tambahan untuk penguji.
·         Dominasi perubahan membuat aplikasi Web pengujian lebih kompleks daripada konvensional pengujian software. Upgrade dan migrasi Web aplikasi yang disebabkan oleh platform yang selalu berubah

7.6 Uji  Pendekatan
1.      Pendekatan Konvensional
            Dari perspektif pendekatan konvensional, pengujian kegiatan proyek meliputi perencanaan, mempersiapkan, melakukan, dan pelaporan:
·         Perencanaan: Langkah perencanaan mendefinisikan tujuan kualitas, strategi pengujian umum, hasil uji rencana untuk semua tingkat pengujian, metrik dan metode pengukuran, dan lingkungan pengujian.
·         Menyiapkan: Langkah ini melibatkan memilih teknik pengujian dan alat dan menetapkan Uji kasus (termasuk data pengujian).
·          Melakukan: Langkah ini menyiapkan infrastruktur tes, menjalankan uji kasus, dan kemudian dokumen dan mengevaluasi hasilnya.
·          Pelaporan: Langkah terakhir ini merangkum hasil tes dan menghasilkan laporan uji.


2.      Pendekatan Agile
            Pendekatan Agile mengasumsikan bahwa tim akan mencari solusi untuk masalah-masalah bersama dan mandiri (Ketergantungan pada diri-organisasi). Ini juga berlaku untuk pengujian. Oleh karena itu, pengujian ini bukan masalah peran tetapi kerjasama yang erat dan penggunaan terbaik dari kemampuan yang tersedia di tim.



7.7 Pengujian Tiga Dimensi
            Setiap tes memiliki tujuan yang ditetapkan. Tujuan tersebut dijelaskan oleh karakteristik mutu yang diperlukan di satu sisi misalnya, kebenaran, keamanan, kompatibilitas - dan oleh benda uji di sisi lain - misalnya, algoritma, transaksi, representasi. Dengan demikian, karakteristik mutu dan benda uji yang saling ortogonal. Pandangan ini menunjukkan bahwa benda uji dijalankan dan dianalisa selama percobaan, sedangkan karakteristik kualitas menentukan tujuan tes. Kedua dimensi diperlukan untuk menentukan tes dan dapat digunakan untuk mengatur seperangkat tes terkait. Untuk pendekatan pengujian sistematis hal ini berguna untuk membedakan antara dua dimensi sehingga akan mungkin untuk mengidentifikasi semua obyek tes yang mempengaruhi karakteristik kualitas tertentu atau sebaliknya, semua karakteristik yang mempengaruhi kualitas benda uji tertentu. Hal ini penting karena tidak semua karakteristik kualitas sama-sama - atau sama sekali - yang relevan untuk semua benda uji. Selain itu, dimensi ketiga menentukan kapan atau dalam apa fase siklus software kombinasi benda uji dan karakteristik kualitas harus diuji.

7.8 Metode Pengujian dan Teknik
Bagian-bagian berikut menjelaskan secara singkat metode yang khas dan teknik untuk aplikasi Web pengujian antara lain:
·         Link Pengujian
·         Pengujian Browser
·         Pengujian Usability
·         Load, Stress, and Continuous Testing
·         Uji Keamanan
·         Test-driven Development 
·    Benefits and Drawbacks of Automated Tests

Tidak ada komentar:

Posting Komentar