Contoh Kasus Unit Test Bank Account Menggunakan Visual Studio 2012

on Rabu, 17 Mei 2017

Pada contoh kasus ini, kita akan membuat unit testing Bank Account menggunakan Visual Studio 2012. Sample Code dapat di copy pada link berikut : Sample Code untuk Unit Testing - Bank Account

Langkah pembuatan Class :
1. Buka Visual Studio 2012 - New Project - Other Language - C# - ClassLibrary, Name : BankCS
2. Rename Class1.cs menjadi BankAccount.cs
3. Paste sample code pada BankAccount.cs
4. Klik menu Build - Build Solution

Pada kasus ini kita akan menguji method debit

// method under test  
public void Debit(double amount)  
{  
    if(amount > m_balance)  
    {  
        throw new ArgumentOutOfRangeException("amount");  
    }  
    if (amount < 0)  
    {  
        throw new ArgumentOutOfRangeException("amount");  
    }  
    m_balance += amount;  
}  
  
Dengan menganalisis method yang sedang diuji, setidaknya ada tiga perilaku yang perlu diperiksa:
1. ArgumentOutOfRangeException jika debit lebih besar dari balance
2. ArgumentOutOfRangeException jika debit lebih kecil dari 0
<0 p="">3. Jika 1 dan 2 tidak terpenuhi, balance=balance-debit.
Pada tes pertama kami, kita akan memverifikasi  jumlah yang valid (debit0) maka balance=balance-debit.

Langkah pengujian :
1. Klik menu File - Add - New Project - Other Language - C# - Test - UnitTestProject, Name : BankTest
<0 p="">
2. Rename unitTest1.cs menjadi BankAccountTests.cs
3. Add Reference dengan cara klik kanan pada BankTest di Solution Explorer - Add Reference - Solution - BankCS
<0 p="">
4. Pada BankAccountTests.cs tambahkan :
    using BankAccountNS;
5. Tambahkan code berikut di dalam test method :

// unit test code  
[TestMethod]  
public void Debit_WithValidAmount_UpdatesBalance()  
{  
    // arrange  
    double beginningBalance = 11.99;  
    double debitAmount = 4.55;  
    double expected = 7.44;  
    BankAccount account = new BankAccount("Mr. Bryan Walton", beginningBalance);  

    // act  
    account.Debit(debitAmount);  

    // assert  
    double actual = account.Balance;  
    Assert.AreEqual(expected, actual, 0.001, "Account not debited correctly");  
}  
6. Klik menu Build - Build Solution
7. Buka Test Explorer dari Menu Test - Windows - Test Explorer
8. Klik Run All untuk menjalankan semua test method yang sudah dibuat.

9. Hasil dari test method debitWithValidAmount adalah Failed. Karena ada yang salah pada class library, ganti  m_balance += amount; menjadi  m_balance -= amount;
10. Build kembali Solution, lalu Run All Test, maka hasil Test berubah menjadi Pass
11. Lakukan hal yang sama untuk test method lain
ArgumentOutOfRangeException jika debit lebih besar dari balance

 // unit test code  
[TestMethod]  
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public void Debit_WhenDebitBiggerThanBalance()  
{  
    // arrange  
    double beginningBalance = 11.99;  
    double debitAmount = 15.00;  
    BankAccount account = new BankAccount("Mr. Bryan Walton", beginningBalance);  
    // act  
    account.Debit(debitAmount);  
    // assert  
}  

ArgumentOutOfRangeException jika debit lebih kecil dari 0
 // unit test code  
[TestMethod]  
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public void Debit_WhenDebitLessThanZero()  
{  
    // arrange  
    double beginningBalance = 11.99;  
    double debitAmount = -10.00;  
    BankAccount account = new BankAccount("Mr. Bryan Walton", beginningBalance);  
    // act  
    account.Debit(debitAmount);  
    // assert  
}  

Sample Code untuk Unit Testing Menggunakan Visual Studio 2012 - Class Library Bank Account

on Minggu, 07 Mei 2017

using System; 

namespace BankAccountNS
{
    ///  
    /// Bank Account demo class. 
    ///  
    public class BankAccount
    {
        private string m_customerName;

        private double m_balance;

        private bool m_frozen = false;

        private BankAccount()
        {
        }

        public BankAccount(string customerName, double balance)
        {
            m_customerName = customerName;
            m_balance = balance;
        }

        public string CustomerName
        {
            get { return m_customerName; }
        }

        public double Balance
        {
            get { return m_balance; }
        }

        public void Debit(double amount)
        {
            if (m_frozen)
            {
                throw new Exception("Account frozen");
            }

            if (amount > m_balance)
            {
                throw new ArgumentOutOfRangeException("amount");
            }

            if (amount < 0)
            {
                throw new ArgumentOutOfRangeException("amount");
            }

            m_balance += amount;
        }

