Ketika pemrograman object oriented digunakan, maka konsep dari unit berubah. Setiap class dan objek memiliki data dan operasi methods yang
memanipulasi data-data ini. Unit testing tidak lagi dilakukan pada modul-modul terpisah, tetapi dilakukan pada class atau objek. Hal ini dikarenakan sebuah kelas
bisa memiliki sejumlah operasi berbeda dan beberapa operasi tersebut dapat berada pada kelas-kelas yang berbeda, artinya unit testing berubah secara dramatis
Pressman, 2002:664. Kita tidak dapat lagi melakukan test pada satu operasi secara terpisah
melainkan dilakukan sebagai bagian dari kelas. Berikut adalah ilustrasinya, sebuah superclass yang memiliki operasi X yang diturunkan pada sejumlah
subclasses. Maka setiap subclasses akan menurunkan operasi X . Dikarenakan operasi X tersebut digunakan oleh beberapa kelas, maka Unit test pada operasi X
harus dilakukan pada subclasses.
2.10 System Testing
System testing adalah serangkaian test yang bertujuan untuk menguji system secara keseluruhan. Meskipun setiap test memiliki tujuan yang
berbeda, namun seluruh tahapan dilakukan dengan terintegrasi Pressman, 2002:525
. Berikut ini adalah serangkaian test yang termasuk dalam system testing.
2.10.1 Recovery Testing
Sistem yang berbasis komputer harus dapat pulih dari kesalahan dan melanjutkan pemrosesan ketika terjadi keadaan yang tidak diinginkan. Dalam
beberapa kasus, sistem harus fault tolerant, yaitu pengolahan tidak boleh menyebabkan kesalahan fungsi sistem secara keseluruhan. Dalam kasus lain,
kegagalan system harus dikoreksi dalam jangka waktu tertentu atau kerugian secara ekonomi yang parah akan terjadi Pressman, 2002:525.
Recovery Testing adalah tes sistem yang memaksa perangkat lunak untuk gagal dalam berbagai cara dan memverifikasi bahwa pemulihan dilakukan
dengan benar. Jika pemulihan otomatis dilakukan oleh sistem itu sendiri, reinitialization, mekanisme checkpointing, data recovery, dan restart
dievaluasi. Jika pemulihan membutuhkan intervensi manusia, berarti waktu untuk perbaikan dievaluasi.
2.10.2 Security Testing
Security testing melakukan verifikasi bahwa mekanisme keamanan yang ada pada system akan mampu melindungi dari serangan. Sistem
keamanan harus, di uji kekebalannya dari serangan langsung. Selama pengujian keamanan, tester memainkan peran sebagai individu yang
melakukan serangan terhadap sistem Pressman, 2002:525. Tester mungkin mencoba untuk mendapatkan password dengan
perangkat lunak khusus yang dirancang untuk membuat kerusakan pada pertahanan yang telah dibangun, sengaja menyebabkan kesalahan pada sistem,
dapat menelusuri melalui data tidak aman. Dengan cukup waktu dan sumber daya, pengujian keamanan yang baik pada akhirnya akan menembus sistem.
Peran perancang sistem untuk membuat penetrasi biayanya lebih dari nilai
informasi yang akan diperoleh Pressman, 2002:526.
2.10.3 Stress Testing
Tujuan dari stress testing adalah untuk mengevaluasi dan menentukan perilaku perangkat lunak ketika beban yang ditawarkan lebih dari kapasitas
yang dirancang. Sistem sengaja dibebankan hingga melampaui batas yang ditentukan. Hal ini dilakukan untuk memastikan bahwa sistem dapat tetap
berfungsi pada kondisi terburuk Naik, 2008:243. Stress testing menjalankan pengujian sistem dengan cara yang menuntut
sumber daya frekuensi, atau volume dalam kuantitas lebih. Misalnya: 1. Tes khusus dapat dirancang dengan menghasilkan sepuluh permintaan per
detik, ketika satu atau dua adalah tingkat rata-rata. 2. melakukan masukan data yang dapat ditingkatkan dengan urutan besarnya
untuk melihat bagaimana fungsi masukan akan menjawab. 3. Uji kasus yang membutuhkan memori maksimum atau sumber daya
lainnya dijalankan, 4. Uji kasus yang dapat menyebabkan sistem operasi terbebani.
5. Uji kasus yang dapat menyebabkan pengambilan data yang berlebihan
.
2.10.4 Performance Testing