Software Testing

Presentation are communication tools that can be used to as demo

Halo sahabat Akhdani, tulisan kali ini membahas tentang Software Testing dari buku Software Engineering – Ian Sommerville.

Software testing adalah proses pengujian pada perangkat lunak yang bertujuan untuk memastikan aplikasi yang dibangun sesuai dengan kebutuhan klien dan untuk menemukan cacat fitur sebelum aplikasi digunakan.

Proses pengujian dilakukan dengan dua pendekatan. Yang pertama adalah pengujian validasi yaitu melakukan pengujian menggunakan serangkaian test case untuk memastikan sistem bekerja dengan baik dan sesuai dengan kebutuhan yang tercantum dalam dokumen requirement. Yang kedua adalah melakukan pengujian untuk menemukan cacat (bug) menggunakan serangkaian test case dan data dummy yang sengaja dibuat untuk menghasilkan sistem agar berjalan dengan tidak semestinya. Selanjutnya hasil pengujian ditunjukkan kepada tim pengembang dan klien.

Pengujian juga merupakan bagian dari proses verifikasi dan validasi perangkat lunak. Proses ini bertujuan untuk membangun keyakinan bahwa sistem perangkat lunak “sesuai dengan tujuannya.” Artinya, sistem tersebut harus cukup baik untuk tujuan penggunaannya, dan sudah memenuhi spesifikasi dan memberikan fungsionalitas sesuai yang diharapkan.

A. Development Testing
Development testing merupakan keseluruhan aktivitas pengujian yang dilakukan oleh tim yang sedang membangun sistem. Pengujian biasanya dilakukan oleh programmer yang membuat software, namun bisa juga programmer memiliki pasangan penguji yang membantu dan mengembangkan proses pengujian. Untuk sistem yang critical dan proses yang lebih formal, dapat dibuat kelompok pengujian (tim tester) terpisah dalam tim pengembangan. Kelompok ini bertanggung jawab untuk mengembangkan pengujian dan memelihara catatan ricin hasil pengujian.
Pengujian dalam pengembangan aplikasi terdiri dari beberapa tahap pengujian berikut:
1. Unit testing adalah proses pengujian komponen aplikasi yang paling sederhana, seperti function, method atau object class yang ada di dalamnya. Pertama-tama penguji harus merancang test case pengujian dan mengelompokkan test case menjadi  positive test case dan negative test case untuk setiap method. Pemilihan atau pengelompokan unit test cases ini dilakukan untuk mengefektifkan proses pengujian.
2. Component testing merupakan pengujian dari beberapa objek yang saling berinteraksi. Component testing ini difokuskan pada komponen antarmuka.
3. System testing adalah pengujian yang memeriksa seluruh komponen sistem yang sudah terintegrasi, pada pengujian ini dipastikan apakah interaksi pada sistem sudah berjalan dengan baik.

B. Test Driven Development
Test Driven Development (TDD) merupakan suatu pendekatan pengembangan aplikasi yang mengacu pada pengujian sebelum melakukan proses coding. Pengembangan berbasis pengujian ini merupakan pendekatan yang banyak digunakan karena dianggap lebih produktif untuk mengembangkan perangkat lunak. Berikut ini gambaran langkah-langkah proses TDD:

Proses TDD
Gambar: Proses TDD

Keuntungan dari penggunaan TDD yaitu:
– Mengurangi biaya produksi pembangunan perangkat lunak.
– Rangkaian regression test terus dikembangkan secara bertahap seiring dengan pengembangan kode program.
– Menyederhanakan proses debug, ketika pengujian gagal maka letak masalah akan terlihat jelas.
– Tes yang dibuat merupakan dokumentasi sistem yang dideskripsikan dalam bentuk kode, sehingga memudahkan proses pembuatan dokumentasi.

C. Release Testing
Pengujian ini dilakukan untuk memastikan bahwa sistem sudah cukup baik untuk digunakan dari segi fungsionalitas, kinerja, dan keandalan sistem. Pada pengujian ini dilakukan requirement-based testing yaitu memeriksa setiap persyaratan untuk mengembangkan pengujian sertam pembuatan test case dan test scenario.
Setelah sistem terintegrasi sepenuhnya, di tahap ini dilakukan performace test dengan menjalankan serangkai pengujian peningkatan bebanpada aplikasi untuk melihat kegagalan yang terjadi pada aplikasi. Contohnya yaitu pengujian pada suatu aplikasi yang bisa memproses 300 transaksi per detik, lalu dilakukan pengujian lebih dari 300 transaki per detik hingga melampaui beban desain maksimum sistem dan sistem gagal. Jika sistem berjalan dengan baik sampai batas transaksi sesuai dengan kebutuhan sistem, maka aplikasi dinyatakan lulus pengujian.

