Jumat, 03 November 2017

Prolog ACL & Review ACL


Prolog Audit Command Language

ACL adalah sebuah software yang dirancang secara khusus untuk menganalisa data dan menghasilkan laporan audit baik untuk pengguna biasa (common/ nontechnical users)  maupun pengguna ahli (expert users).

Manfaat ACL antara lain:

1.  Dapat membantu dalam mengakses data baik langsung (direct) kedalam sistenm jaringan ataupun indirect (tidak langsung) melalui media lain seperti softcopy dalam bentuk text file/report.
2.  Menempatkan kesalahan dan potensial “fraud” sebagai pembanding dan menganalisa file-file menurut aturan-aturan yang ada.
3.   Mengidentifikasi kecenderungan/gejala-gejala, dapat juga menunjukan dengan tepat sasaran pengecualian data dan menyoroti potensial area yang menjadi perhatian.
4.  Mengidentifikasi proses perhitungan kembali dan proses verifikasi yang benar.
5.  Mengidentifkasi persoalan sistem pengawasan dan memastikan terpenuhinya permohonan dengan aturan-aturan yang telah ditetapkan.
6.  Aging dan menganalisa account receivable/payable atau beberapa transaksi lain dengan menggunakan basis waktu yang sensitive.


Review Audit Command Language

·      Kalau untuk auditor sendiri menurut saya, aplikasi Auditor ini akan sangat membantu dalam melaksanakan tugas peng-audit-an secara terfokus, cepat, efisien dan efektif.
·      Dari segi manajemen, ACL juga dapat membantu dalam menganalisis data dan informasi mengenai perusahaan, kalau memang diperuntukan pada profesi akuntung dan keuangan.
·      Untuk SDM atau pemeriksa IT dll, disitu dapat melakukan sistem pelaporan yang sesuai dengan keinginan atau laporan yang diinginkan dengan kualitas serta akurasi yang baik.
·      Berguna juga untuk menemukan berbagai penyelewengan atau pola dalam transaksi yang dapat mengindikasikan adanya kelemahan pengendalian atau kecurangan. Seperti, kecurangan dalam laporan keuangan (missal dilakukan oleh pihak manajemen), korupsi, dan juga penyalahgunaan asset (missal dilakukan oleh karyawan).
·      ACL juga dapat membaca langsung jenis penulisan EBCDIC atau ASCII, sehingga tidak perlu untuk mengkonversi kedalam bentuk yang lain.
·      Sedikit kelemahan karena ACL adalah aplikasi yang hanya bersifat “read only”, maka ACL tidak pernah mengubah data sumber asli sehingga aman untuk menganalisis live data.
·      ACL dapat mengakses data dari hampir semua jenis database yang ada (DBF, XLS, Text File, report file, Oracle, SQL, DB2, AS/400 FDF, COBOL, dsb) dan semua platform (PC, minicomputer, dan mainframe).
·      Kemampuan dalam mengakses dan memproses data dalam jumlah yang sangat besar (hingga ratusan juta record).
·      Kemampuannya untuk memproses dalam waktu yang singkat walaupun data yang diproses dalam jumlah yang besar.
·      Dengan kemampuan mengakses database 100% (tanpa metode sampling) serta data yang bersifat Read Only yang dapat menjamin orisinalitas, keamanan dan integritas data untuk pengolahan menjadi informasi yang bermanfaat bagi user dan manajemen.
·      Pembuatan aplikasi audit yang sangat cepat dan mudah untuk melakukan automasi analisis data untuk efisiensi proses kerja.
·      Dapat digunakan untuk menangani beberapa file sekaligus, tanpa mengganggu operasional teknologi informasi yang dijalankan oleh perusahaan.
·      Dilengkapi dengan log file untuk pencatatan proses analisis yang telah dilakukan sehingga menghasilkan suatu audit trail yang komprehensif.
·      Dilengkapi fungsi-fungsi analisis yang sangat lengkap yang dapat dengan mudah dikombinasikan dalam menghasilkan temuan-temuan yang tidak pernah terkirakan sebelumnya.
·      Kemudahan untuk merancang laporan yang handal sarat informasi yang bermanfaat serta dapat dikirimkan secara otomatis via email atau integrasi ke dalam software aplikasi Crystal Report.
·      Kemudahan dalam menguji integritas data dan menganalisis data yang ada di dalam database ataupun menganalisis user-user yang telah masuk ke dalam suatu jaringan/network.


Strategi Pengujian Perangkat Lunak

Dalam strategi pengujian perangkat lunak, dapat digambarkan dengan ilustrasi berikut: Sebuah perangkat lunak dimulai dari penentuan kebutuhan pernagkat lunak, kemudian proses dilanjutkan kedalam bentuk rancangan dan akhirnya ke pengkodean. Strategi pengujian serupa dengan hal tersebut, dimulai dengan unti testing di pusat spiral di mana masing-masing modul/unit dari perangkat lunak yang diimplementasikan dalam source code menjadi sasaran pengujian. Kemudian dilakukan integration testing dengan focus pengujian adalah desain dan kontruksi arsitektur perangkat lunak. Selanjutnya dilakukan validation testing dengan sasaran pengujian adalah kesesuaian dengan kebutuhan perangkat lunak yang telah ditentukan di awal. Terakhir pada lingkaran terluar spiral samai pada system testing, dimana perangkat lunak dan keseluruhan system diuji.
1.     Pendekatan Strategis ke Pengujian Perangkat lunak

Pengujianmerupakan rangkaian aktivitas yang dapat direncanakan sebelumnya dan dilakukansecara sistematis. Strategi uji coba perangkat lunak memudahkan para perancanguntuk menentukan keberhasilan system yg telah dikerjakan. Hal yg harusdiperhatikan adalah langkah-langkah perencanaan dan pelaksanaan harusdirencanakan dengan baik dan berapa lama waktu, upaya dan sumber daya ygdiperlukan Strategi uji coba mempunyai karakteristik sbb :

·         Pengujian mulai pada tingkat modul yg paling bawah,dilanjutkan dgn modul di atasnya kemudian hasilnya dipadukan
·         Teknik pengujianyang berbeda mungkin menghasilakn sedikit perbedaan (dalam hal waktu)
·         Pengujiandilakukan oleh pengembang perangkat lunak dan (untuk proyek yang besar) suatukelompok pengujian yang independen.
·         Pengujian dandebugging merupakan aktivitas yang berbeda, tetapi debugging termasuk dalamstrategi pengujian.

Verifikasi dan Validasi

Verifikasi dan validasi merupakandua istilah yang sering dikaitkan dengan tahapan pengujian perangkat lunak.Verifikasi mengacu pada serangkaian aktivitas untuk memastikan bahwa perangkatlunak mengimplementasikan fungsi tertentu secara benar, sedangkan validasimengacu pada serangkaian aktivitas untuk memastikan bahwa perangkat lunak yangtelah dibuat sesuai denga kebutuhan konsumen.

Definisi V&V mencakupserangkaian aktivitas dari penjaminan kualitas perangkat lunak (SQA) yangmeliputi kajian teknis formal, audit kualitas dan control, monitoring kinerja,simulasi, studi feasibilitas, kajian dokumentasi, kajian basisdata, analisisalgoritma, pengujian pengembangan, pengujian kualifikasi, dan pengujianinstalasi.

Pengorganisasian Pengujian Perangkat Lunak

Proses pengujian sebuah perangkat lunaksebaiknya melibatkan pihak yang memang secara khusus bertanggung jawab untukmelakukan proses pengujian secara independen. Untuk itulah diperlukanIndependent Test Group (ITG).
Peran dari ITG adalah untuk menghilangkan“conflict of interest” yang terjadi ketika pengembang perangkat lunak berusahauntuk menguji produknya sendiri.
Walaupun seperti itu, sering terjadibeberapa kesalahan pemahaman berkaitan dengan peran ITG, antara lain:

·         Pengembangtidak boleh melakukan pengujian sama sekali. Pendapat ini tidak 100% benar,Karena dalam banyak kasus, pengembang juga melakukan proses unit testing danintegration test.
·         Perangkatlunak dilempar begitu saja untuk diuji secara sporadic. Hal tersebut adalahsalah karena pengemmbang dan ITG bekerja sama pada kesalahan proyek untukmemastikan pengujian akan dilakukan. Sementara pengujian dilakukan, pengembangharrus memperbaiki kesalahan yang ditemukan.
·         Pengujitidak terlibat pada proyek sampai tahap pengujian dimulai. Hal tersebut salahkarena ITG merupakan bagian dari tim proyek pengembangan perangkat lunak dimanaia terlihat selama spesifikasi proses dan tetap terlinat pada keseluruhanproyek besar.

2.     Masalah-Masalah Strategis


Masalah-masalah berikut harus diselesaikanbila pengujian ingin berlangsung sukses:
·      Menspesifikasikan kebutuhan produkpada kelakuan yang terukur sebelum pengujian dimulai. Strategi pengujian yangbaik tidak hanya untuk menenmukan kesalahan, namun juga unutk menilai kualitasprogram.

·      Menspesifikasikan tujuan pengujiansecara eksperangkat lunakisit. Sasaran spesifik dari pengujian harus dinyatakandalam bentuk yang terukur

·      Mengidentifikasikan kategori useruntuk perangkat lunak dan membuat profilnya masing-masing. Beberapa kasus yangmenggambarkan scenario interaksi bagi masing-masing kategori dapat mengurangikerja pengujian dengan memfokuskan pengujian pada penggunaan actual produk.

·      Membangun rencana pengujian yangmenegaskan rapid cycle testing. Umpan balik yang muncul dari rapid cycletesting dapaat digunakan untuk mengontrol kualitas dan strategi pengujian yangsesuai.

·      Membangun perangkat lunak yang tangguhyang dirancang untuk menguji dirinya sendiri. Perangkat lunak dapatmendiagnosis jenis-jenis kesalahan tertentu dan mengakomodasi pengujianotomatis dan pengujian regresi.

·      Menggunakan tinjauan formal yang efektif sebagai filter sebekum pengujian.Kajian teknis formal dapat mengungkap kesalahan seefektif pengujian sehinggadapat mengurangi jumlah kerja pengujian.

·      Mengadakan tinjauan formal dapatmengungkap inkonsistensi, penghapusan, dan kesalahan seketika dalam pendekatanpengujian.

·      Membangun pendekatan yang meningkatsecara berkelanjutan untuk proses pengujian. Strategi pengujian harus terukur.Metric yang terkumpul selama pengujian harus digunakan sebagai bagian daripendekatan control proses statistical bagi pengujian perangkat lunak.

3.     PengujianUnit

Unit testing (uji coba unit) fokusnya pada usahaverifikasi pada unit terkecil dari desain perangkat lunak, yakni modul. Ujicoba unit selalu berorientasi pada white box testing dan dapat dikerjakanparalel ayau beruntun dengan modul lainnya.


PertimbanganPengujian Unit

Interface modul diuji untuk memastikan bahwa informasisecara tepat mengalir masuk dan keluar dari inti program yang diuji. Strukturdata local diuji untuk memastikan bahwa data yang tersimpan secara temporaldapat tetap menjaga integritasnya selama semua langkah langkah di dalamsuatu algoritma dieksekusi. Kondisi batas diuji untuk memastikan bahwa modulberoperasi dengan tepat pada batas yang ditentukan untuk membatasipemrosesan. Semua jalur independen(jalur dasar) yang melalui struktur controldipakai sedikirnya satu kali. Dan akhirnya penanganan kesalan diuji.


Prosedur Pengujian Unit
Sumber telah dikembangkan, ditunjang kembali dandiverifikasi untuk sintaksnya, maka perancangan test case dimulai. Peninjauankembali perancangan informasi akan menyediakan petunjuk untuk menentukan testcase. Karena modul bukan program yg berdiri sendiri maka driver (pengendali)dan atau stub perangkat lunaK harus dikembangkan untuk pengujian unit.

§  Driver adalah program yg menerima data untuk test case dan menyalurkan ke modul yg diuji danmencetak hasilnya.

§  Stub melayanipemindahan modul yg akan dipanggil untuk diuji

4.     Pengujian Integrasi

Pengujian terintegrasi adl teknik yg sistematis untukpenyusunan struktur program, pada saat dikerjakan uji coba untuk memeriksakesalahan yg nantinya digabungkan dengan interface. Metode pengujian:

A. Top down integration

Merupakan pendekatan inkrmental untuk penyusunanstruktur program. Modul dipadukan dgn bergerak ke bawah melalui kontrol hirarkidimulai dari modul utama. Modulsubordinat ke modul kontrol utama digabungkanke dalam struktur baik menurut depth first atau breadth first.
Proses integrasi:

·      Modul utama digunakan sebagai test driver danstub yg menggantikan seluruh modul yg secara langsung berada di bawah modulkontrol utama.

·      Tergantung pada pendekatan perpaduan yg dipilih(depth / breadth)

·      Uji coba dilakukan selama masing-masing moduldipadukan

·      Pada penyelesaian masing-masing uji coba stub yglain dipindahkan dgn modul sebenarnya.

·      Uji coba regression yaitu pengulangan pengujianuntuk mencari kesalahan lain yg mungkin muncul.

B. Buttom up integration

Pengujian buttom up dinyatakan dgn penyusunan ygdimulai dan diujicobakan dgn atomic modul (modul tingkat paling bawah pdstruktur program). Karena modul dipadukan dari bawah ke atas, proses ygdiperlukan untuk modul subordinat yg selalu diberikan harus ada dan diperlukanuntuk stub yg akan dihilangkan.


Strategi pengujian :

·      Modul tingkat bawah digabungkan ke dalam clusteryg memperlihatkan subfungsi perangkat lunak

·      Driver (program kontrol pengujian) ditulisuntuk mengatur input test case dan output

·      Clusterdiuji

·      Driver diganti dan cluster yg dikombinasikandipindahkan ke atas pada struktur program


5.     Pengujian Validasi

Setelah semua kesalahan diperbaiki maka langkahselanjutnya adalah validasi terting. Pengujian validasi dikatakan berhasil bilafungsi yg ada pada perangkat lunak sesuai dgn yg diharapkan pemakai. Validasiperangkat lunak merupakan kumpulan seri uji coba black box yg menunjukkansesuai dgn yg diperlukan.

Kemungkinan kondisi setelah pengujian:

§  Karakteristik performansi fungsi sesuai dgn spesifikasi dan dapat diterima

§  Penyimpangan dari spesifikasi ditemukan dan dibuatkan daftar penyimpangan.


Pengujian ALPHA dan BETA

Apabila PERANGKAT LUNAK dibuat untuk pelanggan makadapat dilakukan aceeptance test sehingga memungkinkan pelanggan untukmemvalidasi seluruh keperluan. Test ini dilakukan karena memungkinkan pelanggan menemukan kesalahan yg lebih rinci danmembiasakan pelanggan memahami PERANGKAT LUNAK yg telah dibuat.

Pengujian Alpha

Dilakukan pada sisi pengembang oleh seorang pelanggan.Perangkat Lunak digunakan pada setting yg natural dgn pengembang “yg memandang”melalui bahu pemakai dan merekam semua kesalahan dan masalah pemakaian

Pengujian Beta

Dilakukan pada satu atau lebih pelanggan oleh pemakaiakhir perangkat lunak dalam lingkungan yg sebenarnya, pengembang biasanya tidakada pada pengujian ini. Pelanggan merekan semua masalah (real atau imajiner) ygditemui selama pengujian dan melaporkan pada pengembang pada interval waktutertentu.


6.     Pengujian Sistem.

Pada akhirnya PERANGKAT LUNAK digabungkan dgn elemensystem lainnya dan rentetan perpaduan system dan validasi tes dilakukan. Jikauji coba gagal atau di luar skope dari proses daur siklus pengembangan system,langkah yg diambil selama perancangan dan pengujian dapat diperbaiki.Keberhasilan perpaduan PERANGKAT LUNAK dan system yg besar merupakan kuncinya.

Sistem testing merupakan rentetan pengujian ygberbeda-beda dgn tujuan utama mengerjakan keseluruhan elemen system ygdikembangkan.


Recovery Testing

Adalah system testing yg memaksa PERANGKAT LUNAK mengalami kegagalan dalam bermacam-macam cara dan apakah perbaikan dilakukandgn tepat.

Security Testing

Adalah pengujian yg akan melalukan verifikasi darimekanisme perlindungan yg akan dibuat oleh system, melindungi dari hal-hal ygmungkin terjadi.

Strees Testing

Dirancang untuk menghadapi situasi yg tidak normalpada saat program diuji. Testing ini dilakukan oleh system untuk kondisi seperti volume data yg tidak normal (melebihiatau kurang dari batasan) atau fekuensi.

7.     Debugging

Debugging bukan merupakanpengujian, namun merupakan konsekuensi dari pengujian yang berhasil. Jikasebuah kasus uji berhasil menemukan kesalahan, maka proses debugging bertujuanuntuk menghilangkan kesalahan tersebut.

Debugging merupakan proses yangsulit untuk dilakukan karena adanya beberapa karakteristik bug seperti:

§  Gejala dan penyebab dari bug bisa saja sangat jauh, gejala dapat muncul pada bagian tertentu dari program dan penyebabnya bisa saja berada pada bagian lain yang sangat jauh dari tempatmunculnya gejala.

§  Gejala dapat hilang ketika kesalahanyang lain diperbaiki

§  Gejala dapat ditimbulkan oleh sesuatu yang tidak salah( misal. Pembulatan yang tidak akurat).

§  Gejala dapat disebabkan oleh masalahtiming.

§  Kemungkinan sulit untuk memproduksi kondisi onput secara akurat.

§  Gejala dapat terjadi tiba-tiba.

§  Gejala dapat disebabkan oleh sesuatu yang didistribusikan melewati sejumlah tugas yang bekerja pada prosesor yang berbeda-beda.