12/08/2018, 16:39

Make a Different in Software Testing Basics - Phần 5

Phần 5 - Test Case and Test Scenario Nội dung bài viết được tham khảo từ Software Testing Help Định nghĩa Test Scenario Test scenario sẽ mô tả cái cần test (vd: các luồng xử lý trong hệ thống) để chắc chắn rằng nó hoạt động như mong muốn. Một Test Scenario có thể gồm nhiều Test Case. ...

Phần 5 - Test Case and Test Scenario Nội dung bài viết được tham khảo từ Software Testing Help

Định nghĩa Test Scenario

  • Test scenario sẽ mô tả cái cần test (vd: các luồng xử lý trong hệ thống) để chắc chắn rằng nó hoạt động như mong muốn. Một Test Scenario có thể gồm nhiều Test Case.
  • Là một tập hợp các Test Cases hoặc cácTest Scripts và trình tự mà chúng sẽ được thực hiện, đảm bảo các luồng xử lý nghiệp vụ của hệ thống được kiểm tra từ khi bắt đầu đến khi kết thúc như đặc tả về hệ thống đã nêu ra.
  • Chúng có thể là những trường hợp kiểm tra trên một chức năng độc lập hoặc một loạt các chức năng liên tiếp nhau, phần sau phụ thuộc vào kết quả của phần trước.

Định nghĩa Test Cases

  • Là chi tiết một tập hợp các dữ liệu thử nghiệm được dùng bởi tester, thường là đơn vị kiểm thử nhỏ nhất.
  • Chúng đề cập đến các thông tin như yêu cầu kiểm thử, các bước kiểm thử/ xác minh, điều kiện tiên quyết, kết quả mong đợi, v.v. để xác định xem chức năng cụ thể đó có đang làm việc đúng không?
  • Một trường hợp thử nghiệm (Test Case) xác nhận một hoặc nhiều yêu cầu của hệ thống và được đánh giá pass hoặc fail (bug).

Sự khác nhau giữa Test Case và Test Scenario

Các Test Case và Test Scenario là các tài liệu được sử dụng bởi tester để đảm bảo rằng ứng dụng đáp ứng được các yêu cầu của khách hàng. Chúng là những tài liệu quan trọng nhất mà tester cần chuẩn bị trước khi bắt tay vào kiểm thử ứng dụng. Mặc dù mục tiêu cốt lõi của các tài liệu này là như nhau, nhưng có sự khác biệt trong cách thể hiện, mục đích hướng tới.

