Sử dụng lại các kịch bản lệnh của Rational Functional Tester trên các ứng dụng đã cập nhật và tránh các lỗi

Tạo một siêu lớp của trình trợ giúp người dùng để tạo các kịch bản linh hoạt

Một mối quan tâm chính của bạn khi sử dụng một công cụ thử nghiệm tự động hóa là bảo trì và sử dụng lại liên tục. Là các nhà phát triển liên tục cải thiện và nâng cấp các ứng dụng đang thử nghiệm, bạn cần một cách để thử nghiệm các bản nâng cấp với các kịch bản lệnh đã lưu mà không mất thời gian thay đổi kịch bản lệnh. Khả năng này là một yếu tố ngày càng quan trọng trong việc tự động hoá các dự án thử nghiệm. Bài viết này chỉ ra cách sử dụng Rational® Functional Tester của IBM® và một siêu lớp của trình trợ giúp người dùng để thay đổi trọng số đặc tính-đối tượng ở một nơi khi ứng dụng thử nghiệm của bạn đã thay đổi. Mặc dù bạn đã tạo ra một sự thay đổi chỉ ở một nơi thôi, bạn vẫn có thể áp dụng sự thay đổi đó vào các đặc tả trọng số đặc tính-đối tượng trong suốt kịch bản lệnh thử nghiệm, nhằm tiết kiệm thời gian và tránh thất bại.

Grace Chen, Tư vấn thử nghiệm, TestPro Pty Ltd

Grace Chen là một nhà tư vấn thử nghiệm cho TestPro, Ltd. Cô đã làm việc tại TestPro từ năm 2008. Cô hiện đang làm cho các dự án bảo hiểm y tế. Lĩnh vực chuyên môn của cô gồm Trình thử nghiệm chức năng Rational (Rational Functional Tester), Trình quản lý chất lượng Rational (Rational Quality Manager) và khung công tác tự động hóa thử nghiệm.



18 08 2011

Các kịch bản lệnh cần theo kịp với các ứng dụng đang phát triển

Khi thử nghiệm ngược trở lại, các nhóm thử nghiệm thường tạo ra một tập các kịch bản lệnh, ngay cả khi các nhà phát triển nâng cấp và thay đổi ứng dụng. Hơn nữa, các nhà phát triển có thể thay đổi một số đặc tính đối tượng hoặc các phân cấp đối tượng. Khi các trình thử nghiệm chạy lại các kịch bản đã lưu dựa theo ứng dụng được nâng cấp, việc chạy lại có thể trả về một lỗi cho biết rằng không thể tìm thấy đối tượng.

Các kịch bản lệnh tìm ra những thay đổi không phải các lỗi

Bạn có thể gặp phải cảnh tượng này: Khi nâng cấp hoặc thay đổi một ứng dụng, các nhà phát triển cũng thay đổi tiêu đề cửa sổ để tương ứng với phiên bản ứng dụng. Trong ánh xạ kịch bản lệnh đã lưu của mình, bạn đã bắt giữ các đối tượng trong các ánh xạ đối tượng khác với các màn hình ứng dụng khác nhau. Mỗi ánh xạ đối tượng sử dụng cùng một đối tượng cửa sổ làm đối tượng cha mẹ cho mỗi đối tượng trong hệ thống phân cấp ánh xạ đối tượng. Tiêu đề cửa sổ là đặc tính quan trọng cho phép nhận biết đối tượng. Khi bạn chạy lại các kịch bản đã lưu dựa theo phiên bản ứng dụng mới với các tiêu đề cửa sổ đã thay đổi, bạn luôn nhận được các lỗi: ObjectNotFound. Rational® Functional Tester của IBM® xử lý các tiêu đề đã thay đổi như là các lỗi, vì các tiêu đề đó không khớp với các tiêu đề trong kịch bản lệnh.

