TIN CÔNG NGHỆ

Friday
Aug 22nd
Giải pháp kiểm tra tự động phần mềm với QuickTest Professional In E-mail
02/07/2007
Lợi ích của việc tự động hóa quá trình kiểm tra phần mềm là rõ rệt. Đặc biệt, những ưu điểm tuyệt vời của công cụ kiểm tra (CCKT) QuickTest Professional (QTP) đã được tác giả Hoàng Phi và Ngô Văn Toàn trình bày khá chi tiết ở bài viết "Tự động hóa kiểm tra phần mềm với QuickTest Professional 8.2" – ID: A0610_107. Thật vậy, QTP là một CCKT mạnh mẽ, vượt trội các CCKT khác, vì thế nó được biết đến và sử dụng rộng rãi. Tuy vậy, để ứng dụng một cách có hiệu quả, cũng như khắc phục những khuyết điểm vốn có của CCKT này, chúng ta cần phải có một giải pháp nhất định. Bài viết này giới thiệu giải pháp và quy trình ứng dụng QTP đã được áp dụng thành công ở một số dự án.

VẤN ĐỀ

1. Test Script

Khi tự động hóa quá trình kiểm tra phần mềm, hầu hết kiểm tra viên (KTV - tester) đều thực hiện các bước sau:

• Ghi lại các thao tác kiểm tra

• Chỉnh sửa các đoạn script phát sinh

• Chạy lại đoạn script đã được chỉnh sửa

• Phân tích kết quả

Nhìn chung các bước trên dễ thực hiện với mọi KTV. Tuy nhiên, những đoạn script phát sinh thường khó đọc và khó bảo trì sau này. Trong khi đó, QTP đã hỗ trợ tối đa về việc viết Test script, cho phép tạo thư viện hàm cần thiết để dùng lại sau này cho những dự án khác.

2. Test Report

Sau khi chạy hoàn tất một đoạn test, QTP sinh ra một report "rất đẹp" với những loại kết quả như: passed, failed, done và warning. Kết quả này rất có ích cho KTV trong việc xác định những lỗi (bug) của test script hay của ứng dụng. Nhưng liệu trưởng dự án (Project Manager) hay khách hàng có thể hiểu được bản báo cáo này?

3. Cấu trúc action

Đối với những ai có kinh nghiệm viết script, cấu trúc action trong QTP quả là phiền phức. Vấn đề được giải quyết bằng các hàm hay thủ tục. Tuy nhiên, nếu kiểm tra tự động cho một dự án lớn mà có quá nhiều hàm và thủ tục, không phân nhóm thì rất dễ xảy ra những vấn đề về quản lý vùng (scope management) sau này.

4. Lưu trữ và lưu vết

Đây là vấn đề mà hầu hết người dùng QTP đều gặp phải. QTP lưu các thành phần test của mình với rất nhiều định dạng tập tin và thư mục khác nhau. Việc lưu trữ và lưu vết (tracking) những sửa đổi trên cho cả tập hợp này không phải đơn giản.

GIẢI PHÁP

1. Lưu trữ độc lập

Lưu trữ các thành phần test thành từng tập tin độc lập. Với số lượng tập tin không nhiều, chúng ta có thể hoàn toàn lưu vết và lưu trữ một cách dễ dàng. Nhìn chung, ta có 4 loại tập tin cần phải lưu:

• Test script: lưu trữ những đoạn test script dưới dạng *.vbs

• Repository: lưu trữ những đối tượng test của ứng dụng dưới dạng *.tsr

• Parameter: Lưu trữ những thông số test dưới dạng *.xls

• Settings: Lưu trữ cấu hình cho QTP hoặc những cấu hình đặc thù dưới dạng *.vbs

Tùy vào những dự án cụ thể, ta có thể tạo những cấu trúc thư mục test khác nhau. Cơ bản, thư mục test nên có những thành phần như sau:

2. Chia sẻ Repository

Sẽ có nhiều KTV cùng làm việc cho một dự án. Vì vậy, để đảm bảo các đối tượng test không bị thừa/thiếu, chúng ta nên chia sẻ repository file cho nhau. Các tên của đối tượng cũng nên đặt theo một quy chuẩn nhất định.

3. Viết script theo cấu trúc class

Từ phiên bản QTP 8.2 đã hỗ trợ VBScript 5.0, cho phép sử dụng cấu trúc class.

• Mỗi class là một test suite, bao hàm nhiều test case.

• Dùng hàm Class_Initialize và Class_Terminate của cấu trúc class tương ứng như là hàm setup và teardown của một lớp test suite.