Test Cases Test Scenario
Test Case đại diện cho một hành động đơn lẻ (low level) bởi người sử dụng. Test Scenario là sự kết hợp của các Test Case và xác định những gì sẽ được kiểm thử trên một ứng dụng / tính năng, hoặc chỉ đơn giản chuỗi các Test Case.
Là một khái niệm thể hiện chi tiết cái gì sẽ được kiểm thử?, các bước thực hiện là gì?, kết quả mong muốn ra sao? Là một khái niệm thể hiện tổng quan cái gì được kiểm thử? Có thể nói rằng một Test Scenario chứa trong nó nhiều Test Cases có liên quan đến nhau.
Test Case được xây dựng/ viết dựa vào Test Scenario. Test Scenario được rút ra từ các thao tác/ trường hợp sử dụng trong thực tế.
Là một tài liệu cần phải chi tiết, chi tiết hơn tài liệu (specification, requirement) mô tả sản phẩm. Là một tài liệu được tạo ra dựa vào các quan điểm trong khi thảo luận về các kịch bản có thể xảy ra.
Test Case chỉ ra các thông tin chi tiết về dữ liệu đầu vào, điều kiện tiên quyết, cách kiểm thử, các bước cụ thể, kết quả dự kiến và kết quả mong đợi của các chức năng được kiểm thử. Test Scenario mô tả ngắn gọn súc tích cái gì cần được test và chủ yếu tập trung vào các chức năng chứ không phải là các dữ liệu đầu vào.
Các Test Case hướng đến chi tiết về các bước/ điều kiện thực hiện để đảm bảo ứng dụng có hoạt động bình thường hay không? Test Scenario là một luồng xử lý trong một chức năng hay trên cả hệ thống.
Test Case trở nên quan trọng hơn khi việc quản lý chất lượng dự án được thực hiện từ xa. Nó sẽ giúp các bên có thể hiểu và làm việc với nhau một cách đồng bộ. Test Scenario trở nên quan trọng hơn khi dự án không có đủ thời gian để tạo Test Case, các thành viên làm việc ăn ý với nhau trên các mô tả ngắn gọn nhưng chi tiết của Test scenario.
Việc tạo Test Cases chỉ tốn công sức một lần nhưng có thể sử dụng lại trong tương lai khi thực hiện Regression testing. Test Scenario trở nên tiết kiệm thời gian khi việc thêm và sửa chữa chúng không mấy khó khăn và không phụ thuộc nhiều vào các đối tượng nhỏ đặc biệt nào.
Test Cases là tài liệu rất quan trọng với dự án có QA mới hoặc QA backup. Nếu developer có bỏ lỡ một đối tượng, luồng xử lý nhỏ thì chúng ta vẫn có thể nắm bắt lại được. Một Test Scenario tốt sẽ làm giảm được tính phức tạp và tính lặp đi lặp lại của sản phẩm.
Tài liệu này sẽ thực sự quan trọng cho những tester mới tham gia vào dự án, họ có thể thông qua Test Case để hiểu về hệ thống. Test Scenario có thể đạt được độ che phủ tốt nhất bằng cách chia nhỏ ứng dụng, mặt khác nó cũng làm giảm mức độ lặp lại và phức tạp của ứng dụng.
Tốn thời gian và tiền bạc vì nó đòi hỏi nhiều nguồn nhân lực để có thể hiểu chi tiết về những thứ phải kiểm thử và làm cách nào để có thể kiểm thử. Nếu Test Scenario được tạo ra bởi một người cụ thể thì những người sử dụng lại sẽ không thể hiểu hết được chính xác ý tưởng của người trước, nó sẽ cần thêm các buổi thảo luận nhóm để làm rõ lại, do đó sẽ tốn thêm nhiều effort để làm rõ các kịch bản trước đó.

Kết luận

Test Scenario đưa ra các ý tưởng về những gì chúng ta phải kiểm thử. Test Scenario giống như một trường hợp thử nghiệm (Test Case) ở mức high-level. Giả sử rằng chúng ta cần phải kiểm thử các chức năng của trang đăng nhập của ứng dụng Gmail, thì Test Scenario và Test Case cho chức năng này như sau:

Test Scenario trả lời "Những gì sẽ được kiểm thử?"

  • Test Scenario: Xác minh chức năng đăng nhập hoạt động đúng

Test Case trả lời "Làm thế nào để kiểm thử?"

  • Test Case 1: Nhập email hợp lệ và mật khẩu hợp lệ
  • Test Case 2: Nhập email hợp lệ và mật khẩu không hợp lệ
  • Test Case 3: Nhập email không hợp lệ và mật khẩu hợp lệ
  • Test Case 4: Nhập email không hợp lệ và mật khẩu không hợp lệ
  • Test Case 5: Không nhập email và mật khẩu

Test Cases là một phần quan trọng của vòng đời phát triển phần mềm, không có nó chúng ta sẽ gặp khó khăn trong việc hiểu và theo dõi chất lượng dự án. Nhưng Test Cases không là một tài liệu bắt buộc cần phải có. Tùy theo sự cấp thiết về thời gian và hiểu biết của các thành viên về dự án mà đưa ra quyết định lựa chọn Test Cases hay Test Scenario cho dự án của mình.

Những phần trước cùng chủ đề "Make a Different in Software Testing Basics":

  • Phần 1 - Functional Testing and Non-Functional Testing
  • Phần 2 - Re-testing and Regression testing
  • Phần 3 - Boundary value analysis and Equivalence partitioning
  • Phần 4 - Verification and Validation
0