Các thuật toán ghi nhận đối tượng của Rational Functional Tester không chỉ dựa vào chính đối tượng đó. Các thuật toán cũng kiểm tra các đặc tính của đối tượng ở vị trí cao hơn trong hệ thống phân cấp đối tượng, kiểm tra chuỗi các đối tượng cha mẹ lên tới đối tượng cao nhất.

Việc đặt lại hàng trăm giá trị trọng số đặc tính làm phí thời gian

Để ngăn chặn Rational Functional Tester khỏi xử lý những thay đổi đặc tính này như là các lỗi, bạn cần phải giảm trọng số đặc tính quan trọng tới 0. Sau khi đã làm xong mọi việc, tiêu đề cửa sổ đã thay đổi không phải là một lỗi nữa. Nhờ thay đổi đó mà Rational Functional Tester không sử dụng đặc tính này để nhận biết đối tượng. Toàn bộ giá trị cài đặt để giảm trọng số đặc tính của tiêu đề cửa sổ dường như không có sẵn trong Rational Functional Tester. Do đó, bạn cần phải thay đổi thủ công trọng số đặc tính tiêu đề trong mỗi ánh xạ đối tượng có chứa đối tượng đó. Hãy tưởng tượng rằng bạn có hàng trăm ánh xạ đối tượng cần phải thay đổi. Hãy nghĩ về thời gian mà bạn có thể lãng phí cho mỗi lần lặp lại đó.

Cấu hình các kịch bản lệnh để tìm các lỗi, mà không làm thay đổi mã phù hợp

Bạn cần một cách có trình tự để thiết lập trọng số đặc tính-đối tượng của các đối tượng phổ biến ở một nơi các bài thứ nghiệm bao gồm các đối tượng đó. Thay vì thay đổi thủ công trọng số đặc tính trong mỗi ánh xạ đối tượng hoặc bắt giữ lại đối tượng, bạn có thể thay đổi trọng số đặc tính- đối tượng trong thời gian chạy. Bạn thêm một phương thức vào siêu lớp của trình trợ giúp của bạn, rồi gọi phương thức này từ mỗi kịch bản lệnh cần thay đổi trọng số đặc tính-đối tượng. Sau khi bạn thêm phương thức này, các trình thử nghiệm có thể chạy các kịch bản lệnh cũ dựa vào các ứng dụng đã nâng cấp, làm một vài thay đổi cho các kịch bản lệnh. Hơn nữa, ví dụ, những thay đổi các tiêu đề cửa sổ không gây ra các lỗi.

Siêu lớp của trình trợ giúp cung cấp trợ giúp thực sự

Để tạo ra siêu lớp của trình trợ giúp làm thay đổi trọng số đặc tính của một đối tượng:

  1. Trong Rational Functional Tester, nhấn chuột phải vào tên dự án và chọn Add Test Folder (Thêm thư mục Test).
Hình 1. Tạo một thư mục siêu lớp
Nhấn chuột phải vào Project, và chọn thư mục Add Test
  1. Tạo một tệp siêu lớp của trình trợ giúp: Nhấn vào File > New > Helper Superclass (Siêu lớp của trình trợ giúp).
Hình 2. Tạo một thư mục Helper superclass
Trong trình đơn File, chọn siêu lớp mới và siêu lớp của trình trợ giúp
  1. Trong Folder (Thư mục), nhập đường dẫn vào thư mục.
  2. Chọn một tên dự án trong danh sách Project (Dự án).
  3. Nhập một tên lớp trong Script name (Tên kịch bản lệnh).
Hình 3. Chỉ rõ một tên, dự án và thư mục siêu lớp của trình trợ giúp
Chọn một thư mục dự án và gõ vào tên siêu lớp
  1. Nhấn Finish (Kết thúc). Rational Functional Tester tạo một kịch bản lệnh trong Java™ (Trình soạn thảo của Java). Bạn có thể sử dụng kịch bản lệnh này để nhập mã Java thủ công.
  2. Nhập phương thức để có sẵn cho kịch bản lệnh. Sử dụng liệt kê đoạn mã sau đây để xây dựng phương thức của bạn, thực hiện các thay đổi cần thiết theo dự án của bạn.