D. User Testing
User testing merupakan tahapan proses pengujian dimana pengguna atau klien memberikan masukan dan saran terhadap pengujian sistem. User testing terdiri dari beberapa jenis, sebagai berikut:
1. Alpha testing, pengujian yang dilakukan oleh tim pengembang di lingkup internal.
2. Beta testing, pengujian yang dilakukan oleh tim pengembang bersaam dengan end user sebelum aplikasi resmi dirilis.
3. Acceptance testing, klien menguji aplikasi unutk memutuskan apakah aplikasi sudah sesuai dan siap diterima atau tidak diterapkan di lingkungan klien.
Berikut ini gambaran proses acceptance testing:

acrobat_twxnwq1its
Gambar: Acceptance testing process

Software Engineering #Chapter 22 : Project Management – Risk Management

risk_management-removebg-preview

 

Hallo teman-teman Akhdani, aku mau sedikit sharing nih dari buku yang udah aku baca

Apa itu Project Management?
Project Management adalah metode penyelesaian proyek dengan melakukan proses initiating, planning, executing, control and monitoring, hingga closing untuk mencapai output/tujuan yang sudah ditentukan.

Dalam pengelolaan proyek dapat mengikuti panduan dari PMBOK Guide 4th Edition yang salah satu isinya ada Risk Management.

Apa itu Risk Management?

Risk Management adalah salah satu pekerjaan terpenting seorang Project Manager yang memikirkan kemungkinan terjadinya risiko dan konsekuensinya terhadap proyek. Risk Management dapat mengantisipasi risiko yang mungkin mempengaruhi jadwal proyek atau kualitas software yang sedang dikembangkan, kemudian mengambil tindakan untuk menghindari risiko tersebut.

Beberapa tahapan yang dapat dilakukan:

screenshot-2023-10-30-105801

  1. Risk Identification
    Pada tahapan ini tim berkumpul untuk bertukar pikiran mengenai kemungkinan risiko yang terjadi sehingga project manager dapat mengidentifikasi risiko berdasarkan pengalaman pada proyek sebelumnya.
    Sebagai titik awal untuk identifikasi risiko, ada 6 (enam) jenis risiko yang dapat dimasukkan dalam daftar risiko:
    a. Estimation
    b. Organizational
    c. People
    d. Requirements
    e. Technology
    f. Tools
  2. Risk Analysis
    Pada tahapan ini project manager harus mempertimbangkan setiap risiko yang teridentifikasi dan mengambil tindakan penilaian tentang kemungkinan dan keseriusan risiko tersebut. Project manager tidak mungkin membuat penilaian numerik yang tepat mengenai probabilitas dan keseriusan setiap risiko, sehingga dapat dilakukan penilaian dengan cara berikut ini:
    a. Kemungkinan risiko dapat dinilai sebagai tidak signifikan (rendah, sedang, tinggi, atau sangat tinggi).
    b. Dampak risiko dapat dinilai sebagai bencana besar (mengancam kelangsungan hidup proyek), serius (akan menyebabkan penundaan besar), dapat ditoleransi (keterlambatan akan terjadi kontingensi yang diperbolehkan), atau tidak signifikan.
  3. Risk Planning
    Pada tahapan ini project manager mengembangkan strategi untuk mengelola risiko-risiko utama yang mengancam proyek. Untuk setiap risiko, project manager harus memikirkan tindakan yang memungkinkan dalam meminimalisir gangguan terhadap proyek jika masalah yang diidentifikasi dalam risiko tersebut terjadi.
  4. Risk Monitoring
    Pada tahapan ini project manager harus memantau risiko secara teratur di semua tahapan proyek, mempertimbangkan dan mendiskusikan setiap risiko utama secara terpisah, memutuskan apakah risiko tersebut lebih besar atau lebih kecil kemungkinannya untuk timbul dan apakah konsekuensi risiko telah berubah.

