Testing adalah salah satu tahapan penting dalam dunia pengembangan perangkat lunak. Terdapat berbagai jenis testing yang dapat dilakukan untuk memastikan bahwa perangkat lunak yang dihasilkan sesuai dengan harapan. Sebut saja stress test, unit test dan berbagai tipe pengujian lainnya. Terkait dengan testing maka tentunya tersedia banyak sekali kakas yang dapat dipakai untuk mengotomasi proses testing tersebut. Contohnya di dalam Visual Studio 2008 terdapat beberapa jenis test yang dapat diotomasi, seperti unit test (untuk menguji fungsi2x yang ada) dan load test (untuk menguji ketahanan sebuah web server ketika menghadapi berbagai request).
Dalam Visual Studio 2010 tentunya terdapat beberapa penambahan fitur dalam proses testing. Salah satunya yang cukup menarik menurut saya adalah Coded UI. Dengan menggunakan Coded UI maka kita akan dapat mengotomasi proses testing terhadap bagian User Interface dari aplikasi. Sebuah hal yang menarik bukan? sesuatu yang dahulu hanya dapat dilakukan secara manual sekarang dapat dilakukan secara otomatis. Pada prinsipnya yang dilakukan oleh Coded UI adalah merekam seluruh perilaku tester ketika sedang menguji tampilan dan rekamannya dihasilkan dalam bentuk code. code tersebut tentunya nantinya akan dapat digunakan oleh tester untuk mengotomasi proses pengujian yang telah dilakukan sebelumnya. Mirip dengan web test, namun perbedaannya adalah pada web test yang direkam adalah data-data yang dikirimkan dari browser ke server.
Untuk membuat sebuah test Coded UI yang perlu dilakukan adalah seperti berikut :
1. Buat sebuah test project dan pilih Coded UI test
2. Sebuah jendela dialog yang menanyakan bagaimana cara menghasilkan code untuk coded UI akan muncul.
Terdapat dua cara untuk menghasilkan kode yaitu :
1. Merekam aksi-aksi yang dilakukan tester terhadap aplikasi
2. Menggunakan aksi yang telah dilakukan sebelumnya (fungsi ini membutuhkan adanya Team Foundation Server)
silahkan pilih opsi “Record action, edit UI map or add assertions”
3. Sebuah kelas bernama CodedUITest1 akan segera dihasilkan. Untuk merekam aksi-aksi yang dilakukan oleh tester maka silahkan klik kanan pada area kosong dalam fungsi TestMethod yang ada dalam kelas tersebut dan pilih Generate Code for Coded UI Test > Use Coded UI Test Builder
4. Perhatikan bahwa sekarang dibagian kanan bawah layar terdapat sebuah jendela kecil berjudul “UIMap – Coded UI Test Builder”
jendela ini akan mengatur bagaimana proses merekam aksi dapat dilakukan, terdapat 4 tombol yaitu :
1.
Record > berguna jika anda ingin mulai merekan aktivitas testing.
2.
Show Recorded Steps > untuk menunjukkan langkah-langkah mana saja yang telah dieksekusi.
3.
Assertion > untuk menambahkan asersi/ pengencekan terhapa output dari aplikasi yang sedang ditest.
4.
Generate Code > untuk menghentikan sesi merekam aksi tester dan menerjemahkannya menjadi kode.
5. Silahkan tekan tombol Record untuk mulai merekam proses testing (untuk menulis blog ini saya membuat sebuah aplikasi Win Form sederhana yang terdiri dari 1 textbox, 1 tombol dan 1 label).
6. Setelah proses rekaman dimulai maka saya melakukan beberapa aksi yaitu menjalankan aplikasi, menulis kata-kata testing di textbox dan menekan tombol dan diakhiri dengan menekan tombol Record. Rekaman dari langkah-langkah tersebut dapat dilihat jika tombol Show Recorded Steps ditekan seperti contoh pada gambar ini :
terlihat semua langkah-langkah yang dilakukan tester dapat dikenali dengan baik oleh kakas ini!
7. Tekan tombol Generate Code untuk menghasilkan kode testingnya. Sebuah jendela yang menanyakan nama method apa yang akan dihasilkan akan muncul. tekan tombol Add and Generate setelah mengisikan nama method yang diinginkan. Tools ini akan segera menghasilkan kode yang akan meniru apa yang baru saja tester lakukan. sebagai contoh kode berikut adalah kode yang dihasilkan :
public void RecordedMethod()
{
#region Variable Declarations
WinEdit uITextBox1Edit = this.UIForm1Window.UITextBox1Window.UITextBox1Edit;
WinButton uIButton1Button = this.UIForm1Window.UIButton1Window.UIButton1Button;
#endregion
// Launch '%VisualStudioDir%\Projects\tempDemo\UI\bin\Debug\UI.exe'
ApplicationUnderTest uIForm1Window = ApplicationUnderTest.Launch(this.RecordedMethodParams.UIForm1WindowExePath, this.RecordedMethodParams.UIForm1WindowAlternateExePath);
// Type 'hello' in 'textBox1' text box
uITextBox1Edit.Text = this.RecordedMethodParams.UITextBox1EditText;
// Click 'button1' button
Mouse.Click(uIButton1Button, new Point(36, 10));
}
8. Sampai tahap ini yang dilakukan oleh kakas ini hanyalah merekam langkah-langkah yang dilakukan. Bagaimana jika anda ingin melakukan pengujian akan output dari aplikasi? Sebagai contoh untuk melakukan pengujian terhadap sebuah label maka silahkan drag tombol assertion ke elemen yang ingin anda uji. secara otomatis tools ini akan mengenali label yang ada tersebut dan berbagai propertinya.
9. Silahkan tekan tombol Add Assertion untuk menambahkan pengecekan terhadap properti text dari label tersebut. tekan OK untuk menambahkan asersi tersebut ke source code.

10. contoh kode yang dihasilkan adalah sebagai berikut :
public void AssertMethod1()
{
#region Variable Declarations
WinText uIHelloText =
this.UIForm1Window.UIHelloWindow.UIHelloText;
#endregion
// Verify that 'Hello' label's property 'ControlType' equals 'Hello World'
Assert.AreEqual(
this.AssertMethod1ExpectedValues.UIHelloTextControlType, uIHelloText.ControlType.ToString());
}
11. Sekarang test sederhana telah ada, untuk menjalankan test ini silahkan klik kanan dan pilih Run Test maka secara otomatis semua langkah-langkah yang dilakukan akan dieksekusi oleh VS secara otomatis lengkap dengan asersinya.
cheers