Sử dụng thử lại bộ

Một bộ có xu hướng bao gồm một số mô-đun thử nghiệm và có thể đạt tới kích thước kho dữ liệu thử nghiệm khá lớn. Ví dụ: Bộ kiểm tra khả năng tương thích Android (CTS) bao gồm hàng trăm mô-đun và hàng trăm nghìn trường hợp kiểm thử.

Có thể xảy ra một số lượng lớn các thử nghiệm không thành công do khả năng cách ly kém hoặc các thiết bị rơi vào trạng thái kém.

Tính năng thử lại bộ phần mềm nhằm giải quyết những trường hợp đó: Tính năng này chỉ cho phép bạn thử lại các lỗi thay vì toàn bộ bộ phần mềm để loại trừ tình trạng không ổn định và khả năng cách ly kém. Nếu quá trình kiểm thử liên tục thất bại thì lần thử lại cũng thất bại; và bạn nhận được tín hiệu mạnh mẽ hơn nhiều rằng có vấn đề thực sự.

Triển khai thử lại bộ phần mềm

Việc thử lại kết quả bao gồm việc đọc các kết quả trước đó và chạy lại lệnh gọi trước đó.

Giao diện chính thúc đẩy quá trình thử lại là ITestSuiteResultLoader , cho phép bạn tải kết quả trước đó và dòng lệnh trước đó.

Sau đó, RetryRescheduler sử dụng thông tin này để tạo lại lệnh trước đó và điền vào một số bộ lọc để chỉ chạy lại các lỗi trước đó hoặc các thử nghiệm chưa được thực hiện.

Thử lại bộ ví dụ: CTS

Cấu hình thử lại trong CTS là:

<configuration description="Runs a retry of a previous CTS session.">
    <object type="previous_loader" class="com.android.compatibility.common.tradefed.result.suite.PreviousResultLoader" />
    <test class="com.android.tradefed.testtype.suite.retry.RetryRescheduler" />

    <logger class="com.android.tradefed.log.FileLogger">
        <option name="log-level-display" value="WARN" />
    </logger>
</configuration>

Điều này có thể áp dụng cho hầu hết các bộ mở rộng nó, ví dụ VTS .

Nó sẽ được gọi với:

cts-tradefed run retry --retry <session>

Phiên này sẽ được tìm thấy bằng cách liệt kê các kết quả trước đó trong bảng điều khiển CTS:

cts-tf > l r
Session  Pass  Fail  Modules Complete  Result Directory     Test Plan  Device serial(s)  Build ID   Product
0        2092  30    148 of 999        2018.10.29_14.12.57  cts        [serial]          P          Pixel

Lệnh ban đầu chính xác sẽ được tải lại và chạy lại với các bộ lọc bổ sung. Điều này có nghĩa là nếu lệnh ban đầu của bạn bao gồm một số tùy chọn thì chúng cũng là một phần của quá trình thử lại.

Ví dụ:

cts-tradefed run cts-dev -m CtsGestureTestCases

Việc thử lại ở trên luôn bị ràng buộc với CtsGestureTestCases vì chúng tôi đang thử lại một lệnh chỉ liên quan đến nó.

Định cấu hình thử lại cho bộ kiểu CTS

Để quá trình thử lại hoạt động, kết quả trước đó cần được xuất ở định dạng proto. Cần bổ sung thêm những điều sau:

<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />

Điều này cần được thêm vào cấu hình XML của lệnh chính và kết quả là tệp test-record.pb được tạo trong thư mục kết quả.

Sau đó, CTS thử lại sẽ tải dữ liệu từ sự kết hợp của test-record.pbtest_result.xml hiện có để chuẩn bị lệnh gọi thử lại.