Sehingga dapat disimpulkan untuk pengajuan proposal manajemen proyek bagian Risk Management tertulis seperti berikut ini: 

421315

Mengenal Business Intelligence

Cover BI

Halo Sobat Akhdani! Di era teknologi saat ini, para pelaku usaha mulai menggunakan Businesss Intelligence sebagai tools untuk memonitoring performa bisnisnya. Secara umum, Businesss Intelligence dapat membantu mengumpulkan informasi dari berbagai sumber, yang kemudian disimpan, diolah dan diproses menjadi data visual. Untuk mengenal lebih dalam apa itu BI dan bagaimana cara kerjanya, mari simak artikel berikut ini!

Apa itu Business Intelligence?

Business Intelligence merupakan bentuk pengolahan data menggunakan model matematis dan analitis yang kemudian akan menghasilkan informasi untuk memudahkan perusahaan dalam pengambilan keputusan pada proses bisnis yang dijalankan.

Dalam artian lain, BI dapat membantu perusahaan melihat secara rinci dan real-time kondisi bisnis yang sedang berjalan saat ini, apakah sedang mengalami penurunan, peningkatan, atau bahkan stagnan. BI juga dapat membantu menyajikan informasi secara lebih ringkas, sehingga perusahaan dapat mengambil langkah lebih cepat dan tepat untuk perencanaan bisnis kedepannya.

BI

Komponen Business Intelligence

Business Intelligence terdiri atas beberapa komponen pembentuk, antara lain:

  • OLAP (On-line Analytical Processing)

OLAP melakukan query data dari berbagai sumber untuk menghasilkan berbagai sudut pandang. Dengan kata lain, BI menggunakan OLAP untuk menggabungkan dan mengelompokkan data ke dalam beberapa kategori untuk memberikan informasi yang lebih ringkas dalam bentuk pelaporan, analisis, pemodelan, dan perencanaan. Beberapa operasi OLAP yang digunakan adalah roll up, drill down, slice and dice, dan pivot.

  • Analisis lanjutan

BI menerapkan teknik machine learning, otomasi proses bisnis, teknik statistik tren, mengenali pola, karakteristik, serta menganalisa anomali dari berbagai sumber data.

  • Manajemen Kinerja Perusahaan

Peran utama BI adalah integrasi dari beberapa data untuk menghasilkan informasi kinerja bisnis. Dalam komponen ini, BI berperan untuk meningkatkan kinerja perusahaan dengan melacak fluktuasi pasar, menganalisis tren jangka pendek dan jangka panjang, serta menciptakan peluang investasi

Cara kerja Business Intelligence

Untuk menghasilkan sebuah data visual berbentuk laporan, BI perlu melewati beberapa proses seperti pengumpulan data, pemrosesan dan penyimpanan data, serta analisis dan penyajian.

konsep BI

Sumber: Pengantar BI dalam Bisnis

  • Pengumpulan data

Pada tahapan ini, BI akan melakukan ekstraksi pada data-data “mentah” yang telah tercatat pada database, seperti data penjualan, laporan laba rugi, penggajian, dan lain-lain sebelum disimpan dan diintegrasikan antar satu dengan yang lain.

  • Penyimpanan pada Data Warehouse

Data mentah yang telah dikumpulkan berikutnya akan disimpan dalam bentuk Data Warehouse untuk dilakukan proses integrasi dari beragam database yang ada.

  • Akses dan Analisis Data

Setelah proses integrasi data, peran BI berikutnya adalah mengakses informasi dari Data Warehouse untuk kemudian dianalisa dan diinterpretasikan dalam bentuk tren, pola, dan menyajikannya dengan bentuk yang lebih ringkas.

  • Pembuatan Laporan

Dari hasil analisa dan interpretasi data tersebut, dilakukan proses pembuatan laporan yang nantinya akan menampilkan data visual beserta informasi pendukung agar pengguna dapat lebih mudah memahami data yang telah diolah.

Aplikasi Business Intelligence

Nah, berikut ini terdapat beberapa rekomendasi aplikasi yang dapat mendukung penerapan Business Intelligence, antara lain:

  1. Microsoft Power BI
  2. Tableau
  3. Oracle BI

 


Referensi:
Business Intelegent (Pengantar Business Intelligence dalam Bisnis)
PT. Sonpedia Publishing Indonesia
Bagian 1 - Pengenalan dan Konsep Dasar Business Intellegence

