Selasa, 07 Desember 2010

Testing Web Application

  1. Pendahuluan

Aplikasi Web harus menawarkan kinerja tinggi, handal, dan mudah digunakan layanan sepanjang waktu. Penawaran aplikasi Web yang sangat baik untuk pengguna yang ada dan yang akan datang merupakan tantangan besar untuk jaminan kualitas. Pengujian adalah salah satu yang paling penting jaminan kualitas tindakan.

  1. Fundamental
  • Terminology

Pengujian adalah kegiatan dilakukan untuk mengevaluasi kualitas suatu produk dan untuk meningkatkan itu dengan mengidentifikasi cacat dan masalah.


 

  • Quality Characteristics

Sebuah taksonomi umum untuk karakteristik kualitas produk perangkat lunak ditentukan dalam ISO / IEC 9126-1 standar.

Standar ini menyebutkan enam kategori utama karakteristik - fungsionalitas,
keandalan, kegunaan, efisiensi, pemeliharaan, dan portabilitas - dan istirahat mereka turun lebih lanjut ke dalam sub-karakteristik.

  • Test Objectives

Secara ringkas, kita dapat mengatakan bahwa pengujian pada umumnya, dan untuk proyek-proyek web pada khususnya, harus dapat mendeteksi sebagai kesalahan sebanyak mungkin, idealnya sebagai kesalahan serius sebanyak mungkin, dengan biaya serendah mungkin, dalam waktu yang singkat periode waktu mungkin, dan sedini mungkin.

  • Test Levels

Tingkat uji untuk memfasilitasi pengujian hasil :

  • Baca secara fonetik
  • tes Unit
  • tes Integrasi
  • Sistem tes
  • Tes Penerimaan
  • Tes Beta
    • Role of the Tester

untuk tester: "tester terbaik adalah bukan orang yang menemukan bug yang paling atau yang malu yang kebanyakan programmer. Tester terbaik adalah orang yang endapatkan kebanyakan bug tetap. Sejak tim proyek web biasanya multidisiplin, dan kerjasama tim biasanya durasi pendek, bisa sulit bagi anggota tim untuk membangun kepercayaan yang dibutuhkan untuk menutup kolaborasi antara pengembang dan penguji.

  1. Specifics in Web Engineering

Poin-poin berikut ini menguraikan spesifik yang paling penting dan tantangan di Web :

  • Kesalahan dalam "isi" sering bisa ditemukan hanya dengan manual mahal atau tindakan organisasi, mis, oleh proofreading.
  • Ketika pengujian struktur hypertext, kita harus memastikan bahwa halaman terkait dengan benar.
  • Persyaratan subjektif pada tingkat penyajian aplikasi Web.
  • Jumlah besar perangkat potensial dan karakteristik yang berbeda kinerja mereka
    (Multi-platform).
  • Tantangan utama adalah untuk mengenali saling ketergantungan budaya dan menganggap mereka secara memadai dalam ujian.Simak

Baca secara fonetik


 

  • "usia muda" umum dan "multidisciplinarity" tim sering dikaitkan dengan miskin penerimaan metodologi dan kesiapan masyarakat miskin untuk melakukan pengujian.
  • Banyak kesalahan dalam hasil aplikasi Web dari "ketidakmatangan" dari tunggal komponen perangkat lunak, "ketidakcocokan" antara komponen-komponen perangkat lunak, atau salah konfigurasi komponen software yang benar.
  • "ketidakmatangan" ujian banyak metode dan alat-alat merupakan tantangan tambahan untuk tester.
  • "dominasi perubahan" membuat aplikasi Web pengujian lebih kompleks daripada konvensional pengujian software.

    •  

S


 

  1. Test Approaches

Pendekatan Agile (seperti Extreme Programming, lihat Bab 10 dan (Highsmith 2002) untuk gambaran umum) telah semakin telah digunakan dalam proyek Web. Sementara pendekatan tangkas fokus pada kolaborasi, pendekatan konvensional berfokus pada perencanaan dan manajemen proyek.

  1. Conventional Approaches

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.
  1. Agile Approaches

