Artikel berikut merupakan lanjutan dari artikel Software Engineering : Design Engineering – WebApps Design (Part 2)

5. Testing Web Application
Testing adalah proses menggunakan dengan perangkat lunak dengan niat menemukan dan memperbaiki kesalahan. Teknik mendasar ini memang demikian tidak berubah untuk WebApps. Bahkan, karena sistem dan aplikasi berbasis web berada pada jaringan dan beroeprasi dengan banyak sistem operasi, browser, platform hardware, dan protokol komunikasi, pencarian kesalahan mewakili tantangan signifikan bagi para insinyur Web.

Pendekatan untuk testing WebApp mengadopsi prinsip-prinsip dasar untuk semua pengujian perangkat lunak dan menerapkan strategi dan taktik yang telah direkomendasikan untuk sistem object-oriented . Langkah-langkah yang dilakukan mencakup:

  • Model konten untuk WebApp diulas kembali untuk menemukan kesalahan
    Kesalahan yang dimaksud bisa berupa kesalahan ketik, kesalahan tata bahasa, kesalahan dalam konsistensi, kesalahan dalam representasi grafis, dan kesalahan referensi
  • Model desain untuk WebApp diulas untuk menemukan masalah navigasi
    Use-case, diturunkan sebagai bagian dari kegiatan analisis, memungkinkan seorang web engineer untuk menguji setiap skenario penggunaan terhadap arsitektur dan rancangan navigasi
  • Processing components terpilih dan halaman web akan diuji
    Pengujian dilakukan secara spesifik untuk komponen tertentu saja karena biasanya tidak praktis untuk menguji setiap karakteristik dari WebApp satu persatu.
  • Arsitektur akan dibangun dan uji integrasi dilakukan
    Strategi uji integrasi disesuaikan dengan arsitektur yang sudah dipilih. WebApp yang didesain secara linear, grid atau struktur hirarki akan menggunakan pengujian yang berbeda dengan WebApp dengan desain hirarki campuran atau struktur jaringan.
  • WebApp yang sudah jadi diuji secara keseluruhan, pada aspek kegunaan dan penyampaian konten
    Seperti validasi konvensional, validasi sistem dan aplikasi berbasis Web berfokus pada tindakan yang dapat dilihat pengguna dan dikenali oleh pengguna output dari sistem
  • WebApp diimplementasikan dalam berbagai lingkungan berbeda dan diuji untuk kompatibilitas dengan setiap konfigurasi
    WebApp diuji pada operating systems, browser, platform hardware, dan protokol komunikasi yang berbeda-beda demi memastikan kompatibilitas dari WebApp menjadi maksimal
  • WebApp diuji oleh end-user yang terkontrol
    Testing dilakukan oleh populasi user yang memiliki setiap kemungkinan dari peran yang ada sebagai pengguna WebApp. WebApp akan dievaluasi untuk kesalahan konten dan navigasi, masalah kegunaan, masalah kompatibilitas, dan kehandalan dan kinerja WebApp.

6. Masalah Manajemen