• Nên có một hàm Run (thuộc tính truy cập là public) để gọi các test case trong lớp test suite.

• Tạo ra các hàm cho các test case tương ứng.

Class CTest
==================================
Test case: footest
Description: footest
Public Sub TC01_footest()
Do something here
End Sub
===================================
Description: Run test cases
==================================
Public Sub Run()
TC01_foo
End Sub
================================== CONSTRUCTOR
Private Sub Class_Initialize
End Sub
================================== DESTRUCTOR
Private Sub Class_Terminate
End Sub
End Class

4. Thay đổi hàm thao tác của đối tượng test

Để tạo ra một report dễ hiểu, chúng ta phải ghi lại các thao tác của người dùng trong quá trình test. Do đó, chúng ta cần thay đổi lại các hàm thao tác cho các lớp đối tượng test. Sau đó đăng ký với QTP bằng hàm RegisterUserFunc. Ví dụ:

Function Click_Webbutton(obj)

If not obj.exist Then

Report: "Button does not exist"

Exit function

End If

bVisible=obj.GetROProperty ("visible")

If bVisible=False Then

Report: "Button is not visible"

Exit function

End If

Report: " Click on WebButton "

Click_Webbutton = obj.Click

End Function

Register this function

RegisterUserFunc "WebButton", "Click", "Click_Webbutton"

5. Thay đổi hàm check

Ý nghĩa của check point là để xét xem những kết quả hiện hành ở ứng dụng có đúng như mong đợi hay không và xuất kết quả ra report. Để tránh phụ thuộc về cấu trúc tập tin và thư mục của QTP, chúng ta cũng nên chỉnh sửa lại hàm check.

Function Check_Object (obj, arr)

bLastCheck=true

iSize=ubound(arr)

for i=0 to iSize

sProp=arr(i)

sExpected=obj.GetTOProperty(sProp)

sReal=obj.GetROProperty(sProp)

if sExpected <> sReal then

Report : "Error:..."

bLastCheck=false

exit for

end if

next

End Function

Register this function

RegisterUserFunc "WebList", "Check", "Check_Object"

6. Viết thư viện hàm cho report

Sau cùng, chúng ta nên viết bộ thư viện hàm để xuất report ở dạng file text. Để thêm phần sinh động, ta có thể xuất report dưới dạng RTF (Rich Text Format). Dưới đây là một report mẫu:

QUY TRÌNH ỨNG DỤNG

1. Xây dựng thư viện hàm

Xây dựng thư viện hàm chung cho tất cả các dự án. Bao gồm:

    1. Các hàm ứng dụng.

    2. Các hàm đăng ký (đăng ký sự thay đổi cho các hàm check, hàm thao tác)

    3. Các hàm cho report

2. Khởi đầu một dự án

Để bắt đầu kiểm tra tự động cho một dự án, ta nên thực hiện các bước sau:

    1. Tạo một cấu trúc thư mục

    2. Chèn các tập tin thư viện vào QTP.

    3. Cấu hình cho QTP, cho dự án.

3. Viết Test script

Sau khi bước 1 và 2 đã sẵn sàng, ta bắt đầu viết test script với các bước sau:

    1. Thêm các đối tượng test từ ứng dụng và object repository

    2. Thêm parameter vào tập tin parameter.xls.

    3. Viết một test suite class và lưu dạng *.vbs trong thư mục test scripts

    4. Viết các hàm tương ứng cho các test case

4. Thực thi test script

Sau khi hoàn tất các test script, ta có thể chạy hàng loạt file test script hoặc chạy từng test script đơn lẻ.

5. Phân tích report

Phân tích các lỗi có trong report nếu có.

Để hiểu thêm các kỹ thuật đã trình bày, các bạn có thể tìm hiểu ở phần help của QTP hoặc tham khảo ở http://www.sqaforums.com. Nếu các bạn có nhu cầu về những thư viện hàm, những công cụ hỗ trợ và dự án mẫu xin liên hệ Địa chỉ email này đang được bảo vệ khỏi chương trình thư rác, bạn cần bật Javascript để xem nó

Trương Minh Sử Nhiên
Công ty Tân Thiên Niên Kỷ
Email: Địa chỉ email này đang được bảo vệ khỏi chương trình thư rác, bạn cần bật Javascript để xem nó
 
< Trước

Thăm dò

Đánh giá website
 
Video
  Website yêu thíchComputerJobs.VN
Việc làm ngành CNTT
Chăm sóc trẻ
Nuôi con thông minh
Learnvietnam.com
Tìm hiểu về Việt Nam
Drupalab.com
Drupal Themes