Agile pendekatan mengasumsikan bahwa tim akan mencari solusi untuk masalah-masalah bersama dan mandiri (Ketergantungan pada diri-organisasi).

Praktek-praktek berikut Extreme Programming (XP) memiliki pengaruh tertentu pada pengujian dan jaminan kualitas.

  • Pasangan pemrograman: mempercepat pertukaran pengetahuan antara pengembang, antara pengembang dan penguji, dan umumnya dalam tim.
  • Sebuah pelanggan on-site: tersedia untuk pertanyaan sehubungan dengan persyaratan setiap saat, dan mengambil keputusan dalam hal ini.
  • Integrasi Berkelanjutan: menjamin bahwa langkah-langkah kecil membantu meminimalkan risiko perubahan, dan berjalan melalui semua tes untuk terus memverifikasi bahwa seluruh sistem yang sempurna.
  • pengembangan Test pertama: berarti bahwa tes yang ditulis sebelum kode, memastikan bahwa "Pasangan pengembang" berpikir tentang "apa" sebelum mengimplementasikan "bagaimana".
  1. Test Scheme

Skema ini menggabungkan Dasar-dasar pengujian - uji kasus, karakteristik kualitas, dan tingkat uji - dijelaskan di atas menjadi seragam dan dikelola pengaturan. Skema ini merupakan model untuk pengujian aplikasi Web yang dirancang untuk lebih memahami bagaimana pengujian dapat diselenggarakan dan untuk mendukung, komprehensif sistematis, dan risiko-aware pendekatan untuk pengujian. Dalam bentuk yang diperkenalkan di sini, skema ini dapat digunakan untuk memvisualisasikan aspek yang terlibat dalam pengujian, struktur semua tes, dan berfungsi sebagai wahana komunikasi untuk tim.

  1. Three Test Dimensions

Setiap tes memiliki tujuan yang ditetapkan, misalnya, untuk memeriksa kebenaran suatu algoritma, untuk mengungkapkan keamanan pelanggaran dalam suatu transaksi, atau untuk menemukan ketidaksesuaian gaya dalam sebuah representasi grafis. The 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.


 

  1. Applying the scheme to web application

Simak

Baca secara fonetik

  • Test Objects ( Objek Uji )

Perlu untuk memperluas pengujian untuk infrastruktur dan lingkungan dari suatu aplikasi Web. Uji dimensi objek generik harus, karena itu, termasuk isi dan struktur dan infrastruktur dan lingkungan dari suatu aplikasi Web, di samping fungsi.

  • Phases

Dimensi ketiga dari skema - fase - berfokus pada urutan temporal Web aplikasi pengujian. Dimensi ini menunjukkan kapan uji yang harus dijalankan dalam Web siklus hidup aplikasi. Dimensi ketiga ini disusun sesuai dengan perkembangan umum proses atau siklus software.

  1. Examples of Using The Test Scheme

Top of Form


 

Skema digunakan sebagai gambaran umum dan kerangka kerja konseptual untuk secara sistematis mengatur metode dan teknik yang berlaku untuk pengujian aplikasi Web. Matriks dapat digunakan untuk menetapkan metode proyek tertentu atau perusahaan-lebar dan kotak alat untuk pengujian aplikasi Web. Pendekatan ini memfasilitasi perencanaan uji dan uji estimasi usaha dan memungkinkan untuk menelusuri kembali prioritas masing-masing pengujian dengan prioritas persyaratan

  1. Test Methods and Techniques

Ketika pengujian aplikasi Web, kita pada dasarnya dapat menerapkan semua metode dan teknik umum digunakan dalam pengujian perangkat lunak tradisional :

  1. Link Pengujian

Link dalam struktur navigasi hypertext yang mengarah ke sebuah node yang tidak ada (halaman, gambar, dll) atau jangkar disebut broken link dan mewakili terkenal dan sering terjadi kesalahan dalam aplikasi Web.

  1. Pengujian Browser