Keterkaitan Sistem Failover dengan Downtime Disaster Recovery Planing

hallo – hallo Sahabat Akhdani, aku mau sedikit sharing nih dari jurnal yang udah aku baca

Apa itu Disaster Recovery Planning??

Disaster Recovery Planning  itu adalah perencanaan untuk pengelolaan secara rasional dan cost-effective bencana terhadap sistem informasi yang akan dan telah terjadi. 

Apa itu Failover??

Failover itu adalah sebuah metode operasional backup yang dijalankan secara otomatis. Kondisi sistem yang digunakan untuk failover harus dalam posisi standby baik itu database, server ataupun jaringan. Dalam proses kerjanya failover system akan bekerja secara smooth berdasarkan permintaan yang muncul setelah diterima indikasi – indikasi sistem utama mengalami downtime.

Jadi, apa hubungannya data dengan Disaster Recovery Planning  dan Failover??

Data tidak hanya digunakan sebagai media untuk pertukaran informasi melainkan juga sebagai alat komunikasi antar perangkat yang sudah diintegrasikan. Data menjadi kebutuhan yang penting, tidak terbayangkan bagaimana data hilang atau tidak dapat diakses lagi. Beberapa sebab data tidak dapat diakses seperti data corrupt atau bisa juga data mengalami gangguan saat akan diakses, akses gangguan bisa berasal dari koneksi jaringan bisa juga berasal dari server dari data tersebut. Bahaya yang paling besar adalah bencana. Jika bencana tersebut terjadi menyebabkan banyak data hilang, maka dari itulah Disaster Recovery Planning diperlukan. Waktu downtime menjadi penentu apakah suatu DRP efektif atau tidak. Sehingga waktu downtime permasalahan ketersediaan data server erat kaitannya dengan high availability  dengan protokol heartbeat

Protokol heartbeat digunakan untuk sistem failover dari server web server. Selain failover web server, proses backup dan restore database server melibatkan backup dari database server utama, untuk restore akan menggunakan differential backup. Sinkronisasi server dilakukan dengan rsync. Perintah rsync dikombinasikan dengan crontab untuk proses penjadwalan sedangkan proses restore pada server backup bergantung pada waktu pemindahan data dari server utama dan proses backup pada server utama itu sendiri. Hasil pengujian menunjukkan bahwa sinergi dari sistem failover dan replikasi server mereduksi waktu downtime untuk link server efektif diterapkan pada suatu DRP dengan mereduksi waktu downtime jika dibandingkan dengan DRP yang dilakukan secara manual.

Downtime artinya erat kaitannya dengan ketersedian website yang selalu dapat diakses kapanpun dan dimanapun, sangat beresiko jika website tersebut mengalami error atau tidak dapat diakses ini lah fungsi dari high availability yang perlu ada pada system dari website tersebut. Proses backup ataupun restore pada suatu database sudah wajar dilakukan, baik untuk keperluan pemindahan database, untuk update aplikasi, untuk migrasi server, ataupun pengambilan data agar tidak mengganggu proses yang ada di suatu perusahaan.

Database memiliki beberapa jenis, seperti MySQL, MSSQL, Postgree, Oracle Database, sedangkan layanan cloud juga saat ini telah banyak tersedia contohnya Microsoft Azure dan Amazon Web Service (AWS). Selain backup otomatis juga tidak lupa ada fitur backup manual yang bisa dilakukan dengan mengakses menu task selanjutnya pilih backup atau restore. Pada backup database SQL server ini bisa dilakukan back up full artinya backup dilakukan dengan membackup seluruh data yang ada mulai dari database di inisialisasi sedangkan terdapat differential/incremental backup dimana backup ini hanya meliputi tambahan data dari database tersebut. Kedua metode backup database ini sudah meliputi transaksi dan juga log pada database yang akan di backup. Berikut adalah gambar detail backup database server.

diagram-tanpa-judul-drawio-1

 

 

Referensi :A.P. Wahyu Ari Yuliono, " Sinergi Replikasi Server dan Ssitem Failover pada Datavase untuk Mereduksi Downtime Disaster REcovery Plning ( DRO)," Journal of Informatics and Computer Science, vol.03,2021

Meningkatkan User Interface dan User Experience (UI/UX) melalui Pendekatan Berbasis Pengguna

