2 - Automation Testing Tools
Trong bài viết thứ hai này, mình muốn giới thiệu về các Automation Test tools (chỉ một số mà mình đã từng làm).
1- Quick Test Professional 9.5 hoặc 10
2- Ranorex 2.4.1
3- TestComplete8
4- Visual Studio 2010 Ultimate
Tất cả các tools này đòi hỏi phải có license, còn các bạn muốn sử dụng thì cũng có thể tìm key hoặc crack để sử dụng. Mình thì hay dùng Trial version, sau 30 ngày thì lại phải cài lại máy, hơi buồn chút!
Như các bạn đã biết, để tạo được Automation Test Scripts, thì ngôn ngữ chúng ta dùng ở đây chính là dưới dạng Script, tuy nhiên, mỗi loại tool cho phép chúng ta viết các automation scripts dưới dạng một hay nhiều ngôn ngữ khác nhau:
QTP: Cho phép chúng ta lựa chọn 1 trong 2 ngôn ngữ để viết Script là VBScript hoặc Delphi script. 
Ranorex: C#, VB.NET và Python
// Search for combo box within .NET application
Ranorex.ComboBox comboBox = "/form[@controlname='TestedApp']
/combobox[@controlname='comboBox1']";
// Open combobox using property
comboBox.DropDownVisible = true;
// Open combobox by clicking the
// drop down button
Button open = comboBox.FindChild("Open");
open.Click();
// Select list item with text "Black"
// from DropDown list
ListItem listItem = comboBox.FindSingle
("list/listitem[@accessiblename='Black']");
listItem.Click();
TestComplete: JavaScript, VBScript, C/C++/C# script, Delphi
Visual Studio 2010: C# (mình mới viết = C# thôi)

Như các bạn thấy, mỗi một tool đều những ưu nhược điểm riêng biệt,
Đối với QTP, script được viết bằng VBScript nên nó tương đối nhẹ, nhưng là ngôn ngữ thuần script nên việc xây dựng các Objects không được flexible cho lắm, còn đối với Visual Studio 2010, tuy code script chạy nặng hơn VBScript, nhưng chúng ta hoàn toàn thoải mái customize, xây dựng các objects, data, tiers như một ứng dụng C#. Còn ví dụ như TestComplete8, bạn có thể lựa chọn một trong các languages để viết theo khả năng của bạn, hơn nữa TestComplete8 còn support khá mạnh cho việc test các ứng dụng được viết bằng Delphi.
Đặc điểm chung của các tools:
- Các tools đều có một tính năng rất hay, Recording. Tính năng này cho phép người sử dụng có thể ghi lại các steps như: click, focus, press, hoặc nhập dữ liệu vào textboxes, click vào button, check vào checkboxes, select các items trong combobox, thao tác với DataGrid…vv.
- Các tools đều có một Object Repository. Các bạn hiểu nôm na rằng đây là một nơi để lưu trữ (stores) các object, controls mà các tools ghi lại sau khi thực hiện quá trình Recording. Thông tin này thông thường được store dưới dạng XML, và dĩ nhiên các bạn không phải mò mẫm trong đống XML để xem từng object cụ thể, mà nó có tool cho phép bạn tìm kiếm, lựa chọn như trên một DataGrid.
- Các tools đều hỗ trợ làm việc với Data Driven (đây là một khái niệm gần như thuộc về Architecture, mình sẽ đề cập đến khái niệm này sau, còn bây giờ các bạn cứ hình dung như thế này, các bạn không bao giờ viết cả Script và Data lẫn nhau, mà Data nên đặt tại SQL DB hoặc Excel hoặc XML. Một khi các bạn hoàn thành Scripts, các bạn chỉ cần thay đổi Data và cho chúng chạy, nên=> 1 script sẽ test được cho n data).
Đặc điểm riêng:
- Chính ngôn ngữ được support trong các tools đã nói nên các đặc điểm (đúng hơn là về tính ứng dụng của mỗi tool)
- Thông thường mình hay dùng QTP để test cho các ứng dụng Web based apps. Dùng Ranorex để test cho Window based apps.Dùng TestComplete để test cho Web, Win, đặc biệt là Delphi apps. Còn VS2010 dùng để test cho các ứng dụng như WPF trên .NET 3.5,
Để học việc sử dụng các tools này không khó, nhưng để sử dụng được vào thực tế (vì sử dụng tools ở đây không chỉ làm tăng năng suất cho đội dự án, mà chúng ta đang đi hẳn về một ngề, Testing Service) thì các bạn cần phải sử dụng chúng một cách chuẩn, theo một template nào đó.
Ở bài viết sau, mình sẽ giới thiệu về kiến trúc Data Driven trong automation testing. Hy vọng các bạn đóng góp và cho ý kiến. mình rất mong được chia sẻ kiến thức cũng như kinh nghiệm của mình cùng với các bạn.