Testing Perangkat Lunak

>>> Objektif testing

testing adalah sebuah proses terhadap program/aplikasi untuk menemukan kesalahan dan segala kemungkinan yang akan menimbulkan kesalahan sesuai dengan spesifikasi software yang telah ditentukan sebelum aplikasi tersebut diserahkan kepada customer. testing bertujuan untuk menemukan kesalahan.

->; Proses testing :

1.error :> melakukan pengecekan error

2.requirements conformance :> konfirmasi spesifikasi awal

3.performance :> Penilaian performance

4. An indication of quality :> setelah dapat performance bisa identifikasi kualitas.

sebuah perangkat lunak dsb traceable jika memenuhi beberapa hal berikut :

1. operability

2.absorbability : apa yang kamu lihat adalah apa yang kamu testing.

3.controllability : makin mudah dikendalikan maka makin mudah pengujian dioptimalkan.

4.decomposability : pengawasan terhadap scope pengujian memudahkan isolasi pengujian.

5.simplicity : lebih sedikit item yang diuji akan lebih baik.

6.stability : sedikit perubahan lebih memperkecil proses pengujian.

7.understanbility : makin lengkap informasi semakin mudah proses pengujian.

Kategori testing menurut daniel J.Mosley :

1. pengujian statik ; termasuk sintaks dan inspeksi

2. pengujian dinamik ; logika mengkoding, melakukan eksekusi pada sumber code.

3. pengujian manual ; tanpa bantuan apa pun, pekerjaan dilakukan oleh manusia.

4. pengujian otomasi ; pengujian dengan alat bantu (compiler contohnya)

>>> white box testing

->; pengujian yang dilakukan lebih dekat pada system untuk menguji prosedur-prosedur yang ada. (memflowchartkan koding)

>>>black box testing

->; pengujian dilakukan untuk antarmuka perangkat lunak.

Data Flow Diagram (DFD)

Data Flow Diagram (DFD) adalah representasi grafik dari sebuah sistem. DFD menggambarkan komponen-komponen sebuah sistem, aliran-aliran data di mana komponen-komponen tersebut, dan asal, tujuan, dan penyimpanan dari data tersebut.
Ada 3 (tiga) jenis DFD, yaitu ;
– Context Diagram (CD)
– DFD Fisik
– DFD Logis

DFD Level
DFD dapat digambarkan dalam Diagram Context dan Level n. Huruf n dapat menggambarkan level dan proses di setiap lingkaran.
– Diagram Context
– Diagram Level n
– DFD Logis
– DFD Fisik

Context Diagram (CD)
Jenis pertama Context Diagram, adalah data flow diagram tingkat atas (DFD Top Level), yaitu diagram yang paling tidak detail, dari sebuah sistem informasi yang menggambarkan aliran-aliran data ke dalam dan ke luar sistem dan ke dalam dan ke luar entitas-entitas eksternal. (CD menggambarkan sistem dalam satu lingkaran dan hubungan dengan entitas luar. Lingkaran tersebut menggambarkan keseluruhan proses dalam sistem).
Beberapa hal yang harus diperhatikan dalam menggambar CD;
– Terminologi sistem :
– Batas Sistem adalah batas antara “daerah kepentingan sistem”.
– Lingkungan Sistem adalah segala sesuatu yang berhubungan atau mempengaruhi sistem tersebut.
– Interface adalah aliran yang menghubungkan sebuah sistem dengan linkungan sistem tersebut.
– Menggunakan satu simbol proses,