user-1

Pengembangan aplikasi yang sukses tidak hanya bergantung pada teknologi canggih, tetapi juga pada kemampuan untuk memahami, menghormati, dan memenuhi kebutuhan pengguna. Salah satu pendekatan yang fading efektif dalam mencapai tujuan ini adalah Metode User Centered Design( UCD). UCD adalah kerangka kerja yang difokuskan pada pengguna dalam pengembangan tampilan antarmuka aplikasi. Pada kesempatan kali ini ARS Mania akan membahas tentang metode UCD dan mengapa ini sangat penting dalam menciptakan aplikasi yang sukses.

Berdasarkan penelitian yang dilakukan oleh (Kaligis & Fatri, 2020), berikut adalah penjelasan mengenai User Centered Design (UCD).

Apa Itu User Centered Design?

Menurut ISO 9241- 210 yang mengatur tentang Prinsip- prinsip Ergonomi Antarmuka Manusia Sistem Interaktif, metode UCD merupakan pendekatan dalam pengembangan sistem secara interaktif dengan tujuan untuk mengembangkan sistem yang berguna bagi penggunanya. UCD menempatkan pengguna sebagai pusat dari proses desain, dan berfokus pada pemahaman mendalam tentang kebutuhan, dan pengalaman pengguna. Pada metode pengembangan aplikasi, UCD diterapkan pada tahap perencanaan, perancangan, dan pengujian.

Tahapan Metode User Centered Design

the-user-centred-design-process-according-to-iso-9241-21020101. Understand and Specify the Context of Use (Memahami dan Menentukan Konteks Penggunaan)

Pada tahapan ini kita melakukan identifikasi yang berfokus pada kondisi siapa yang akan menggunakan sistem, di mana mereka akan menggunakannya dan apa yang menjadi alasan pengguna menggunakan sistem. Kita mencoba memahami apa yang mereka butuhkan dari sistem tersebut

2. Specify the User Requirements (Menentukan Kebutuhan Pengguna)

Setelah kita tahu siapa pengguna, di mana sistem akan digunakan, dan mengapa pengguna menggunakan sistem, kita menuliskan dengan jelas apa yang pengguna butuhkan dari sistem ini. Kita menentukan apa tugas yang harus mereka lakukan dan apa keinginan mereka.

3. Produce Design Solutions to Meet User Requirements (Menghasilkan Solusi Desain yang Memenuhi Kebutuhan Pengguna)

Dalam tahap ini, kita mulai membuat desain sistem. Desain ini harus mencakup antarmuka yang memudahkan pengguna untuk mengoperasikan sistem dan mencapai tujuan mereka. Pada tahapan ini juga kita berfokus pada untuk meningkatkan user experinece.

4. Evaluate the Design Against Requirements (Evaluasi Desain Berdasarkan Kebutuhan)

Setelah desain dibuat, kita menguji desain ini dengan pengguna. Pengguna mencoba sistem dan memberikan masukan atau feedback. Dari masukan tersebut akan dilakukan perbaikan secara berulang hingga memenuhi ekspektasi pengguna, karena pada metode ini berjalan secara iteratif.

Kesimpulan

Metode User-Centered Design (UCD) adalah pendekatan yang kritis dalam pengembangan aplikasi yang bertujuan untuk meningkatkan pengalaman pengguna. Dengan memahami dan memenuhi kebutuhan pengguna, aplikasi dapat menjadi lebih efisien, efektif, dan memuaskan. UCD membantu mengurangi risiko kesalahan desain dan meningkatkan peluang kesuksesan aplikasi. Oleh karena itu, pengguna seharusnya selalu menjadi fokus utama dalam pengembangan aplikasi yang sukses.

Referensi : 
¹Kaligis, D.L. & Fatri R.R. (2020). Pengembangan Tampilan Antar Muka Aplikasi Survei Berbasis Web Dengan Metode User Centered Design. Jurnal Sistem Informasi, Teknologi Informatika dan Komputer, Vol 10. No 2, Hal 106-114.
²Saputri, I.S.Y. Fadhli, M. & Surya, I. (2017). Penerapan Metode UCD (User Centered Design) pada E-Commerce Putri Intan Shop Berbasis Web. Jurnal Nasional Teknologi dan Sistem Informasi. Vol 03. No 02. 269-278.