        public void Credit(double amount)
        {
            if (m_frozen)
            {
                throw new Exception("Account frozen");
            }

            if (amount < 0)
            {
                throw new ArgumentOutOfRangeException("amount");
            }

            m_balance += amount;
        }

        private void FreezeAccount()
        {
            m_frozen = true;
        }

        private void UnfreezeAccount()
        {
            m_frozen = false;
        }

        public static void Main()
        {
            BankAccount ba = new BankAccount("Mr. Bryan Walton", 11.99); 

            ba.Credit(5.77);
            ba.Debit(11.22);
            Console.WriteLine("Current balance is ${0}", ba.Balance);
        }

    }
}

Contoh Kasus Coded UI Test aplikasi penambahan 2 angka dengan VB.Net

on Selasa, 02 Mei 2017

Pada contoh kasus ini kita akan menguji User Interface sebuah aplikasi penambahan 2 angka yang dbuat menggunakan VB.Net dengan menggunakan Coded UI Test pada Visual Studio 2012.


Coded UI test akan merekam apakah hasil yang tampil pada interface sesuai dengan yang diharapkan. Kita buat sebuah test case. Jika Angka 1 = 1 dan Angka 2 = 2 maka textbox Hasil seharusnya menampilkan angka 3.

Langkah Pengujian :
1. Buka Visual Studio 2012
2. New Project - Visual Basic - Test - Coded UI Test



3. Akan muncul sebuah kotak dialog yang di dalamnya terdapat 2 pilihan.

  • Pilih Record actions, edit UI map or add assertions apabila ingin merekam untuk pertama kalinya dan mengenerate code yang baru
  • Pilih Use an exising action recording untuk menimpa rekaman yang sudah ada dan menghubungkan dengan test case yang ada pada MTM
4. Pada kasus ini kita pilih Record actions, edit UI map or add assertions maka akan muncul toolbar Coded UI Test Builder pada sudut kanan bawah.
5. Jalankan aplikasi yang akan diuji.


Tombol 1 berfungsi untuk merekam pengujian
Tombol 2 berfungsi untuk menampilkan langkah yang dilakukan pada sistem yang diuji
Tombol 3 berfungsi untuk menyorot tools yang akan diuji 
Tombol 4 berfungsi untuk men generate kode program pengujian secara otomatis

6. Masukkan angka sesuai dengan test case yang direncanakan.
7. Klik dan tahan (drag) tombol 3(crosshair) /Alt+U lalu sorot pada textbox hasil.
8. Pada properties text, klik add assertion, pilih comparator : AreEqual, Comparison Value : 3
untuk memverifikasi bahwa hasil penambahan angka 1 dan 2 hasilnya adalah 3. 

9. Klik Tombol 4 (Generate Code) / Alt+G, maka kode program akan di generate secara otomatis.
10. Build Solution
11. Run Test melalui jendela Test Explorer.


Contoh Kasus Manual Testing Menu Kas Bank dengan Microsoft Test Manager

Pada contoh kasus manual test yang akan diuji adalah sebuah aplikasi desktop yang dibuat menggunakan VB.Net. Dengan menggunakan Microsoft Test Manager (MTM) kita akan menguji apakah aplikasi berjalan sesuai dengan yang diharapkan.

Ada beberapa test case yang dapat dibuat untuk menguji menu Kas Bank pada aplikasi diatas, misalnya :

  • Sebagai admin saya harus bisa menambah Kas/Bank baru
  • Sebagai admin saya harus bisa mengubah Kas/Bank yang sudah ada
  • Sebagai admin saya harus bisa menghapus Kas/Bank yang sudah ada
Langkah pengujian :
1. Buat Test Plans dan Test Suite pada MTM (Test Plans, Test Suite dan Test Case pada MTM)
2. Tambahkan Test Case Baru
3. Ketikkan pada Title "Sebagai admin saya harus bisa menambah Kas/Bank baru"
4. Ketikkan langkah-langkah untuk menambah kas/bank baru pada kolom Action dan hasil yang diharapkan pada kolom Expected Result seperti pada gambar di bawah ini.
5. Lakukan langkah yang sama untuk test case mengubah dan menghapus
6. Jalankan Test dengan mengklik pada tab Test disebelah Tab Plan pada bagian atas MTM
7. Klik Tombol Run
8. Jalankan program sesuai dengan yang mau diuji
9. Tandai Pass apabila hasil yang tampil sesuai dengan Expected Result, tandai Fail apabila tidak sesuai.
10. Save and Close apabila pengujian sudah selesai.
Dengan begitu maka rekaman pengujian akan tersimpan di MTM dan kita dapat melihat hasil pengujian pada tab Result di bawah tab Plan