Recovery Testing adalah teknik pengujian perangkat lunak yang memverifikasi kemampuan
perangkat lunak untuk pulih dari kegagalan seperti perangkat lunak/hardware crash, kegagalan
jaringan, dll. Tujuan Pengujian Pemulihan adalah untuk menentukan apakah operasi perangkat
lunak dapat dilanjutkan setelah bencana atau kehilangan integritas. Pengujian pemulihan
melibatkan pengembalian kembali perangkat lunak ke titik di mana integritas diketahui dan
pemrosesan ulang transaksi ke titik kegagalan.
Contoh Pengujian Pemulihan
Saat aplikasi menerima data dari jaringan, cabut kabel penghubung.
Setelah beberapa waktu, sambungkan kembali kabel dan analisis kemampuan aplikasi
untuk terus menerima data dari titik di mana koneksi jaringan terputus.
Mulai ulang sistem saat browser membuka sejumlah sesi tertentu dan periksa apakah
browser dapat memulihkan semuanya atau tidak
Dalam Rekayasa Perangkat Lunak, Pengujian Recoverability adalah jenis Pengujian Non-
Fungsional. (Pengujian non-fungsional mengacu pada aspek perangkat lunak yang mungkin
tidak terkait dengan fungsi tertentu atau tindakan pengguna seperti skalabilitas atau keamanan.)
Waktu yang dibutuhkan untuk pemulihan tergantung pada:
Jumlah titik mulai ulang
Volume aplikasi
Pelatihan dan keterampilan orang yang melakukan kegiatan pemulihan dan alat yang
tersedia untuk pemulihan.
Ketika ada sejumlah kegagalan maka alih-alih menangani semua kegagalan, pengujian
pemulihan harus dilakukan secara terstruktur yang berarti pengujian pemulihan harus dilakukan
untuk satu segmen dan segmen lainnya.
Itu dilakukan oleh penguji profesional. Sebelum pengujian pemulihan, data cadangan yang
memadai disimpan di lokasi yang aman. Hal ini dilakukan untuk memastikan bahwa operasi
dapat dilanjutkan bahkan setelah bencana.
Siklus Hidup Proses Pemulihan
Siklus hidup proses pemulihan dapat diklasifikasikan ke dalam lima langkah berikut:
1. Operasi normal
2. Terjadinya bencana
3. Gangguan dan kegagalan operasi
4. Pembersihan bencana melalui proses pemulihan
5. Rekonstruksi semua proses dan informasi untuk membawa seluruh sistem ke operasi
normal
Mari kita bahas 5 langkah ini secara detail-
1. Suatu sistem yang terdiri dari perangkat keras, perangkat lunak, dan firmware yang
terintegrasi untuk mencapai tujuan bersama dibuat operasional untuk melaksanakan
tujuan yang ditetapkan dan ditetapkan dengan baik. Sistem dipanggil untuk melakukan
operasi normal untuk melaksanakan pekerjaan yang dirancang tanpa gangguan dalam
jangka waktu yang ditentukan.
2. Gangguan dapat terjadi karena kegagalan fungsi perangkat lunak, karena berbagai alasan
seperti kegagalan input yang dimulai, perangkat lunak mogok karena kegagalan
perangkat keras, kerusakan karena kebakaran, pencurian, dan pemogokan.
3. Fase gangguan adalah fase yang paling menyakitkan yang menyebabkan kerugian bisnis,
pemutusan hubungan, kehilangan peluang, kerugian jam kerja dan selalu kerugian
finansial dan niat baik. Setiap lembaga yang bijaksana harus memiliki rencana untuk
pemulihan bencana untuk memungkinkan fase gangguan menjadi minimal.
4. Jika rencana cadangan dan proses mitigasi risiko berada di tempat yang tepat sebelum
menghadapi bencana dan gangguan, maka pemulihan dapat dilakukan tanpa banyak
kehilangan waktu, tenaga dan tenaga. Seorang individu yang ditunjuk, bersama dengan
timnya dengan peran yang ditugaskan dari masing-masing orang ini harus ditetapkan
untuk memperbaiki tanggung jawab dan membantu organisasi untuk menyelamatkan dari
periode gangguan yang panjang.
5. Rekonstruksi mungkin melibatkan beberapa sesi operasi untuk membangun kembali
semua folder bersama dengan file konfigurasi. Harus ada dokumentasi dan proses
rekonstruksi yang tepat untuk pemulihan yang benar.
Strategi Restorasi
Tim pemulihan harus memiliki strategi unik mereka untuk mengambil kode dan data penting
agar operasi agensi kembali normal.
Strateginya bisa unik untuk setiap organisasi berdasarkan kekritisan sistem yang mereka tangani.
Kemungkinan strategi untuk sistem kritis dapat divisualisasikan sebagai berikut:
Untuk memiliki satu cadangan atau lebih dari satu
Untuk memiliki banyak cadangan di satu tempat atau tempat yang berbeda
Untuk memiliki cadangan online atau cadangan offline
Apakah backup dapat dilakukan secara otomatis berdasarkan kebijakan atau secara
manual?
Untuk memiliki tim restorasi independen atau tim pengembangan sendiri dapat
digunakan untuk pekerjaan
Masing-masing strategi ini memiliki faktor biaya yang terkait dengannya dan beberapa sumber
daya yang diperlukan untuk beberapa cadangan dapat menghabiskan lebih banyak sumber daya
fisik atau mungkin memerlukan tim independen.
Banyak perusahaan mungkin terpengaruh karena ketergantungan data dan kode mereka pada
agen pengembang yang bersangkutan. Misalnya, jika Amazon AWS mati, itu akan menutup 25
internet. Restorasi Independen sangat penting dalam kasus seperti itu.
Bagaimana melakukan Pengujian Pemulihan
Saat melakukan pengujian pemulihan, hal-hal berikut harus dipertimbangkan.
• Kita harus membuat test bed sedekat mungkin dengan kondisi penerapan yang
sebenarnya. Perubahan interface, protokol, firmware, hardware, dan software
harus sedekat mungkin dengan kondisi sebenarnya jika tidak sama kondisinya.
• Melalui pengujian menyeluruh mungkin memakan waktu dan urusan mahal,
konfigurasi identik, dan pemeriksaan lengkap harus dilakukan.
• Jika memungkinkan, pengujian harus dilakukan pada perangkat keras yang
akhirnya akan kita pulihkan. Ini terutama benar jika kita memulihkan ke mesin
yang berbeda dari yang membuat cadangan.
• Beberapa sistem pencadangan mengharapkan hard drive berukuran persis sama
dengan yang digunakan untuk membuat cadangan.
• Keusangan harus dikelola karena teknologi hard disk berkembang pesat, dan hard
disk lama mungkin tidak kompatibel dengan yang baru. Salah satu cara untuk
menangani masalah tersebut adalah dengan mengembalikan ke mesin virtual.
Vendor perangkat lunak virtualisasi seperti VMware Inc. dapat mengonfigurasi
mesin virtual untuk meniru perangkat keras yang ada, termasuk ukuran disk dan
konfigurasi lainnya.
• Sistem pencadangan online tidak terkecuali untuk pengujian. Sebagian besar
penyedia layanan pencadangan online melindungi kami dari masalah media
secara langsung dengan cara mereka menggunakan sistem penyimpanan yang
toleran terhadap kesalahan.
• Meskipun sistem pencadangan online sangat andal, kami harus menguji sisi
pemulihan sistem untuk memastikan tidak ada masalah dengan fungsi
pengambilan, keamanan, atau enkripsi.
Prosedur pengujian setelah restorasi
Sebagian besar perusahaan besar memiliki auditor independen untuk melakukan latihan uji
pemulihan secara berkala.
Biaya pemeliharaan dan pengujian rencana pemulihan bencana yang komprehensif dapat
menjadi substansial, dan mungkin menjadi penghalang bagi usaha kecil.
Risiko yang lebih kecil mungkin bergantung pada cadangan data dan paket penyimpanan di luar
lokasi untuk menyelamatkannya jika terjadi bencana.
Setelah folder dan file dipulihkan, pemeriksaan berikut dapat dilakukan untuk memastikan
bahwa file dipulihkan dengan benar:
• Ganti nama folder dokumen yang rusak
• Hitung file dalam folder yang dipulihkan dan cocokkan dengan folder yang ada.
• Buka beberapa file dan pastikan dapat diakses. Pastikan untuk membukanya
dengan aplikasi yang biasanya menggunakannya. Dan pastikan Anda dapat
menelusuri data, memperbarui data atau apa pun yang biasa Anda lakukan.
• Yang terbaik adalah membuka beberapa file dari berbagai jenis, gambar, mp3,
dokumen dan beberapa besar dan beberapa kecil.
• Sebagian besar sistem operasi memiliki utilitas yang dapat Anda gunakan untuk
membandingkan file dan direktori.
SECURITY TESTING
1. Vulnerability Scanning
Vulnerability Scanning (vuln scan) adalah pengujian keamanan yang dilakukan melalui software
otomatis untuk memindah aplikasi web. Software ini akan mencari kerentanan keamanan yang
ada di dalam sistem seperti pembuatan Cross site scripting, SQL Injection, Command Injection,
Path Traversal, serta konfigurasi server yang tidak aman. Tool ini sering disebut sebagai bagian
dari Dynamic Application Security Testing (DAST).
Perlu diketahui, Vulnerability Scanning sering menjadi praktik umum yang dipergunakan di
seluruh jaringan perusahaan. Vulnerability scanning juga berada di bawah pengawasan standar
industri serta peraturan pemerintah dalam meningkatkan struktur keamanan sistem pada sebuah
organisasi.
Secara garis besar, Vulnerability Scanning memiliki beberapa jenis pemindaian, yaitu:
Internal vulnerability scans adalah pemindaian yang memiliki target utama jaringan internal
perusahaan. Pemindaian ini akan mengidentifikasi kerentanan di dalam jaringan untuk
menghindari kerusakan. Pemindaian internal juga memungkinkan perusahaan atau organisasi
untuk bisa melindungi dan memperkuat sistem keamanan aplikasi dari dalam.
2. Security scanning
Security scanning merupakan pemindaian yang digunakan untuk menemukan kerentanan atau
modifikasi file yang tidak diinginkan dalam aplikasi berbasis web, situs web, jaringan, atau
sistem file. Pemindaian ini dapat dilakukan secara otomatis ataupun manual. Pemindaian ini akan
memberikan Anda insight yang mendalam serta menyediakan rekomendasi solusi untuk
memperbaiki masalah yang ditemukan.
Security scanning dapat dilakukan sebagai one-time check atau pemeriksaan satu kali. Meskipun
demikian, sebagian besar perusahaan pengembang perangkat lunak lebih memilih untuk
melakukan pemindaian keamanan secara teratur untuk memastikan sistem yang dikembangkan
benar-benar aman.
3. Penetration Testing
Penetration testing adalah proses pengujian dengan melakukan simulasi serangan cyber terhadap
sistem yang akan diuji. Pengujian ini akan dilakukan secara manual oleh pentester profesional
dan bersertifikat menggunakan beragam pentest tools dan teknik.
Ketika pengujian penetration testing dilakukan, Anda akan menemukan beragam kerentanan
yang dapat dieksploitasi oleh para penjahat cyber. Dengan demikian, maka proses penambalan
atau perbaikan dapat segera dilakukan sebelum pihak peretas menemukannya.
Proses pengujian ini dilakukan seperti ketika Anda mempekerjakan seseorang untuk membobol
sistem keamanan aplikasi atau web Anda. Jika orang tersebut berhasil masuk dan melewati
sistem keamanan yang ada, maka Anda akan mengetahui dimana letak celah atau kerentanan
keamanan pada sistem. Dengan informasi tersebut, Anda dapat terus meningkatkan sistem
keamanan pada software, website, atau aplikasi yang Anda kembangkan.
Karena hacker akan terus mencari cara untuk membobol sistem korban, maka penetration testing
ini perlu dilakukan secara rutin.
4. Risk Assessment
Melalui risk assessment, risiko keamanan yang dihadapi oleh aplikasi, software, dan jaringan
akan diidentifikasi dan dianalisis. Risiko keamanan tersebut kemudian akan diklasifikasikan ke
dalam beberapa kategori yaitu tinggi, sedang, dan rendah. Salah satu jenis security testing ini
dapat membantu Anda memastikan bahwa kontrol keamanan cyber yang Anda lakukan
sebelumnya sudah sesuai dengan risiko keamanan yang dihadapi organisasi/perusahaan Anda.
Pada umumnya, risk assessment akan dilakukan oleh tim IT internal perusahaan. Oleh karena itu,
tim IT yang Anda percaya untuk melakukan penilaian risiko harus benar-benar memahami
bagaimana infrastruktur digital dan jaringan Anda bekerja.
5. Security Auditing
Security Auditing adalah metode terstruktur untuk mengevaluasi langkah-langkah keamanan di
dalam perusahaan. Dengan melakukan audit secara rutin, Anda akan terbantu dalam
mengidentifikasi titik lemah dan kerentanan dalam infrastruktur IT perusahaan, memverifikasi
kontrol keamanan, memastikan kepatuhan terhadap peraturan keamanan, dan masih banyak lagi.
Selain itu, security auditing juga akan membantu perusahaan Anda untuk tetap mematuhi
undang-undang keamanan. Saat ini, ada banyak peraturan nasional ataupun internasional seperti
GDPR dan HIPAA yang membutuhkan audit keamanan IT untuk memastikan bahwa sistem
informasi Anda tetap memenuhi standar yang mereka buat.
Meskipun secara sekilas, security auditing terlihat sama dengan risk assessment, namun kedua
tipe security testing tersebut tetap berbeda. Audit merupakan proses pengujian yang lebih formal
daripada Risk Assessment. Selain itu, audit harus dilakukan oleh organisasi pihak ketiga yang
independen dan pihak ketiga tersebut biasanya harus memiliki semacam sertifikasi. Sebuah
organisasi atau perusahaan boleh saja memiliki tim audit internal, tetapi tim tersebut harus
bertindak sebagai lembaga independen.
6. Ethical hacking
Ethical hacking sangat erat kaitannya dengan penetration testing. Meskipun demikian, Anda
harus memahami bahwa cakupan ethical hacking lebih luas daripada penetration testing.
Ethical hacking merupakan pengujian keamanan yang dilakukan menggunakan semua teknik
peretasan dan teknik serangan komputer terkait lainnya. Proses pengujian ini dilakukan oleh
ethical hacker yang sudah memperoleh izin untuk menjelajahi infrastruktur IT perusahaan secara
lebih luas.
Ethical hacker tersebut akan menguji seberapa baik tingkat keamanan dengan mengganggu
sistem menggunakan berbagai vektor dan jenis serangan. Dengan pengujian ini, Anda akan
terbantu untuk mengungkap kerentanan dan kelemahan keamanan secara pada infrastruktur IT
yang lebih luas.
7. Posture Assessment
Posture Assessment mengacu pada metodologi yang dilakukan untuk meningkatkan kemampuan
manajemen risiko di perusahaan. Sebagian besar orang menganggap bahwa posture Assessment
merupakan gabungan dari beberapa jenis security testing yaitu Ethical Hacking, Security
Scanning, dan Risk Assessment.
Penilaian ini dapat menjadi langkah berharga untuk mengetahui bagaimana kondisi keamanan
perusahaan. Dengan melakukan Posture Assessment, sebuah Anda akan memiliki pandangan
yang jelas tentang status keamanan perusahaan serta mampu mengidentifikasikan ancaman
keamanan yang mungkin terjadi.
Metodologi atau Pendekatan dalam Security Testing
1. Tiger Box
Metodologi pengujian ini pada umumnya dilakukan melalui laptop atau OS yang memiliki
seperangkat alat untuk hacking. Dengan metodologi ini, penguji dapat mengevaluasi kerentanan
serangan cyber.
2. Black Box
Black box testing adalah metode pengujian perangkat lunak dimana struktur atau desain internal
dari item yang perlu diuji tidak diketahui oleh penguji. Pengujian black box juga sering disebut
sebagai functional testing atau closed-box testing.
3. Grey Box
Grey Box testing dilakukan pada suatu perangkat lunak dengan informasi fungsionalitas internal
yang terbatas. Biasanya, pihak penguji akan memiliki beberapa pengetahuan dasar tentang kode
dan algoritma perangkat lunak. Meskipun demikian informasi tersebut tetap terbatas sehingga
pengujian akan tetap dilakukan secara normal dari sudut pandang penguji.
Baca Juga: Definisi Keamanan Informasi dan 3 Aspek di Dalamnya (CIA Triad)
Kesimpulan
Security testing perlu dilakukan jika perusahaan Anda ingin tetap terlindung dari berbagai
ancaman cyber. Perlu Anda ingat, bahwa mengidentifikasi kerentanan sejak dini akan jauh lebih
baik daripada memperbaiki sistem ketika sudah dirusak atau diretas oleh pihak yang tidak
bertanggung jawab. Melakukan security testing juga akan membantu perusahaan dalam
menghemat pengeluaran karena proses perbaikan, denda, dan memperbaiki reputasi perusahaan
yang sudah tertera akan membutuhkan biaya yang besar.
Saat ini sudah banyak jasa security testing yang dapat membantu Anda dalam menjalankan
berbagai pengujian keamanan. Salah satu perusahaan yang bisa Anda andalkan adalah
LOGIQUE Digital Indonesia. Kami memiliki tim IT security professional yang sudah
berpengalaman dalam menguji berbagai perangkat lunak. Tim kami juga sudah memiliki
sertifikat sehingga kualitas pengujian yang kami lakukan tidak perlu Anda ragukan lagi.
PERFORMA TESTING
1. JMeter
jMeter atau The Apache JMeterTM adalah aplikasi open source berbasis Java yang dapat
dipergunakan untuk performance test. Bagi seorang QA Engineer jMeter bisa digunakan
untuk melakukan load/stress testing Web Application, FTP Application dan Database
server test.jMeter bisa dijalankan dengan 2 cara, dengan GUI atau non-GUI ( Command
line ). Untuk beginner lebih baik saya sarankan menggunakan cara yang pertama. Mudah
dan tanpa melakukan scripting tertentu. Tinggal membuat Test Plan, mengisikan berapa
thread & sample yang akan diujicobakan, running dan menganalisa hasil/report.
Untuk melakukan performance test sederhana dengan jMeter di lingkungan Operating System
Windows, berikut step by stepnya :
INSTALLASI JAVA
Karena jMeter adalah aplikasi berbasis Java, maka terlebih dahulu kita harus install Java dan
memastikan jalan di sistem operasi kita. Untuk itu download dan install terlebih dahulu Java SE
Development Kit di sini. Untuk cek apakah java sudah terinstall dengan baik, cek melalui
command prompt ( Windows + R > cmd ), ketikkan perintah :
java -version
INSTALLASI JMETER
Tidak ada tahapan khusus dalam installasi jMeter, file zip yang telah berhasil didownload,
tinggal ekstrak di folder yang diinginkan. Selesai.
Untuk keperluan load testing, kita masih membutuhkan beberapa plugin untuk ditambahkan ke
jMeter. Plugin jMeter dapat kita dapatkan di sini. Download :
MENJALANKAN JMETER
Cara Menjalankan Apache jMeter, cukup masuk ke folder bin > double klik jmeter.bat
Untuk beberapa kasus tertentu ( misalkan menjalankan perfmon server, Kita diharuskan
untuk menjalankan ServerAgent terlebih dahulu dengan cara dobel klik StartAgent.bat
MEMBUAT PERFORMANCE TEST PLAN
Setelah jMeter sudah berhasil dibuka, selanjutnya kita bisa menyiapkan Test plan.
1.Add Thread Group
menambahkan trafik/user visitor ke dalam komponen yang mau di test. Langkahnya :
2. Add jMeter Element
Menambahkan web server/IP Address yang akan ditest. Caranya :
3. Add Listener
Menampilkan proses dan hasil test secara grafis atau bentuk tabel. Caranya :
4. Run Test
Menjalankan Test secara otomatis. Caranya :
Simpan terlebih dahulu Test Plan yang telah kita buat di File > Save ( Ctrl + S ).
Klik Run atau Ctrl + R, jMeter akan mulai mensimulasi sejumlah user dalam mengakses
web server yang telah ditentukan.
1. WebLOAD
This is an enterprise-scale load testing tool that can generate real-life and reliable load scenarios,
even in most complex systems. Its smart analytics provide in-depth performance insights. The
tool comes with built-in support for hundreds of technologies. It also integrates with several tools
to support simpler monitoring.
WebLOAD is widely used by performance testing services with complex and heavy user load
requirements. You can conduct stress and load testing on any web-based software by creating
load from on-premise systems and the Cloud. It supports technologies including enterprise
applications to web protocols. It supports integration with tools like Selenium, Jenkins, and many
others to allow continuous load testing for DevOps.
2. LoadNinja
LoadNinja allows you to build scriptless load tests. It is preferred by performance testing
services because it helps reduce testing times by half. Other advantages include replacing load
emulators with real browsers and generating actionable metrics.
This tool allows you to debug in the real-time, record client-side interactions, identify
performance issues instantly, and do much more. LoadNinja allows you to boost your testing
coverage without compromising on quality. It removes cumbersome, repetitive tasks involved in
script translation, dynamic correlation, and script scrubbing. It allows you to spend more time in
developing scalable applications and less time on creating load testing scripts.
HTTPS
HTTP
Java-based protocol
SAP GUI Web
Google Web Toolkit
WebSocket
Oracle Forms
3. LoadView
LoadView is also widely popular with performance testing services. This is an on-demand and
fully-managed load testing and stress testing tool. It is different from most other load testing
tools in that testing is conducted in real browsers. The result is close emulation of real users and
highly accurate data. It is fully cloud-based and is readily deployed in minutes. It allows creating
multi-step scripts simulating user interaction with your application or website.
4. StresStimulus
5. Apache JMeter
JMeter is a popular open source performance testing tool that is designed for load and
performance testing. It can be used to analyze and measure the performance of a wide range of
software, covering services including networks and servers. It is mostly used as a website load
testing tool for different types of web service applications.
JMeter is a Java platform application that can be integrated with the test plan. It also allows you
to create a function test plan besides a load test plan. Some of the key features are as follows:
Supports multiple load injectors that can be managed using a single controller
Doesn’t require advanced infrastructure for load testing
Requires lesser scripting efforts relative to other API performance testing tools, as it has a
user-friendly interface
Supports all Java-based applications
Easy analysis of key load based stats and resource usage monitors by presenting simple
graphs and charts
JMeter supports the following protocols – HTTPS, HTTP, XML, Java-based protocols, SOAP,
and FTP among others.
6. SmartMeter.io
SmartMeter.io is the preferred option for performance testing services who want to address the
drawbacks of JMeter. The tool supports the creation of a simple scriptless test environment with
its Recorder. It provides test reports and has features like automatic test criteria assessment and
test runs trend and comparison analysis. The tool offers full support for CI/CD integration. Its
key features are as follows:
The SmartMeter.io supports the following protocols – HTTP, FTP, LDAP, JDBC, JMS, and
SOAP. There is no need for browser plugin or proxy setup. It has excellent capabilities in CI
integration, distributed testing, and provides unmatched performance testing support when it
comes to validating apps.
Rational Performance Tester from IBM is designed to create and run performance tests. It is also
a powerful analysis tool. The tool allows you to verify the stability and scalability of web-based
applications before they are deployed. This is an automated performance testing tool that
develops a demo of the transaction process between the web service and the user.
It is capable of gathering all the information and analyses them to help improve efficiency. It
makes it easy to detect and rectify any leakage in the application or server. Rational Performance
Tester is widely used by performance testing services to develop error-free and effective cloud
computing service. Some of the key features of this tool are as follows:
The performance testing tool supports the following protocols – Web HTTP, Citrix, XML, SOA,
Weblogic, Websphere, SOA, and Socket Recording.
8. Silk Performer
Silk Performer is an enterprise class stress and load testing tool. It is capable of testing
application environments along with hundreds and thousands concurrent users. It comes with
CloudBurst feature that enables QA teams to efficiently launch any kind of peak load
performance test without worrying about complex infrastructure. You can execute tests from
over 50 locations globally. It supports Google, AWS, Azure.
9. Gatling
Gatling is a relatively new open-source load testing tool that was created in 2012. It enables you
to execute load simulation of concurrent users against the system via JMS, HTTP/S, or JDBC
protocols. You can use this tool to simulate web users of a system to identify bottlenecks and
optimize them.
It is compatible for all operating systems as it works on Java. Gatling has two executables: one is
to record tests and the other one is used to execute them. All the tests are recorded in Scala. After
the execution is completed, an immersive and graphical report of the test is generated.
Here are the key features of Gatling: