Nama : Ilham Ramadhan
NPM : 2115061049
Kelas : PSTI D
Dosen Pengampu : Rio Ariestia Pradipta, S.Kom., M.T.I
SOFTWARE QUALITY ASSURANCE
- Software Quality Assurance
- Kebutuhan software adalah fondasi ukuran kualitas software, jika tidak sesuai dengan kebutuhan yang ditentukan maka kualitas pun kurang.
- Jika menggunakan suatu standar untuk pembangunan sofware mka jika software tidak memenuhi standar tersebut maka dianggap kurang berkualitas.
- sering kali ada kualitas yang secra langsung diutarakan (tersirat) seperti kemudahan penggunaan dan pemeliharaan yang baik, kualitas software dipertanyakan jika tidak memenuhi kebutuhan ini.
Software Quality Assurance merupakan perluasan dari definisi diatas yang mana kita dapat simpulkan, Software Quality Assurance (SQA) adalah serangkaian aktifitas yang sinematik dan terencana dalam rangka memastikan kualitas dari software. SQA terdapat juga grub yang mana sekumpulan orang orang menjalani aktifitas aktifitas SQA pada grub SQA tersebut yang mana mereka akan bertindak sebagai wakil dari klien, yaiutu dengan melihat dan memeriksa software dari sudut pandang klien.
Software quality assurance adalah kegiatan penting dalam sebuah perangkat lunak yang diterapkan pada setiap langkah dalam proses perangkat lunak. SQA mencakup prosedur untuk penerapan metode dan alat yang efektif, pengawasan kegiatan pengendalian kualitas seperti tinjauan teknis dan pengujian perangkat lunak, prosedur untuk manajemen perubahan, prosedur untuk memastikan kepatuhan terhadap standar, dan mekanisme pengukuran dan pelaporan. Software quality assurance berkaitan dengan memastikan bahwa perangkat lunak memiliki jumlah cacat yang kecil dan mencapai standar yang diperlukan untuk pemeliharaan, keandalan, portabilitas, dan sebagainya.
Elemen-Elemen
- Standards(Standar)
Standar perangkat lunak memainkan peran yang sangat penting dalam software quality management. Sebagai bagian dari proses QA ini, alat dan metode untuk mendukung penggunaan standar ini juga dapat dipilih. Tugas SQA adalah untuk memastikan bahwa standar yang telah diimplementasikan, diikuti dan bahwa semua produk kerja sesuai dengan mereka.
- Reviews and audits (Ulasan danaudit)
Technical reiviews adalah kegiatan kontrol kualitas yang dilakukan oleh software engineers untuk software engineers. Review harus memeriksa konsistensi dan kelengkapan dokumen atau kode yang direview dan memastikan bahwa standar kualitas telah diikuti. Namun, ulasan tidak hanya memeriksa kesesuaian dengan standar, melainkan juga digunakan untuk membantu menemukan masalah dan kelalaian dalam perangkat lunak atau dokumentasi proyek. Audit adalah jenis tinjauan yang dilakukan oleh personel SQA dengan maksud untuk memastikan bahwa pedoman kualitas diikuti untuk pekerjaan rekayasa perangkatlunak.
- Testing(Pengujian)
Software testing adalah fungsi kontrol kualitas yang memiliki satu tujuan utama, yaitu untuk menemukan kesalahan. Tugas SQA adalah memastikan bahwa pengujian direncanakan dengan baik dan dilakukan secara efisien sehingga memiliki kemungkinan tertinggi untuk mencapai tujuan utamanya.
- Error/defect collection and analysis (Pengumpulan dan analisis kesalahan / cacat)
SQA mengumpulkan dan menganalisis data kesalahan dan cacat untuk lebih memahami bagaimana kesalahan diperkenalkan dan kegiatan rekayasa perangkat lunak apa yang paling cocok untukmenghilangkannya.
- Change management (Pengubahanmanajemen)
Perubahan adalah salah satu aspek yang paling mengganggu dari setiap proyek perangkat lunak. Jika tidak dikelola dengan baik, perubahan dapat menyebabkan kebingungan, dan kebingungan hampir selalu mengarah pada kualitas yang buruk. SQA memastikan bahwa praktik manajemen perubahan yang memadai telah dibentuk.
- Education(Edukasi)
Setiap software organization ingin meningkatkan software engineering practices. Kontributor utama dalam peningkatan adalah pendidikan software engineers, manajer mereka, dan stakeholder lainnya. Organisasi SQA memimpin dalam peningkatan proses perangkat lunak dan merupakan pendukung dan sponsor utama program pendidikan.
- Vendor management (Manajemenvendor)
Tugas organisasi SQA adalah untuk memastikan bahwa perangkat lunak yang dihasilkan berkualitas tinggi dengan menyarankan praktik kualitas khusus yang harus diikuti oleh vendor (bila mungkin), dan memasukkan mandat kualitas sebagai bagian dari kontrak apa pun dengan vendor eksternal.
- Security management (Manajemenkeamanan)
Dengan meningkatnya cybercrime dan peraturan pemerintah baru tentang privasi, setiap organisasi perangkat lunak harus melembagakan kebijakan yang melindungi data disemua tingkatan, membangun perlindungan firewall untuk WebApps, dan memastikan bahwa perangkat lunak belum dirusak secara internal. SQA memastikan bahwa proses dan teknologi yang tepat digunakan untuk mencapai software security yang aman.
- Safety(Keamanan)
SQAmungkinbertanggungjawabuntukmenilaidampakkegagalanperangkatlunakuntuk memulai langkah-langkah yang diperlukan untuk mengurangirisiko.
- Risk management (Manajemenrisiko)
Meskipun analisis dan mitigasi risiko menjadi perhatian para software engineers, organisasi SQA memastikan bahwa kegiatan manajemen risiko dilakukan dengan benar dan bahwa rencana kontinjensi terkait risiko telah ditetapkan.
Tujuan, Atribut, dan Metrik dari SQA
- Persyaratankualitas
SQA harus memastikan bahwa tim dari software telah meninjau model persyaratan dengan teliti untuk mendapatkan kualitas yang tinggi.
- Kualitasdesain
Setiap elemen dari model desain harus dinilai oleh tim software untuk memastikan bahwa model tersebut menunjukan kualitas yang tinggi dan bahwa desain itu sendiri memenuhi persyaratan yang ada. SQA mencari atribut desain yang merupakan indicator dari kualitas.
- Kualitaskode
Source code dan produk kerja yang berkaitan (misalkan,informasi deskriptif lainnya) harus sesuai dengan standar pengkodean local dan menunjukkan karakteristik yang akan memudahkan pemeliharaan software. SQA harus mengisolasikan atribut-atribut yang memungkinkan analisis kualitas yang wajar darikode.
- Efektivitas kontrolkualitas
SQA menganalisis alokasi sumber daya untuk ulasan dan pengujian untuk menilai apakah sumber daya dialokasikan dengan cara yang paling efektif atau tidak.
2. Tugas Quality Assurance
Software Quality Assurance adalah proses sistematis untuk memeriksa apakah sebuah software telah dikembangkan sesuai dengan kebutuhan yang telah ditentukan sebelumnya. Proses ini, bisa dilaksanakan oleh seorang QA Tester atau oleh seorang QA Engineer. QA Tester memiliki tugas utama melaksanakan pengujian terhadap perangkat atau emulator, membuat alur pengujian, serta membuat laporan hasil pengujian. Sementara QA Engineer biasanya bertugas untuk membuat porgram pengujian otomatis, membuat laporan pengujian, memberikan masukan atas aplikasi yang diuji, serta berkomunikasi dengan pihak-pihak yang berkepentingan, seperti pengembang UI/UX, back end atau product manager (PM).
Untuk proses QA, dibutuhkan kemampuan-kemampuan:
- Mindset Pengujian
- Analisa & Pengujian Fungsional
- Perbaikan Proses
- Defect Management
- Pengujian Keamanan
- Pengujian Performa
- Otomasi
- User Acceptance Testing (UAT)
Soft skil yang harus diperlukan oleh seorang SQA:
- Orientasi layanan pelanggan
- Teliti
- Detail
- Pandai untuk komunikasi secara lisan dan tertulis
- Mampu dalam pengumpulan data
- Manajemen dan analisis
- Menganalisis masalah dan pemecahan masalah perencanaan dan pengorganisasian keputusan Pengambilan keputusan
- Mampu bekerja sama
Dalam menjalankan proses software QA, ini beberapa yang diperlukan:
- Laptop (Linux OS/ Mac)
- Device utk pengujian
- Pengetahuan pemrograman
- Terbiasa dengan Git
- Terbiasa dengan Agile (Scrum)
Objektifnya untuk QA, yaitu sebagai berikut:
- Memahami aspek software quality assurance, quality control, dan kualitas software beserta praktik terbaik, alat dan teknik terbaik untuk para pengembang software.
- Memahami kualitas spesifikasi, desain, konsruksi dan kesesuaian yang dapat diterapkan ke dalam organisasi pengembangan software baik mikro maupun makro.
- Memahami pencapaian kualitas pada tingkat komponen dan mengeksplorasi kualitas proses dari sudut pandang implementasi bukan dari sudut pandang appraiser / assessor.
- Memahami dasar framework yang digunakan dalam melakukan aktivitas dan mengetahui langkah-langkah yang diperlukan untuk mencapai kesesuaian dengan model-model tersebut.
- Mampu menyusun dokumentasi aktivitas SQA.
Tugas Quality Assurance :
- Memiliki tugas pokok dalam perencanaan prosedur jaminan kualitas suatu produk atau jasa
- Menafsirkan dan menerapkan standar jaminan kualitas
- Mengevaluasi kecukupan standar jaminan kualitas
- Merancang sampel prosedur dan petunjuk untuk mencatat dan melaporkan data berkualitas
- Meninjau pelaksanaan dan efisiensi kualitas dan inspeksi sistem agar berjalan sesuai rencana, melaksanakan dan memantau pengujian dan inspeksi bahan dan produk untuk memastikan kualitas produk jadi.
- Mendokumentasikan audit internal dan kegiatan jaminan kualitas lainnya
- Mengumpulkan dan menyusun data kualitas statistik
- Menganalisis data untuk mengidentifikasi area untuk perbaikan dalam sistem mutu
- Mengembangkan, merekomendasikan dan memantau tindakan perbaikan dan pencegahan
- Menyiapkan laporan untuk berkomunikasi hasil dari kegiatan kualitas
- Mengidentifikasi kebutuhan pelatihan dan mengatur intervensi pelatihan untuk memenuhi standar kualitas
- Mengkoordinasikan dan dukungan di tempat audit yang dilakukan oleh penyedia eksternal
- Mengevaluasi temuan audit dan menerapkan tindakan koreksi yang tepat
- Mengelola dan memeriksa kegiatan manajemen risiko
- Bertanggung jawab untuk sistem manajemen dokumen
- Memastikan kepatuhan berkelanjutan dengan persyaratan peraturan kualitas dan industri yang ditetapkan perusahaan.
3. Software Quality Factors
Aspek kualitas software merupakan salah satu hal yang penting dalam pengembangan suatu perangkat lunak. Menurut McCall terdapat 3 kategori yang mempengaruhi kualitas perangkat lunak yang dikenal dengan “McCall’s Triangle of Quality”. Ketiga kategori tersebut adalah:
- Operasi produk: sifat-sifat operasional sebuah software yang perlu diperhatikan olehpengembang
- Revisi produk: kemampuan software dalam menjalaniperubahan
- Transisi produk: kemampuan penyesuaian software dalam lingkungan yangbaru
Masing-masing kategori yang telah disebutkan diatas memiliki 5 faktor,diantaranya:
- Correctness(kebenaran)
Correctness merupakan sebuah persyaratan yang harus dipenuhi oleh program dan dapat memenuhi tujuan/misi pelanggan. Sebuah perangkat lunak dapat dikatakan benar jika dapat menghasilkan keluaran yang benar untuk setiap kemungkinan masukan oleh pengguna,melakukan proses yang seharusnya (tidak kurang dan tidak berlebihan), dan secara formal harus bisa dibuktikan secaramatematis.
- Reliability(keandalan)
Kemampuan program yang diharapkan dapat menampilkan fungsi yang sesuai dengan harapan pengguna. Pengguna mungkin akan sesekali menerima kegagalan perangkat lunak dan masih menganggap bahwa sistem yang salah dapat diandalkan apabila kegagalan yang terjadi sangat kecil dan tidak mempengaruhi tujuan pengguna tersebut.
- Efficiency(efisiensi)
Efisiensi berhubungan dengan sumber daya perangkat lunak (software) dan kode-kode yang diperlukan untuk melakukan semuaf ungsi. Misalnya : operating system, bahasa pemrograman, dan desain.
- Integrity(integritas)
Integritas berkaitan dengan keamanan sistem perangkat lunak terhadap data dari orang-orang tertentu. Pihak developer harus memperhatikan dengan baik setiap kebutuhan akan hak akses perangkat lunak pada setiap penggunanya.
- Usability(kegunaan)
Faktor usability dapat dilihat dari kemudahan perangkat lunak untuk digunakan dan dipelajari. Usability mempunyai unsur akademis seperti psikologis, ergonomi, dan human factors
ISO 9126
ISO 9126 adalah standar terhadap kualitas perangkat lunak yang diakui secara internasional. ISO 9126 mendefinisikan kualitas produk perangkat lunak, model, karakteristik mutu, dan metrik terkait yang digunakan untuk mengevaluasi dan menetapkan kualitas sebuah produk software. Selain itu, standar ISO juga harus dipenuhi dari sisi manajemen. Jika manajemennya tidak memenuhi standar ISO maka hasil kerjanya pun tidak dapat diberikan sertifikat standar ISO.
Faktor-faktor kualitas menurut ISO 9126 meliputi enam karakteristik kualitas, yaitu:
- Functionality (Fungsionalitas). Kemampuan perangkat lunak untuk menyediakan fungsi sesuai kebutuhan user dan memuaskan user.
- Reliability (Kehandalan). Kemampuan perangkat lunak untuk mempertahankan tingkat kinerja tertentu/ performance dari software (ex: akurasi, konsistensi, kesederhanaan, toleransi kesalahan).
- Usability (Kebergunaan). Kemampuan perangkat lunak untuk dipahami, dipelajari, digunakan, dan menarik bagi pengguna.
- Efficiency (Efisiensi). Kemampuan perangkat lunak untuk memberikan kinerja yang sesuai dan relatif terhadap jumlah sumber daya yang digunakan pada saat keadaan tersebut (ex: efisiensi penyimpanan).
- Maintainability (Pemeliharaan). Kemampuan perangkat lunak untuk dimodifikasi. Modifikasi meliputi koreksi, perbaikan atau adaptasi terhadap perubahan lingkungan, persyaratan, dan spesifikasi fungsional (ex: konsistensi).
- Portability (Portabilitas). Kemampuan perangkat lunak untuk ditransfer dari satu lingkungan ke lingkungan lain atau kemampuan software beradaptasi saat digunakan di area tertentu (ex: self documentation, teratur).
Six Sigma
Six Sigma adalah sebuah tool atau cara perusahaan dapat mengembangkan kapasitas proses bisnis. Tujuan metode ini adalah meningkatkan performa dan menurunkan kemungkinan kesalahan. Pada akhirnya, Six Sigma mampu mewujudkan proses sebuah perusahaan yang kualitas produknya lebih baik, meningkatkan keuntungan, dan bahkan meningkatkan semangat karyawan. Six Sigma mendapatkan namanya dari kata “six” yang berarti enam (6) dan “sigma” yang berarti standar deviasi, yaitu salah satu ukuran sebaran data dalam ilmu statistika.
Metodologi ini berasal dari kurva lonceng dalam statistika, di mana satu sigma melambangkan satu standar deviasi dari mean atau rata-rata. Jika suatu proses memiliki enam sigma yang terdiri dari tiga sigma di atas dan di bawah, tingkat kegagalannya dinilai rendah. Secara sederhana, semakin tinggi nilai sigma, semakin kecil kemungkinan cacat sebuah proses.
Berikut adalah 5 prinsip dasar metodologi ini, yaitu fokus pada konsumen, mengukur value stream dan mengidentifikasi masalah, eliminasi proses yang tidak perlu, partisipasi semua pihak, dan ekosistem yang fleksibel dan responsive.
CMMI
CMMI adalah singkatan dari Capability Maturity Model Integration. Ini adalah kerangka kerja (framework) yang bisa digunakan untuk mengembangkan proses di dalam perusahaan.
CMMI membantu kita untuk memperbaiki proses di perusahaan/organisasi kita. Dengan membaiknya proses, diharapkan produk yang dihasilkan akan ikut menjadi baik. CMMI dirumuskan oleh Software Engineering Institute di Carnegie Mellon University. Para peneliti di SEI telah mengamati proyek pembangunan perangkat lunak di seluruh dunia, mulai dari proyek kecil sampai proyek raksasa. Organisasi yang diteliti meliputi NASA, IBM, dan kontraktor Departemen Pertahanan Amerika Serikat. Pengalaman yang dimiliki organisasi tersebut dirangkum dalam seperangkat aturan yang disebut CMMI.
CMMI terdiri dari rangkaian practices. Dalam rangkaian practices ini ada rambu-rambu atau rekomendasi yang dapat diikuti. Practices dalam CMMI dibagi menjadi dua, yaitu Generic Practices (GP) dan Specific Practices (SP). Bila kita sudah mengimplementasikan practices dengan sempurna, kita dianggap sudah memenuhi Goals. Sama seperti practices, ada Generic Goals (GG) dan Specific Goals (SG). SG dan SP dikelompokkan menjadi Process Area (PA). Total ada 22 Process Area dalam CMMI for Development versi 1.2.
SUMBER :
https://docplayer.info/55220417-Software-quality-assurance.html
https://toghr.com/software-quality-assurance-adalah/
http://fxekobudi.net/ilmu-komputer/kualitas-perangkat-lunak-model-iso-9126/
https://medium.com/@makersinstitute/mengenal-lebih-jauh-tentang-software-quality-assurance-844361cd50db
https://sis.binus.ac.id/2019/04/04/kualitas-software-model-iso-9126/
https://glints.com/id/lowongan/six-sigma/
https://software.endy.muhardin.com/manajemen/apa-itu-cmmi/