Catatan:
Yang masuk didalam lingkaran konteks (simbol proses) adalah kegiatan pemrosesan informasi (Batas Sistem). Kegiatan informasi adalah mengambil data dari file, mentransformasikan data, atau melakukan filing data, misalnya mempersiapkan dokumen, memasukkan, memeriksa, mengklasifikasi, mengatur, menyortir, menghitung, meringkas data, dan melakukan filing data (baik yang melakukan secara manual maupun yang dilakukan secara terotomasi).
– Nama/keterangan di simbol proses tersebut sesuai dengan fungsi sistem tersebut,
– Antara Entitas Eksternal/Terminator tidak diperbolehkan komunikasi langsung
– Jika terdapat termintor yang mempunyai banyak masukan dan keluaran, diperbolehkan untuk digambarkan lebih dari satu sehingga mencegah penggambaran yang terlalu rumit, dengan memberikan tanda asterik ( * ) atau garis silang ( # ).
– Jika Terminator mewakili individu (personil) sebaiknya diwakili oleh peran yang dipermainkan personil tersebut.
– Aliran data ke proses dan keluar sebagai output keterangan aliran data berbeda.

Diagram Level n / Data Flow Diagram Levelled
Dalam diagram n DFD dapat digunakan untuk menggambarkan diagram fisik maupun diagram diagram logis. Dimana Diagram Level n merupakan hasil pengembangan dari Context Diagram ke dalam komponen yang lebih detail tersebut disebut dengan top-down partitioning. Jika kita melakukan pengembangan dengan benar, kita akan mendapatkan DFD-DFD yang seimbang. Beberapa hal yang harus diperhatikan dalam membuat DFD ialah:
– Pemberian Nomor pada diagram level n dengan ketentuan sebagai berikut:
• Setiap penurunan ke level yang lebih rendah harus mampu merepresentasikan proses tersebut dalam sepesifikasi proses yang jelas. Sehingga seandainya belum cukup jelas maka seharusnya diturunkan ke level yang lebih rendah.
• Setiap penurunan harus dilakukan hanya jika perlu.
• Tidak semua bagian dari sistem harus diturunkan dengan jumlah level yang sama karena yang kompleks bisa saja diturunkan, dan yang sederhana mungkin tidak perlu diturunkan. Selain itu, karena tidak semua proses dalam level yang sama punya derajat kompleksitas yang sama juga.
• Konfirmasikan DFD yang telah dibuat pada pemakai dengan cara top-down.
• Aliran data yang masuk dan keluar pada suatu proses di level n harus berhubungan dengan aliran data yang masuk dan keluar pada level n+1. Dimana level n+1 tersebut mendefinisikan sub-proses pada level n tersebut.
• Penyimpanan yang muncul pada level n harus didefinisikan kembali pada level n+1, sedangkan penyimpanan yang muncul pada level n tidak harus muncul pada level n-1 karena penyimpanan tersebut bersifat lokal.
• Ketika mulai menurunkan DFD dari level tertinggi, cobalah untuk mengidentifikasi external events dimana sistem harus memberikan respon. External events dalam hal ini berarti suatu kejadian yang berkaitan dengan pengolahan data di luar sistem, dan menyebabkan sistem kita memberikan respon.
– Jangan menghubungkan langsung antara satu penyimpanan dengan penyimpanan lainnya (harus melalui proses).
– Jangan menghubungkan langsung dengan tempat penyimpanan data dengan entitas eksternal / terminator (harus melalui proses), atau sebaliknya.
– Jangan membuat suatu proses menerima input tetapi tidak pernah mengeluarkan output yang disebut dengan istilah “black hole”.
– Jangan membuat suatu tempat penyimpanan menerima input tetapi tidak pernah digunakan untuk proses.
– Jangan membuat suatu hasil proses yang lengkap dengan data yang terbatas yang disebut dengan istilah “magic process”.
– Jika terdapat terminator yang mempunyai banyak masukan dan keluaran, diperbolehkan untuk digambarkan lebih dari satu sehingga mencegah penggambaran

yang terlalu rumit, dengan memberikan tanda asterik ( * ) atau garis silang ( # ), begitu dengan bentuk penyimpanan.
– Aliran data ke proses dan keluar sebagai output keterangan aliran data berbeda.

DFD Fisik
Adalah representasi grafik dari sebuah sistem yang menunjukan entitas-entitas internal dan eksternal dari sistem tersebut, dan aliran-aliran data ke dalam dan keluar dari entitas-entitas tersebut. Entitas-entitas internal adalah personel, tempat (sebuah bagian), atau mesin (misalnya, sebuah komputer) dalam sistem tersebut yang mentransformasikan data. Maka DFD fisik tidak menunjukkan apa yang dilakukan, tetapi menunjukkan dimana, bagaimana, dan oleh siapa proses-proses dalam sebuah sistem dilakukan. (Tidak Bahas).
Perlu diperhatikan didalam memberikan keterangan di lingkaran-lingkaran (simbol proses) dan aliran-aliran data (simbol aliran data) dalam DFD fisik menggunakan label/keterangan dari kata benda untuk menunjukan bagaimana sistem mentransmisikan data antara lingkaran-lingkaran tersebut.
Misal :
Aliran Data : Kas, Formulir 66W, Slip Setoran
Proses : Cleck Penjualan, Kasir, Pembukuan, dll.

DFD Logis
Adalah representasi grafik dari sebuah sistem yang menunjukkan proses-proses dalam sistem tersebut dan aliran-aliran data ke dalam dan ke luar dari proses-proses tersebut. Kita menggunakan DFD logis untuk membuat dokumentasi sebuah sistem informasi karena DFD logis dapat mewakili logika tersebut, yaitu apa yang dilakukan oleh sistem tersebut, tanpa perlu menspesifikasi dimana, bagaimana, dan oleh siapa proses-proses dalam sistem tersebut dilakukan.
Keuntungan dari DFD logis dibandingkan dengan DFD fisik adalah dapat memusatkan perhatian pada fungsi-funsi yang dilakukan sistem.
Perlu diperhatikan di dalam pemberian Keterangan/ Label;
• Lingkaran-lingkaran (simbol proses) menjelaskan apa yang dilakukan sistem
Misal : Menerima Pembayaran, Mencatat Penjualan, Membandingkan kas dan Daftar Penerimaan, Mempersiapkan Setoran, dll.
• Aliran-aliran data (simbol aliran data) menggambarkan sifat data.
Misal : Pembayaran (bukan “Cek”, “Kas”, “ Kartu Kredit”
Jurnal Penjualan (bukan “Buku Penjualan”), dll

Usulan dari analis , beberapa hal yang umum yang mendapat perhatian dalam mendesain baru tersebut ialah:
– Menggabungkan beberapa tugas menjadi Satu
– Master Detail Update
– Meminimalkan tugas-tugas yang tidak penting
– Menghilangkan tugas-tugas yang duplikat
– Menambahkan proses baru
– Meminimalkan proses input
– Menetapkan bagian mana yang harus dikerjakan komputer dan bagian mana yang harus dikerjakan manual

Unified Modeling Languange (UML)

Merupakan sistem arsitektur yang bekerja dalam OOAD dengan satu bahasa yang konsistem untuk menentukan visualisasi, mengkonstruksi dan mendokumentasi artifact yang terdapat dalam software.

#Diagram Struktural di UML terdiri dari :

1. Class Diagram

-> memperlihatkan himpunan kelas2,antarmuka2,kolaborasi2 serta relasi2.

2.Object diagram

-> memperlihatkan objek2 serta relasi2 antarobjek.

3.Component Diagram

-> memperlihatkan organisasi2 serta kebergantungan sistem/perangkat lunak pada komponen2 yang telah ada sebelumnya.

4.Deployment Diagram

-> memperlihatkan pemetaan software terhadap harware yang digunakan dalam implementasi system serta asosiasi antara komponen2 tsb.

#Diagram Behavioural di UML terdiri dari :

1. use Case Diagram

-> menjelaskan manfaat system jika dilihat menurut sudut pandang orang yang berada di luar system.

2.Sequence Diagram

-> menunjukkan interaksi yang terjadi antara objek dalam urutan waktu

3.Collaboration Diagram

-> diagram interaksi yang menekankan oragnisasi2 struktural dari objek yang menerima serta mengirim pesan.

4.Statechart Diagram

-> memperlihatkan state2 pada sistem, memuat state, transisi, event,serta aktifitas.

5.Activity Diagram

-> memperlihatkan aliran dari suatu aktifitas ke aktifitas lainnya dalam suatu sistem.

UML (Unified Modeling Language) Class Diagram

Class Diagram adalah Diagram yang paling umum dijumpai pada pemodelan berbasis UML.
Apa yang ada pada class diagram?
-Class dan interface beserta atribut dan operasinya
-Relasi yang terjadi antar objek
-Constraint terhadap objek-objek yang saling berhubungan
-Inheritance untuk organisasi class yang lebih baik
-Static view dari elemen pembangun sistem
-Mendeskripsikan jenis–jenis obyek dalam sistem dan berbagai macam hubungan statis yang terjadi.
-Class diagram juga menunjukkan property dan operasi sebuah Class dan batasan yang terdapat dalam hubungan dengan obyek.
-Mampu membantu proses pembuatan sistem dengan memanfaatkan konsep forward/reverse engineering

Memiliki 2 komponen penting :
-Structural
Ciri pembeda antar object
-Behavioral
Tingkah laku atau kegiatan yang mampu dilakukan object

Contoh kasus: pintu
Struktural :
Lebar
Tinggi
Warna
Behavioral :
Buka
Tutup

class
Merepresentasikan blueprint dari object
Properti: ciri khas dan pembeda antar objek
Metode: aksi yang dapat dilakukan oleh objek tersebut
Contoh class Manusia
Attribut: nama, usia, tanggal lahir
Method: berjalan, makan, minum

attribut
Atribut menunjukkan informasi yang dimiliki oleh suatu class, bisa juga disebut informasi yang berhubungan dengan class.
Notasi dari atribut
visibility name: type multiplicity = default {property-string}
Contoh
– name: String [1] = “Untitled” {readOnly}
+ berarti public, – berarti private, # berarti protected
“Untitled” adalah nilai yang diberikan secara default jika tidak ditentukan saat objek dibuat
{readOnly} adalah properti tambahan dari atribut, dimana disini berarti tidak bisa dimodifikasi

Operation/ method
Operasi digunakan untuk menunjukkan apa yang suatu class bisa lakukan atau apa yang bisa dilakukan pada suatu class
Notasi dari operations
visibility name (parameter-list) : return-type {property-string}
Parameter pada parameter-list dinotasikan seperti pada atribut
direction name: type = default value
Direction bisa berupa: in, out, atau inout
Contoh
+ balanceOn (date: Date) : Money

Relationship pada class diagram
-Association
-Dependency
-Aggregation
-Composite

“Proses”

1. model waterfall -> setiap output menjadi input fase lain
-Gather Requirements (mengumpulkan kebutuhan)
-specification (deskripsi tertulis yang dilakukan sistem)
-Design (arsitektur sistem)
-implementation (coding design)
-integration (penyatuan unit2 program)
-product

kelebihan :
-kualitas dari sistem yg dihasilkan akan baik
-dokumen pengembangan sistem sangat terorganisir
-selalu dalam control SQA
-maintenance mudah

kelemahan :
-kesalahan kecil akan menjadi masalah besar
-konsumen kesulitan membaca dokumen
-proses lambat dan tidak optimal
-konsumen tidak dapat melihat hasilnya hingga akhir tahapan

2.model prototyping
tahapan proses prototyping :
1>requirement
2> quick design
3> pembentukan prototype
4> evaluasi pelanggan
5> perbaikan prototype

kelebihan
-cepat dan demonya life
-adanya komunikasi baik antara pelanggan dan pengembang
-pengembang berperan aktif dalam pengembangan sistem
-menghemat waktu
-penerapan lebih mudah

kelemahan
-dibuat terburu-buru sehingga tidak mempunyai struktur kokoh.
-pengembang kadang2 menggunakan implementasi yg sembarangan
-tidak mencerminkan proses perancangan yg baik

3.model spiral
a.komunikasi pelanggan
b.perencanaan
c.analisis resiko
d.perekayasaan
e.konstruksi dan peluncuran
f.evaluasi pelanggan

kelebihan
-adanya prototype memudahkan komunikasi dengan konsumen
-analisa rekayasa
-baik digunakan untuk pengembangan sistem yang besar

kekurangan
-tahap analisa resiko sewaktu-waktu dapat membatalkan proses rekayasa
-sulit untuk meyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol

4.model incremental
tahapan pada incremental model :
-requirement
-specification
-arciktektur design
-tahapan membangun tiap bagian secara berurutan

kelebihan
– personil bekerja optimal
– pihak konsumen dapat menggunakan bagian yg telah selesai
– memaksimalkan modal investasi konsumen
– mengurangi trauma karena perubahan sistem

kelemahan
– membutuhkan modal besar
– harus open architecture
– dapat menjadi build and fix model

Definisi Software

APA itu Software?
– merepresentasikan masalah dunia nyata
– masalah dunia nyata lebih komplek dari “switching two values”
– meliputi program,dokumen ,data
– sofware tidak sama dengan program

Karakteristik sofware :
– software adalah komponenn system yang logic (bukan fisik)
– software dibangun/direkayasa, tidak melalui proses manufaktur secara umum
– software tidak kadaluarsa
– sofware dibangun berdasarkan kebutuhan

sofware aplikasi
– system software : program ditulis u/ melayani program2 yang lain (compiler, editor, dan utilitas pengatus file)
-real-time software : sistem yg memiliki delay dlm batas2 toleransi (mesin atm ,sistem kereta api otomatis)
– bussiness software : mensupport kebutuhan organisasi2.
– engineering & scientific software : software yg ditanamkan u/ fungsionalitas tertentu n tidak bisa diedit. (mesin cuci,oven)
– personal computer software : pengolah kata dll
– actificial intelligence software (software kecerdasan buatan)

Perkembangan Software
1. tahun 50-an : batch orientation, limited distribution, custom software
2. tahun 65-an sampai 75-an : multiuser, real time, database, product software.
3. sekarang : powerful dekstop system, object oriented tech, expert system, artificial neural network, paralel computing, network computer.

Mengapa perlu SE?
# software adalah sesuatu yang komplek
# software harus benar

elemen SE
product = software : programs, documents, data

proses bagaimana software di bangun :
1. management process
# project management
# configuration management
# Quality assurance management

2. Technical Process
#metode yang harus di aplikasikan : analisis, perancangan, pemrograman, pengujian
#siapa saja yang terlibat : manager, software developer, support.

software engineering layers
1.tools -> power designer,dll
2. mwthods -> design view,code review, testing
3. process -> waterfall,dll

Pengenalan RPL


Matakuliah RPL (Rekayasa perangkat lunak) dan turunannya sebagai sebuah metodologi untuk mengubah dunia nyata menjadi dunia digital. Berbagai proses harus dilakukan untuk mendapatkan dunia digital tersebut. Umumnya akan melibatkan tahap-tahap sebagai berikut:
1. Analisis
2. Desain
3. Coding
4. Pengujian
5. Implementasi (penerapan di dunia nyata, bukan skala laboratorium)
6. Maintenance dan Improvement

Dari ke-6 tahapan tersebut dikombinasikan dalam percepatan maupun pelengkapannya. Beberapa tahap digabung menjadi satu atau pun beberapa tahap dirinci lebih detil.
Untuk percepatan yang biasa dilakukan adalah memotong dan menggabung beberapa tahap menjadi satu. Contohnya metodologi Prototyping. Dibuat lebih cepat dan singkat, agar segera dapat dievaluasi.
RPL saat ini lebih banyak untuk mendukung penyusunan SIstem Informasi. Berbagai jenis sistem informasi, diantaranya (diseuaikan dengan kemunculannya):
1. TPS (Sistem pencatatan Transaksi)
2. Sistem Informasi Manajemen
3. Otomatisasi Perkantoran
4. Sistem Pendukung Keputusan
5. Sistem Pendukung Keputusan Kelompok
6. Sistem Pakar
7. Sistem Cerdas Buatan
8. Sistem Informasi Eksekutif