Pembuatan Web adalah kegiatan teknis yang rumit. Banyak orang terlibat, seringkali bekerja secara paralel. Campuran dari tugas teknis dan nonteknis yang harus sesuai (tepat waktu dan sesuai anggaran) untuk menghasilkan WebApp berkualitas tinggi merupakan tantangan bagi setiap kelompok profesional. Untuk menghindari kebingungan, dan kegagalan, perencanaan harus ada, risiko harus dipertimbangkan, jadwal harus ditetapkan dan dilacak, dan kontrol harus ditentukan. Ini adalah kegiatan inti yang kami sebut manajemen proyek.

  • WebE Team
    Keterampilan yang harus didistribusikan di seluruh anggota tim WebE adalah Software Engineering berbasis komponen, jaringan, desain arsitektur dan navigasi, standar / bahasa Internet, desain antarmuka manusia, desain grafis, tata letak konten, dan pengujian WebApp. Role :
  1. Content developer and providers : satu tim WebE harus fokus pada pembuatan atau pengumpulan konten. Karena konten mencakup beragam objek data, pengembang dan penyedia konten dapat berasal dari latar belakang (non-software) yang beragam.
  2. Web publisher : konten yang dihasilkan oleh content developer and providers harus diatur untuk dimasukkan dalam WebApp. Web publisher harus bertindak sebagai penghubung antara staf teknis yang membuat WebApp dan Content developer and providers nonteknis.Web Publisher harus memahami konten dan teknologi WebApp termasuk HTML (atau ekstensi generasi berikutnya, seperti XML), fungsionalitas basis data, skrip, dan navigasi situs Web umum.
  3. Web engineer : Web engineer bertugas dalam persyaratan persyaratan; pemodelan analisis; desain arsitektur, navigasi, dan antarmuka; Implementasi WebApp; dan pengujian.Web engineer juga harus memiliki pemahaman yang kuat tentang teknologi komponen, arsitektur klien / server, HTML / XML, dan teknologi basis data serta pengetahuan tentang konsep multi-media, platform perangkat keras / perangkat lunak, keamanan jaringan, dan dukungan situs Web masalah.
  4. Support specialist : Support specialist bertanggung jawab atas koreksi, adaptasi, dan peningkatan ke situs, termasuk pembaruan konten, penerapan prosedur dan formulir baru, dan perubahan pada pola navigasi.
  5. Administrator : Webmaster. Administrator bertanggung jaawab atas pengembangan dan implementasi kebijakan untuk pengoperasian WebApp, pembentukan prosedur dukungan dan feedback, implementasi prosedur keamanan dan hak akses, pengukuran dan analisis lalu lintas situs Web, koordinasi prosedur kontrol perubahan ,dan koordinasi dengan spesialis dukungan.
  • Project Management
    Pada project management metrik proses dan proyek, perencanaan proyek (dan estimasi), analisis dan manajemen risiko, penjadwalan dan pelacakan, SQA dan SCM semuanya dipertimbangkan secara rinci. Pertama, sebagian besar dari webapps di outsource ke vendor yang ahli dalam pengembangan sistem dan aplikasi berbasis internet. Kedua, pengembangan WebApp adalah area aplikasi yang relatif baru dan ada sedikit data historis yang akan digunakan untuk estimasi. Ketiga, estimasi, analisis risiko, dan penjadwalan semuanya didasarkan pada pemahaman yang jelas tentang ruang lingkup proyek.            Guidelines :
  1. Initiating a project
    Tugas yang harus dilakukan sebelum mencari vendor outsourcing:
  1. Semua analysis yang ada pada subbab 3 harus dilakukan secara internal.
  2. Desain mentah untuk WebApp harus dihasilkan secara internal.
  3. Jadwal proyek yang belum fix, termasuk tidak hanya tanggal pengiriman akhir tetapi juga tanggal pencapaian, harus ada.
  4. Tingkat pengawasan dan interaksi oleh kontraktor dengan vendor harus diidentifikasi.

Semua informasi yang dihasilkan selama langkah-langkah ini harus disusun menjadi permintaan penawaran yang dikirimkan ke calon vendor.

  1. Selection of candidate outsourcing vendors
    Dalam memilih Web developer, kontraktor harus melakukan test:
  2. Mewawancarai klien sebelumnya untuk menentukan profesionalisme vendor Web, kemampuan untuk memenuhi komitmen jadwal dan biaya, dan kemampuan untuk berkomunikasi secara efektif .
  3. Menentukan nama chief engineer vendor untuk proyek yang sukses di masa lalu (dan, kemudian, pastikan bahwa orang ini berkewajiban secara kontrak untuk terlibat dalam proyek Anda)
  4. Memeriksa sampel karya vendor yang memiliki tampilan dan nuansa (dan area bisnis) yang serupa dengan WebApp yang akan dikontrak. Bahkan sebelum permintaan penawaran ditawarkan, pertemuan dengan tatap muka dapat memberikan kesan substansial tentang “kecocokan” antara kontraktor dan vendor.