Selama pengujian ini, seseorang harus mengajukan pertanyaan-pertanyaan berikut:

  • Apakah negara aplikasi Web dikelola dengan benar, atau bisa terjadi jika negara tidak konsisten menavigasi langsung ke sebuah halaman, misalnya, dengan menggunakan browser tombol "Back"?
  • Dapatkah sebuah halaman (yang dihasilkan secara dinamis) Web akan bookmarked selama transaksi, dan dapat pengguna menavigasi ke halaman kemudian tanpa harus memasukkan nama pengguna dan password untuk login di?
  • Dapatkah pengguna menggunakan aplikasi Web untuk membukanya dalam jendela browser beberapa (satu atau beberapa contoh dari browser Web) bersamaan?
  • Bagaimana aplikasi Web bereaksi ketika browser memiliki cookies atau bahasa script dinonaktifkan?
  1. PengujianUsability

Usability testing mengevaluasi kemudahan-isu-penggunaan desain Web yang berbeda, tata letak keseluruhan, dan navigations (lihat Bab 11) dari aplikasi Web oleh satu set pengguna yang representatif. Fokus adalah pada tampilan dan kegunaan.

  1. Load, Stress, and Continuous Testing

Beban tes, stress test, dan pengujian terus menerus memiliki tujuan uji beda:

  • Sebuah load test atau tidak memeriksa apakah sistem memenuhi waktu respon yang diperlukan dan diperlukan throughput.
  • Sebuah tes stres atau tidak memeriksa apakah sistem bereaksi dengan cara yang dikontrol dalam "stres situasi ".
  • pengujian terus menerus berarti bahwa sistem tersebut dilakukan selama periode waktu yang panjang untuk menemukan "membahayakan" kesalahan.
  1. Testing SecuritySimak


 

isu-isu dalam kaitannya dengan "keamanan" karakteristik kualitas:

  • Kerahasiaan: Siapa yang dapat mengakses data yang? Siapa yang dapat mengubah dan menghapus data?
  • Otorisasi: Bagaimana dan di mana hak akses dikelola? Apakah data dienkripsi sama sekali? Bagaimana adalah data dienkripsi?
  • Otentikasi: Bagaimana otentikasi pengguna atau server sendiri?
  • Akuntabilitas: Bagaimana mengakses login?
  • Integritas: Bagaimana informasi yang dilindungi dari yang berubah selama transmisi?
  1. Test-driven DevelopmentSimak

Baca secara fonetik


 

Banyak tes unit kecil dapat bekerja sebagai kecil "detektor perubahan" selama proyek. pembangunan Test-driven memiliki efek psikologis yang menguntungkan; pengembang dapat berkonsentrasi langkah-langkah kecil dan menjaga tujuan yang lebih besar ("kode bersih yang bekerja") dalam pikiran.


 

  1. Test Automation

Berlaku khususnya untuk pengembangan berulang dan evolusioner aplikasi web di mana penggunaan alat terorganisasi dapat mendukung tes yang diulang
sering dalam siklus pengembangan jangka waktu pendek dan sempit.

  1. Benefits and Drawbacks of Automated Tests

Uji otomatisasi membawa manfaat berikut untuk pengujian aplikasi Web :

  • Menjalankan uji regresi otomatis pada versi baru dari sebuah aplikasi Web memungkinkan untuk mendeteksi cacat yang disebabkan oleh efek samping untuk fungsi tidak berubah. Tes ini membantu regresi melindungi fungsi yang ada sering berubah aplikasi Web.
  • Berbagai metode pengujian dan teknik akan sulit atau tidak mungkin untuk melakukan secara manual.
  • Otomatisasi memungkinkan untuk menjalankan tes lagi dalam waktu kurang dan, dengan demikian, untuk menjalankan tes lebih sering terkemuka untuk keyakinan yang lebih besar dalam sistem yang diuji.
  • Selain itu, kemampuan untuk dengan cepat menjalankan kembali serangkaian tes otomatis dapat membantu untuk mempersingkat pelaksanaan ujian waktu dan untuk mengurangi waktu-ke-pasar saat bottleneck adalah mengulangi tes yang ada.

Baca secara fonetik

  1. Test Tools