Liệt kê 1. Mã của siêu lớp của trình trợ giúp
package superclasses;
import java.io.File;
import java.util.Enumeration;
import com.rational.test.ft.object.map.IMappedTestObject;
import com.rational.test.ft.object.map.ObjectMap;
import com.rational.test.ft.script.RationalTestScript;

public abstract class ScriptSuperClass extends RationalTestScript
{
        public void changeweight(){
         // Get relative object map path for a script.
        String map=this.getScriptName().toString().replace(".", "//");
        String mapName = "resources//"+map+".rftxmap";
        // Path to the project
        String projectDir = "C:\\youtprojectLocation";
        // Opening the object map file
          File f = new File(projectDir, mapName);
          ObjectMap om = ObjectMap.load(f);
                  Enumeration e = om.elements();
                  while (e.hasMoreElements()){
        // Locate the object by its role plays in the UI.
                      IMappedTestObject obj = (IMappedTestObject) e.nextElement();
              String role = obj.getRole().toString();
        	if(role.equals("Document")){
        		Object titleValue = obj.getProperty(".title");	
                //to reduce the weight of title.
                obj.setProperty(".title", titleValue, 0); 
                 }
        // Save the object map
        ObjectMap.store(om, f);
        }
    }
}

Sau khi bạn tạo siêu lớp của trình trợ giúp riêng của bạn, hãy sử dụng nó trong kịch bản của bạn.

Đưa siêu lớp của trình trợ giúp vào làm việc

  1. Trong Rational Functional Tester, nhấn chuột phải vào kịch bản lệnh sắp sử dụng phương thức siêu lớp mà bạn vừa tạo.
  2. Chọn Properties (Các đặc tính).
Hình 4. Các đặc tính kịch bản lệnh
Nhấn chuột phải vào kịch bản lệnh và chọn Properties
  1. Chọn Functional Test Script (Kịch bản lệnh thử nghiệm chức năng) trong ô bên phải và nhấn Browse (Duyệt) bên cạnh trường Helper Superclass. Một cửa sổ đặc tả mở ra.
  2. Nhập ký tự đầu tiên của tên siêu lớp của trình trợ giúp trong Select default helper superclass for the script (Chọn siêu lớp của trình trợ giúp mặc định cho kịch bản lệnh). Rational Functional Tester nhắc cho bạn mục phù hợp.
  3. Chọn mục phù hợp và nhấn OK.
Hình 5. Chọn siêu lớp cho kịch bản lệnh
Duyệt và chọn siêu lớp trình trợ giúp người dùng
  1. Gọi phương thức siêu lớp của trình trợ giúp trong kịch bản của bạn.
Hình 6. Gọi phương thức siêu lớp.
Cửa sổ hiển thị mã kich bản lệnh

Thử nghiệm các thay đổi liên quan

Thời gian của nhóm thử nghiệm của bạn là quan trọng. Trong các thử nghiệm hồi quy, bạn cần tập trung vào các thay đổi quan trọng với ứng dụng, chứ không dựa vào các tiêu đề cửa sổ thay đổi hoặc các thay đổi nhỏ khác. Với trọng số đặc tính cho tiêu đề cửa sổ đặt là 0, các thay đổi theo khía cạnh đó của ứng dụng đang thử nghiệm không tạo ra lỗi, để bạn rảnh rang tập trung vào các thay đổi quan trọng đang thử nghiệm trong ứng dụng.

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

Thảo luận

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Rational
ArticleID=752946
ArticleTitle=Sử dụng lại các kịch bản lệnh của Rational Functional Tester trên các ứng dụng đã cập nhật và tránh các lỗi
publish-date=08182011