3. Assessing the validity of price quotes and the reliability of estimates
Pertanyaan yang penting untuk ditanyakan :

  1. Apakah biaya yang ditawarkan dari WebApp memberikan pengembalian investasi langsung atau tidak langsung yang baik untuk proyek?
  2. Apakah vendor yang memberikan penawaran menunjukkan profesionalisme dan pengalaman yang kami butuhkan?
  3. The degree of project management you can expect or perform
    Formalitas yang terkait dengan tugas manajemen proyek berbanding lurus dengan ukuran, biaya, dan kompleksitas WebApp. Vendor dan kontraktor harus menilai risiko bersama dan membuat rencana untuk mengurangi, memantau, dan mengelola risiko-risiko yang dianggap penting. Mekanisme untuk jaminan kualitas dan kontrol perubahan harus secara eksplisit didefinisikan secara tertulis.
  1. Assessing the development schedule
    Karena jadwal pengembangan WebApp mencakup periode waktu yang relatif singkat (seringkali kurang dari satu atau dua bulan), tugas kerja dan perubahan/update kecil harus dijadwalkan pada jadwal harian. Hal ini memungkinkan kontraktor dan vendor untuk mengenali selisih jadwal sebelum deadline yang sudah ditentukan.
  2. Managing scope
    Scope dapat berubah ketika proyek WebApp dikerjakan, maka model proses WebE harus bertahap. Ini memungkinkan tim development untuk “freeze” scope untuk satu increment sehingga WebApp operasional dapat dibuat. Tahapan berikutnya dapat mengatasi perubahan scope yang disarankan oleh peninjauan increment sebelumnya, tetapi begitu increment kedua dimulai, scope kembali dibekukan sementara. Pendekatan ini memungkinkan tim WebApp untuk bekerja tanpa harus mengakomodasi perubahan yang berkelanjutan tetapi tetap mengerti karakteristik evolusi berkelanjutan dari sebagian besar WebApps.
  • SCM Issues for WebE

            WebApps sudah berevolusi dari hanya platform untuk pemberian informasi menjadi platform canggih seperti e-commerce. Karena itu, diperlukan kendali konfigurasi perkembangannya, sebab jika tidak, maka akan terjadi update/perubahan yang tidak diinginkan, seperti posting product yang tidak terotorisasi, error karena kurangnya testing, dan security holes.

            Dalam proses Software Configuration Management (SCM) untuk WebApps, diperlukan konsiderasi untuk 4 isu:

  • Content
    Karena isi content dari WebApps banyak, maka diperlukan kemampuan untuk mengorganisir content tersebut menjadi suatu set objek konfigurasi. Sebagai contoh adalah menggolongkan content berdasarkan longevity atau seberapa permanen konten tersebut. Jika konten merupakan konten yang diubah per jam, maka diperlukan mekanisme kontrol yang berbeda dan yang permanen.
  • People
    Semua orang dapat membuat konten di web, bahkan banyak yang tidak memiliki background software engineering, sehingga tidak sadar pentingnya configuration management, sehingga aplikasi berkembang tanpa kontrol.
  • Scalability
    Semakin besar aplikasi, jika tidak ada kontrol konfigurasi yang baik, maka perubahan yang kecil saja akan membuat efek yang tidak diinginkan dan membuat masalah. Maka kontrol konfigurasi harus sesuai dengan ukuran dari aplikasi.
  • Politic
    Terdapat pertanyaan yang diargumenkan oleh perusahaan, dan jawabannya sangat berpengaruh dalam proses manajemen dan pengontrolan aktivitas yang berhubungan dan WebE, yaitu siapa yang “memiliki” WebApp? Jawaban dari pertanyaan ini bisa membantu orang dalam organisasi yang harus mengadopsi proses konfigurasi manajemen untuk WebApps.

    Proses SCM konvensional jika diterapkan di WebApps mungkin menjadi sangat rumit. Banyak alat SCM yang kekurangan fitur untuk membuat mereka cocok untuk WebE.

7. Rangkuman

Dampak dari sistem dan aplikasi berbasis web bisa dibilang yang paling signifikan peristiwa dalam sejarah komputasi. Saat WebApps semakin penting,  Pendekatan rekayasa web yang disiplin berdasarkan pada prinsip, konsep, proses, dan metode yang telah dikembangkan untuk rekayasa perangkat lunak telah mulai berkembang.

WebApps berbeda dari kategori perangkat lunak komputer lainnya. Mereka adalah jaringan intensif, didorong oleh konten, dan terus berkembang. Keaktifan yang mendorong perkembangan dan kebutuhan utama akan keamanan dalam operasi WebApp itu sendiri.

Tiga teknologi pengembangan berbasis komponen, keamanan, dan bahasa markup standar internet terintegrasi dengan teknologi  perangkat lunak yang lebih konvensional selama pengembangan WebApp.  Proses rekayasa Web dimulai dengan formulasi merupakan suatu kegiatan yang mengidentifikasi tujuan dan sasaran dari WebApp. Perencanaan memperkirakan biaya proyek keseluruhan, mengevaluasi risiko yang terkait dengan upaya pengembangan, dan menentukan jadwal pengembangan.

Analisis menetapkan persyaratan teknis untuk WebApp dan mengidentifikasi item konten yang akan dimasukkan. Kegiatan rekayasa menggabungkan dua tugas paralel: desain konten dan desain teknis. Pembuatan halaman adalah konstruksi aktivitas yang banyak menggunakan alat otomatis untuk pembuatan WebApp dan pengujian latihan navigasi WebApp, berusaha mencari kesalahan dalam fungsi dan konten, sambil memastikan bahwa WebApp akan beroperasi dengan benar di lingkungan yang berbeda. Web, rekayasa menggunakan model proses iteratif, penambahan karena pengembangan garis waktu untuk WebApps sangat singkat. Kegiatan payung diterapkan selama pekerjaan rekayasa perangkat lunak adalah SQA, SCM, dan manajemen proyek yang berlaku untuk semua proyek Web.

Referensi

Pressman, R.S. (2015). Software Engineering : A Practioner’s  Approach. 8th ed. McGraw-Hill Companies.Inc, Americas, New York.  ISBN : 978 1 259 253157

Author : Theodorus Nathaniel Kurniawan
Supervised by : Irma Kartika Wairooy, S.Kom., M.T.I