Cara memvalidasi data, analitik, dan visualisasi data

Pengujian aplikasi adalah disiplin ilmu yang berkembang dengan alat yang membantu tim jaminan kualitas mengembangkan dan mengotomatiskan pengujian fungsional, menjalankan pengujian beban dan performa, melakukan analisis kode statis, menggabungkan API dengan pengujian unit, dan memvalidasi aplikasi terhadap masalah keamanan yang diketahui. Tim yang mempraktikkan devops dapat mengimplementasikan pengujian berkelanjutan dengan menyertakan semua atau sebagian pengujian otomatis mereka di pipeline CI / CD mereka dan menggunakan hasilnya untuk menentukan apakah build harus dikirimkan ke lingkungan target.

Tetapi semua kemampuan pengujian ini dapat dengan mudah mengabaikan satu rangkaian pengujian penting yang sangat penting untuk pemrosesan aplikasi apa pun atau menyajikan data, analitik, atau visualisasi data.

Apakah datanya akurat dan apakah analitiknya valid? Apakah visualisasi data menunjukkan hasil yang masuk akal bagi para ahli materi pelajaran? Selain itu, saat tim melakukan penyempurnaan pada pipeline dan database data, bagaimana cara memastikan bahwa perubahan tidak merusak aplikasi atau dasbor downstream?

Dalam pengalaman saya mengembangkan aplikasi yang kaya data dan analitik, jenis pengujian dan validasi ini sering kali menjadi pertimbangan kedua dibandingkan dengan pengujian unit, fungsional, kinerja, dan keamanan. Ini juga merupakan kumpulan kriteria pengujian yang lebih sulit untuk dilakukan karena beberapa alasan:

  • Memvalidasi data dan analitik sulit bagi pengembang, penguji, dan ilmuwan data yang biasanya bukan ahli di bidangnya, terutama tentang bagaimana dasbor dan aplikasi digunakan untuk mengembangkan wawasan atau mendorong pengambilan keputusan.
  • Data itu sendiri tidak sempurna, dengan masalah kualitas data yang diketahui dan seringkali tidak diketahui.
  • Mencoba menangkap aturan validasi bukanlah hal yang sepele karena sering kali ada aturan umum yang berlaku untuk sebagian besar data yang diikuti oleh aturan untuk berbagai jenis pencilan. Mencoba menangkap dan membuat kode untuk aturan ini mungkin merupakan proposisi yang sulit dan kompleks untuk aplikasi dan visualisasi data yang memproses kumpulan data kompleks dalam jumlah besar.
  • Organisasi aktif berbasis data memuat kumpulan data baru dan mengembangkan jalur data untuk meningkatkan analitik dan pengambilan keputusan.
  • Sistem pemrosesan data seringkali kompleks, dengan alat yang berbeda untuk mengintegrasikan, mengelola, memproses, membuat model, dan memberikan hasil.

Tim yang baru pertama kali menyajikan data buruk atau analitik tidak valid kepada pemangku kepentingan biasanya merupakan peringatan pertama bahwa praktik dan alat mereka mungkin diperlukan untuk menguji, mendiagnosis, dan menyelesaikan masalah data ini secara proaktif.

Memahami silsilah data dan kualitas data

Masalah data sebaiknya ditangani pada sumbernya dan melalui berbagai transformasi data yang dilakukan dalam memuat dan memproses data. Jika data sumber memiliki masalah kualitas data baru atau jika ada cacat yang muncul pada pipeline data, akan jauh lebih efisien untuk mengidentifikasi dan menyelesaikannya di awal pipeline pemrosesan data.

Dua praktik dan alat terkait membantu mengatasi masalah ini. Keduanya memungkinkan tim pengembangan dan data untuk mengidentifikasi masalah data sebelum mencapai visualisasi dan aplikasi data hilir.

Praktik pertama melibatkan alat kualitas data yang sering kali merupakan kemampuan tambahan untuk mengekstrak, mengubah, dan memuat (ETL), serta beberapa alat persiapan data. Alat kualitas data melayani berbagai tujuan, tetapi satu hal yang dapat mereka lakukan adalah mengidentifikasi dan memperbaiki masalah data yang diketahui. Beberapa koreksi dapat diotomatiskan, sementara yang lain dapat ditandai sebagai pengecualian dan dikirim ke pengelola data untuk diperbaiki secara manual atau untuk memperbarui aturan pembersihan.

Informatica, Talend, IBM, Oracle, Microsoft, dan banyak lainnya menawarkan alat berkualitas data yang dihubungkan ke platform ETL mereka, sementara alat persiapan data dari Tableau, Alteryx, Paxata, Trifacta, dan lainnya memiliki kemampuan kualitas data.

Praktik kedua adalah silsilah data. Sementara kualitas data membantu mengidentifikasi masalah data, garis keturunan data adalah serangkaian praktik dan alat yang melacak perubahan pada data dan implementasi yang mendasarinya. Mereka membantu pengguna memahami di mana dalam siklus hidup data transformasi, perhitungan, atau manipulasi data lainnya diimplementasikan. Alat, laporan, dan dokumentasi silsilah data kemudian dapat digunakan untuk melacak kembali ke jalur data dan membantu menentukan di mana dalam aliran data suatu cacat atau masalah lain diperkenalkan.

Menggunakan kumpulan data emas untuk memvalidasi visualisasi data

Analisis, dasbor, dan visualisasi data tidak beroperasi pada sumber data statis. Data berubah dengan kecepatan tertentu, dan pada saat yang sama developer dan data scientist dapat memodifikasi aliran data, algoritme, dan visualisasi yang mendasarinya. Saat Anda melihat dasbor, sulit untuk memisahkan apakah masalah data yang tidak terduga disebabkan oleh perubahan terprogram atau terkait dengan data atau perubahan kualitas data.