Alat uji Umum digunakan mendukung tugas-tugas berikut:

  • Test perencanaan dan manajemen.
  • Statis dan analisis dinamis
  • Mengotomasi percobaan pengguna.
  • Sistem pemantauan
  • General tugas
  1. Selecting Test Tools

Kecenderungan saat ini di alat uji untuk aplikasi Web adalah erat digabungkan dengan evolusi terus-menerus teknologi Web dan proses pembangunan modern. Sejumlah besar alat yang berbeda tersedia saat ini. Deskripsi alat khusus biasanya validitas pendek, sehingga mereka dihilangkan dari bab ini.

  • Perbedaan Pattern dan Framework
    • Pattern

Dalam rekayasa perangkat lunak, pola (pattern) adalah solusi umum untuk dapat digunakan kembali masalah yang biasa terjadi dalam desain perangkat lunak. Sebuah pola desain tidak desain jadi yang dapat diubah langsung ke kode. Ini adalah deskripsi atau template untuk bagaimana memecahkan masalah yang dapat digunakan dalam berbagai situasi. pola desain berorientasi objek biasanya menunjukkan hubungan dan interaksi antara kelas-kelas atau objek, tanpa menentukan kelas aplikasi akhir atau benda yang terlibat. Pola (pattern) berada dalam domain modul dan interkoneksi. Pada tingkat yang lebih tinggi ada pola arsitektur yang lebih besar dalam lingkup, biasanya menggambarkan pola keseluruhan diikuti oleh seluruh sistem.

  • Framework

Framework perangkat lunak didesain secara berorientasi objek sehingga desain dan programnya tersedia sebagai class-class abstract. Framework aplikasi mendefinisikan arsitektur aplikasi sehingga penambahan fungsi-fungsi lain dapat dilakukan dengan menambah modul-modul tanpa perlu memodifikasi kode program yang sudah ada (kecuali file-file konfigurasi).


 

  • MVC dan Struts
    • MVC

MVC
merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, user interface, dan bagian yang menjadi kontrol aplikasi. Terdapat 3 jenis komponen yang membangun suatu MVC pattern dalam suatu aplikasi yaitu :

  1. Model :  merepresentasikan data yang digunakan oleh aplikasi, dapat berhubungan dengan controller, tetapi tidak dapat berhubungan langsung dengan view.
  2. View : mengandung keseluruhan detail dari implementasi user interface.  Disini, komponen grafis menyediakan representasi proses internal aplikasi dan menuntun alur interaksi user terhadap aplikasi.  Pada suatu aplikasi web bagian ini biasanya berupa file template HTML, yang diatur oleh controller. View berfungsi untuk menerima dan merepresentasikan data kepada user. Bagian ini tidak memiliki akses langsung terhadap bagian model.
  3. Controller : merupakan bagian yang mengatur hubungan antara bagian model dan bagian view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan apa yang akan diproses oleh aplikasi.


 

  • Sruts

Struts adalah komponen struktural yang dirancang untuk melawan kompresi longitudinal. Struts menyediakan outwards-facing support, yang dapat digunakan untuk menjaga dua komponen lain yang terpisah, melakukan fungsi kebalikan dari tie. Mereka umumnya digunakan dalam arsitektur dan rekayasa, misalnya sebagai komponen automobile chassis, di mana mereka dapat kawat gigi pasif untuk memperkuat sasis dan / atau badan, atau komponen aktif suspensi.


 


 


 

  • Arsitektur dari CodeIgniter

CodeIgniter adalah sebuah framework yang bisa digunakan dalam pengembangan aplikasi dengan bahasa pemrograman PHP. CodeIgniter menerapkan pola disain ModelViewController untuk menangani HTTP Request yang dikirimkan user melalui Web browser. Software Architecture :

  • Model

Model, di dalam CodeIgniter, adalah data access layer.

<?php

class ContentModel extends Model {

function ContentModel() {

parent::Model();

$this>

load>

database();

}

function findAll() {

$rows = $this>

db>

get('CONTENT_TBL');

return $rows;

}


}

  • Controller

