Qua phân tích ở 3.2, công cụ kiểm thử tự động đã được xây dựng như trong hình 3.5. Các thành phần trong công cụ có nhiệm vụ như sau (minh họa thành phần bằng các hình tròn có đánh số):
1: URL chứa form cần kiểm thử.
2: id nút thực thi form.
3: id thành phần HTML chứa thông báo sau khi thực thi form.
4: đường dẫn trong máy tính chứa tệp kết quả sau khi kiểm thử form.
5: nút chọn đường dẫn trong máy tính để chứa tệp kết quả sau khi kiểm thử form.
6: id thành phần input trong form cần kiểm thử.
7: nút chọn các điều kiện cần kiểm tra cho input, khi nhấn vào nút sẽ xuất hiện hình 3.7.
8: nút thêm ô textbox để nhập thêm input cần kiểm thử. Khi thêm ô textbox mới sẽ giống như hình 3.6.
9: nút xóa bớt ô textbox chứa input.
10. nút xác nhận bắt đầu thực hiện kiểm thử form.
Hình 3.6. Thêm ô textbox chứa input.
Hình 3.7. Lựa chọn các điều kiện cần kiểm thử của input.
Dựa vào bảng 3.1 ta có được các điều kiện như trong hình 3.7. Kiểm thử viên lựa chọn các điều kiện của input cần được kiểm thử, dựa vào đó công cụ sẽ tự động sinh ra các ca kiểm thử bằng cách kết hợp các điều kiện và các input khác.
Công cụ có xây dựng riêng một lớp ngoại lệ có tên “CustomException” để chứa các thông báo lỗi và cảnh báo tới kiểm thử viên nếu có sự nhầm lẫn hoặc sai sót trong quá trình nhập các thông tin vào công cụ. Hình 3.8 minh họa mã nguồn mở tệp kết quả nhưng có lỗi khi mở, thông báo lỗi sẽ được đưa vào lớp ngoại lệ để báo ra cho kiểm thử viên biết.
try {
Process.Start(“notepad.exe”, txtLocation.Text + “/result.txt”); }
catch {
throw new CustomException() {
customMessage = “Khong mo duoc file ket qua”; }
}
Hình 3.8. Lỗi xuất hiện được thông báo cho kiểm thử viên.
Công cụ cũng đảm bảo kiểm tra đầy đủ đối với các điều kiện của input, để đảm bảo tính hợp lệ của dữ liệu đầu vào. Hình 3.9 minh họa mã nguồn kiểm tra dữ liệu đầu vào của điều kiện độ dài tối thiểu và độ dài tối đa, nếu độ dài tối thiểu lớn hơn hoặc bằng độ dài tối đa là không hợp lệ.
if (txtMaxlength.Text.Trim() != “” && txtMinlength.Text.Trim() != “”) { int from = Convert.ToInt32(txtMinlength.Text.Trim());
int to = Convert.ToInt32(txtMaxlength.Text.Trim()); if(from >= to)
throw new CustomException() {
customMessage = “Do dai toi thieu khong duoc lon hon hoac bang do dai toi da”;
} }
Hình 3.9. Kiểm tra tính hợp lệ của điều kiện của độ dài tối thiểu và tối đa.
Trong quá trình thực thi kiểm thử form, nếu công cụ không tìm thấy input hay thành phần có id giống với id được kiểm thử viên đã nhập vào, công cụ sẽ đưa ra cảnh báo như hình 3.10.
Hình 3.10. Thông báo không tìm thấy phần tử có id như đã nhập.
Công cụ có xây dựng một lớp “Condition” để chứa tên điều kiện và giá trị của nó, mỗi một input sau khi được lựa chọn các điều kiện sẽ kiểm thử thì sẽ có một danh sách các cặp điều kiện : giá trị được sinh ra. Hình 3.11 minh họa các cặp điều kiện : giá trị được sinh ra khi chọn điều kiện độ dài tối thiểu và độ dài tối đa. Mã nguồn trong hình 3.11 sử dụng kỹ thuật kiểm thử giá trị biên mạnh, với độ dài tối thiểu sẽ lấy giá trị có độ dài bằng giá trị tối thiểu, nhỏ hơn giá trị tối thiểu một đơn vị và lớn hơn giá trị tối thiểu một đơn vị độ dài.
int from = Convert.ToInt32(txtMinlength.Text.Trim()); int to = Convert.ToInt32(txtMaxlength.Text.Trim()); list.Add(“txtid” + id + “:” + Helpful.RandomString(from)); list.Add(“txtid” + id + “:” + Helpful.RandomString(from - 1)); list.Add(“txtid” + id + “:” + Helpful.RandomString(from + 1)); list.Add(“txtid” + id + “:” + Helpful.RandomString(to)); list.Add(“txtid” + id + “:” + Helpful.RandomString(to - 1)); list.Add(“txtid” + id + “:” + Helpful.RandomString(to + 1); list.Add(“txtid” + id + “:” + Helpful.RandomString((to+from)/2)); conditions.Add(new Condition() { name = “MaxLength”, value = to}); conditions.Add(new Condition() { name = “MinLength”, value = from});
Hình 3.11. Điều kiện và giá trị được sinh ra khi lựa chọn điều kiện cho input. Để đảm bảo các giá trị dữ liệu đầu vào được sinh ra một cách tự động, ngẫu nhiên, công cụ xây dựng các hàm sinh dữ liệu ngẫu nhiên với tham số truyền vào tùy theo yêu cầu của thuật toán. Hình 3.12 là mã nguồn hàm ngẫu nhiên sinh ra chuỗi ký tự có độ dài là tham số truyền vào.
public static string RandomString(int length) {
Random random = new Random(); String characters =
“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz”; StringBuilder result = new StringBuilder(length);
for (int i = 0; i < length; i++) {
Result.Append(characters[random.Next(characters.Length)]); }
return result.ToString(); }
tham số truyền vào.
Sau khi thực hiện kiểm thử xong form, công cụ sẽ xuất kết quả ra tệp có định dạng .txt và mở luôn ra màn hình để kiểm thử viên tiện quan sát, minh họa tệp kết quả như trong hình 3.13. Trong tệp sẽ ghi rõ tên đường dẫn được kiểm thử, đánh số các ca kiểm thử, tên các input và giá trị đầu vào cùng kết quả.
KẾT QUẢ KIỂM THỬ - Url được kiểm thử: http://login.toi88.com --- Test case số 1 ---
Input: Name – Giá trị: PBsZ6V Input: Pass – Giá trị: abc.com
Thông báo: Wrong Login Name or Password --- Test case số 2 ---
Input: Name – Giá trị: PBsZ6V Input: Pass – Giá trị: abc@com
Thông báo: Wrong Login Name or Password --- Test case số 3 ---
Input: Name – Giá trị: Input: Pass – Giá trị:
Thông báo: Please enter Login Name
Hình 3.13. Kết quả sau khi thực hiện kiểm thử form.