Salah satu cara untuk mengisolasi perubahan adalah dengan memisahkan kumpulan data emas yang diketahui untuk membantu memvalidasi aliran data, aplikasi, dan perubahan visualisasi data. Dengan menggunakan kumpulan data emas, tim penguji dapat menentukan unit, fungsional, dan tes kinerja untuk memvalidasi dan membandingkan keluaran. Penguji dapat menjalankan pengujian A / B, di mana A adalah keluaran sebelum perubahan implementasi diperkenalkan dan B adalah keluaran setelah perubahan dilakukan. Pengujian seharusnya hanya menunjukkan perbedaan keluaran di area yang diharapkan di mana aliran data, model, analitik, logika bisnis, atau visualisasi diubah.

Meskipun ini adalah konsep yang relatif sederhana, penerapannya tidak mudah.

Pertama, tim harus membuat kumpulan data emas dan memutuskan volume dan variasi data apa yang merupakan kumpulan sampel komprehensif untuk diuji. Ini juga mungkin memerlukan beberapa kumpulan data untuk membantu memvalidasi segmen data yang berbeda, kondisi batas, atau model analitis. Salah satu alat yang dapat membantu tim mengelola data pengujian adalah Delphix untuk pengelolaan data pengujian; vendor lain juga menawarkan kemampuan ini.

Kedua, setelah kumpulan data emas dibuat, tim penguji mungkin memerlukan lingkungan atau alat tambahan untuk mengalihkan sumber data yang mendasari di lingkungan mereka. Misalnya, penguji mungkin ingin menguji terhadap kumpulan data emas, lalu menjalankan untuk kedua kalinya terhadap data yang merupakan replika data produksi. Tim yang beroperasi di lingkungan cloud dan menggunakan alat infrastruktur sebagai kode seperti Puppet, Chef, dan Ansible dapat membangun dan menghancurkan beberapa lingkungan pengujian untuk tujuan berbeda ini.

Terakhir, tim penguji membutuhkan alat untuk mengimplementasikan pengujian A / B data dan hasil. Banyak tim yang saya kenal melakukan ini secara manual dengan menulis kueri SQL dan kemudian membandingkan hasilnya. Jika kumpulan data dan pengujian sederhana, pendekatan ini mungkin cukup. Namun jika beberapa titik dalam aliran data perlu diuji, Anda mungkin memerlukan alat khusus untuk memusatkan kueri pengujian, mengotomatiskannya, dan menggunakan laporan untuk memvalidasi perubahan. Satu alat, QuerySurge, dirancang khusus untuk mengimplementasikan pengujian A / B terhadap aliran data, database, dan beberapa alat kecerdasan bisnis.

Bekerja dengan ahli materi pelajaran secara efisien

Pada titik tertentu, Anda harus melibatkan ahli materi pelajaran untuk menggunakan visualisasi data yang baru dan diperbarui serta memberikan umpan balik. Mereka harus membantu menjawab pertanyaan tentang apakah analitik itu valid dan berguna untuk mengembangkan wawasan atau bantuan dalam pengambilan keputusan berdasarkan data.

Masalah yang dihadapi banyak tim adalah mendapatkan waktu yang cukup dari para ahli materi untuk berpartisipasi dalam pengujian ini. Ini bisa menjadi tantangan yang signifikan ketika mencoba menguji dan menerapkan perubahan secara berkala.

Untuk menggunakan waktu mereka secara efisien, saya merekomendasikan tiga aktivitas terpisah:

  • Terapkan sebanyak mungkin kualitas data, garis keturunan data, dan pengujian A / B pada kumpulan data emas. Sebelum melibatkan ahli materi pelajaran, lakukan upaya yang wajar untuk memvalidasi bahwa data mentah dan yang dihitung sudah benar. Hal ini perlu dilakukan dengan percaya diri sehingga Anda dapat menjelaskan dan secara ideal mengilustrasikan kepada ahli materi pelajaran bahwa data, transformasi, dan penghitungan yang mendasarinya akurat — jadi yakinlah bahwa mereka tidak perlu menginvestasikan waktu yang signifikan untuk mengujinya secara manual.
  • Rancang visualisasi data untuk membantu para ahli materi meninjau dan memvalidasi data dan analitik. Beberapa visualisasi dapat menjadi keluaran dari pengujian A / B, sementara yang lain harus berupa visualisasi yang mengekspos data tingkat rendah. Saat menerapkan perubahan data, algoritme, model, atau visualisasi skala besar, sering kali membantu jika visualisasi data kontrol kualitas ini siap untuk membantu para ahli di bidangnya melakukan validasi cepat.
  • Anda ingin ahli materi pelajaran melakukan pengujian penerimaan pengguna (UAT) pada aplikasi yang diselesaikan dan visualisasi data. Pada saat mereka mencapai langkah ini, mereka harus memiliki keyakinan penuh bahwa data dan analitik sudah valid.

Langkah terakhir ini diperlukan untuk menentukan apakah visualisasi efektif dalam mengeksplorasi data dan menjawab pertanyaan: Apakah visualisasi mudah digunakan? Apakah tersedia dimensi yang benar untuk menelusuri data? Apakah visualisasi berhasil membantu menjawab pertanyaan yang dirancang untuk dijawab?

Pada tahap proses ini, Anda menguji pengalaman pengguna dan memastikan dasbor dan aplikasi dioptimalkan. Langkah penting ini dapat dilakukan jauh lebih efisien bila ada pemahaman dan kepercayaan pada data dan analitik yang mendasarinya.