System Test Categories : Study Case — MCAS Failure on Lion Air Crash (October 29, 2018)

Feliks VP Samosir
3 min readFeb 22, 2022

--

Studi Kasus

Software Maneuvering Characteristics Augmentation System (MCAS) pada kecelakaan pesawat Lion Air (29 Oktober 2018).

Pengantar

MCAS merupakan fitur otomatis yang berfungsi untuk memproteksi pesawat dari manuver berbahaya, seperti Angle of attack (AoA) besar, Autopilot off, Flap (sirip tambahan di sayap) tidak menjulur keluar, dan berbelok terlalu tajam.

Ilustrasi Angle of Attack

AoA yang terlalu besar inilah yang berisiko membuat pesawat stall [1]. Fitur otomatis ini (MCAS), tetap aktif meski pesawat terbang dalam kondisi manual (Autopilot Off). Sistem MCAS akan menurunkan hidung pesawat dengan cara mengatur roda penyesuaian (trim) agar horizontal stabilizer (sayap kecil di ekor pesawat) berputar, membuat hidung pesawat turun.
Sistem ini baru akan non-aktif saat AoA mengecil, atau pilot meng-override (mengambil alih kendali) dengan cara manual trim. Namun, fitur otomatisasi ini belum banyak diketahui pilot-pilot B737 MAX, karena sebelumnya tidak tercantum dalam buku manual operasi. Hanya setelah terjadi anomali, dan peristiwa Lion Air JT 610 terjadi, Boeing baru menjelaskan fitur ini lewat buletin keselamatan. Anomali yang terjadi dalam penerbangan Lion Air JT 610 sendiri menurut Komite Nasional Keselamatan Transportasi adalah sensor AoA yang memberikan input yang mengacau atau berbeda-beda.

Rekomendasi Pengujian

Dikutip dari Forbes [2], jika memang software yang menjadi penyebab utama kecelakaan Lion Air, maka hal itu kemungkinan besar disebabkan oleh kegagalan sensor yang kemudian menghasilkan unexpected software results dan ditambah dengan potensi pilot error. Merujuk pada taksonomi pengujian sistem oleh Naik & Tripathy [3], ada beberapa jenis pengujian yang dapat diterapkan pada MCAS, yaitu robustness test, interoperability test, stress test, regression test, & documentation test.

Robustness Test

Robustness test akan menentukan seberapa baik sistem akan pulih dari berbagai macam situasi errors atau failures. Ada beberapa pengujian:

  • Boundary value: Menyediakan input data yang invalid dari AoA pada sistem MCAS dan melakukan observasi bagaimana MCAS bereaksi terhadap invalid input tersebut.
  • Power cycling: Membuat kondisi power glitch pada saat proses deployment MCAS dan melihat bagaimana sistem dapat pulih dari glitch dan kembali beroperasi dengan normal setelah daya dipulihkan.
  • Online insertion and removal: Pengujian dilakukan dengan memasukkan/mengeluarkan sebuah modul dari sistem MCAS saat idle ataupun beroperasi secara heavy load untuk memastikan sistem dapat menangani kondisi tersebut dengan baik.
  • High Availability: Pengujian ini bertujuan untuk memverifikasi apakah sistem MCAS dapat pulih secara cepat dan mulus dari software & hardware failures tanpa mengganggu operasi sistem secara keseluruhan
  • Degraded Node: Pengujian ini bertujuan untuk memverifikasi operasi sistem MCAS setelah beberapa bagian sistem tidak beroperasi. Ini sangat berguna pada semua mission-critical application.

Interoperability test

Interoperability test akan menentukan apakah sistem dapat bekerjasama dengan produk third-party. Pada kasus MCAS, pengujian dilakukan apakah MCAS dapat berkomunikasi dengan baik dengan sistem AoA dan perangkat manual handling lainnya. Selain itu, pada pengujian ini juga dilakukan pemeriksaan apakah MCAS dapat berjalan dengan baik dengan versi lama perangkat-perangkat lain yang berhubungan dengannya.

Stress Test

Stress test akan menentukan batasan sistem dan ketika terjadi failure akan menentukan perilaku sistem seperti apa yang memunculkan failure tersebut. Sistem MCAS akan sengaja ditekan dengan mendorongnya melampaui batas yang ditentukan, misalnya dengan memperbesar/memperkecil sekali AoA. Jika sistem gagal, maka mekanisme pemulihan harus segera muncul secara otomatis.

Regression Test

Regression test akan menentukan sistem tetap stabil ketika terjadi proses integrasi dengan subsistem lainnya dan ketika proses perawatan. Prinsip utama pengujian ini adalah memverifikasi bahwa tidak ada defect yang muncul pada sebagian modul ketika terjadi update/perubahan pada sebagian modul lainnya.

Documentation test

Documentation test akan memastikan bahwa panduan pengguna akurat dan dapat digunakan. Pengujian ini dilakukan pada tiga tingkatan, yaitu:

  • Read test: Panduan penggunaan MCAS diulas untuk kejelasannya, pengorganisasiannya, alurnya, dan akurasinya tanpa mengeksekusi instruksi (yang ada di dokumen panduan) pada sistem.
  • Hands-on test: Verifikasi pesan error yang muncul untuk mengevaluasi keakuratan dan kegunaannya.
  • Functional test: Ikuti instruksi yang tercantum pada Panduan MCAS untuk memverifikasi bahwa sistem bekerja sesuai dengan yang didokumentasikan.

Referensi:

[1] Mengenal MCAS, Fitur Otomatis di 737 MAX yang Baru Diungkap Boeing setelah Kecelakaan Lion Air JT610
[2]Hard Questions Raised When A Software ‘Glitch’ Takes Down An Airliner
[3]Kshirasagar Naik & Priyadarshi Tripathy. Software Testing and Quality Assurance : Theory and Practice. 2008

--

--

Feliks VP Samosir

Lecturer of Informatics at Universitas Pelita Harapan. NLP enthusiast…and history too!