Controller berperan untuk menangkap HTTP REQUEST dari client, membaca

parameter yang dikirimkan, berinteraksi dengan Model, dan menyerahkan ke View

untuk menghasilkan User Interface.

<?php

class Content extends Controller {

function Content() {

parent::Controller();

$this>

load>

model('ContentModel');

}

function index() {

$rows = $this>

ContentModel>

findAll();

$data["rows"] = $rows;

$this>

load>

view('content/list', $data);

}


}

  • View

View berperan menghasilkan User Interface, seperti Form, List, dll.

<table>

<?php

foreach ($rows>

result() as $row) {

?>

<tr>

<td>

<?= $row>

TITLE ?>

</td>

<td>

<?= $row>

LATITUDE ?>

</td>

...

<?php

}

?>

</table>


 

  • Integrasi system dan Soa
    • Integrasi system

Untuk mengimplementasikan Docflow, yang harus dilakukan adalah dengan membangun penghubung (bridge) eNcyclo dengan eXpedition. Penghubung inilah yang diberi nama DM-WF bridge. Keuntungan dari DocFlow adalah:

•Dokumen dapat dikelola dengan lebih teratur, dalam 1 access point

•Workflow dapat dimanfaatkan untuk mengelola siklus hidup dokumen, misalnya dalam tahap pembuatan, revisi/versioning, publishing, penghapusan, pengarsipan, sehingga perubahan dokumen dapat dikontrol Integrasi eNcyclo dan eXpedition dilakukan dengan dua tahap, yaitu (i) tahap pendefinisian flow, dan (ii) tahap eksekusi atau penggunaan flow dalam operasional Docflow. Pada tahap pertama, kita definisikan PD (eBdesk eXpedition Process Definition) untuk approval dokumen draft. PD ini mendefinisikan bagaimana urutan langkah (aktivitas) dan siapa yang berhak melakukan hingga dokumen memperoleh approval. PD yang terdefinisi dapat langsung di-upload ke WF (Design) Engines sehingga siap digunakan.


 


 

  • SOA

Service Oriented Architecture adalah suatu gaya arstektural dimana terdiri dari service-service dari basic unit aplikasi software yang berdiri sendiri dan meng-automasi satu atau lebih bisnis proses , dan dapat meningkatkan interoperabilitas yakni pertukaran informasi maupun reusability.

Esensi utama dari Service-Oriented Architecture adalah kolaborasi service dalam skala dunia dimana dipublikasikan untuk mengantarkan agilitas bisnis dan fleksibilitas IT. Tujuan ini dapat dicapai tidak hanya mengkaji arsitektur service dari sisi teknologi perspektif maupun protokol web service saja, tetapi juga membutuhkan kreasi dari SOE Service Oriented Environment.


 

Selasa, 26 Oktober 2010

PROCESS STATES DAN THREAD STATES



  • PROCES STATES

Gambar 1. Diagram Alir Process States

Sebuah proses adalah sebuah peristiwa adanya sebuah proses yang dapat dieksekusi. Sebagai sebuah eksekusi proses, maka hal tersebut membutuhkan perubahan keadaan. Keadaan dari sebuah proses dapat didefinisikan oleh aktivitas proses tertentu tersebut. Setiap proses mungkin menjadi satu dari beberapa state berikut, antara lain: new, ready, running, waiting, atau terminated. Saat-saat proses dijalankan (executed) maka status dari proses akan berubah.

· - Status proses tidak selamanya aktif (menggunakan CPU).

· - Sering proses menunggu I/O complete => status wait, sebaiknya CPU diberikan kepada proses yang lain.

· - Mendukung multi-tasking – utilisasi CPU dan I/O


  • THREAD STATES

Gambar 2. Diagram Alir Thread States

Thread adalah sebuah alur kontrol dari sebuah proses. Suatu thread (or lightweight process) adalah unit dasar untuk menggunakan resources CPU:

· - program counter

· - register set

· - stack space

Umumnya thread dapat melakukan sharing dengan thread lain informasi/data lain yang diperlukan:

· - code section

· - data section

· - operating-system resources: memory dan file