Cách viết test case hiệu quả

Test Case là tập hợp các hành động được thực thi để xác minh một tính năng hoặc chức năng cụ thể của ứng dụng phần mềm. Bài viết này mô tả cách thiết kế Test Cases và tầm quan trọng của các thành phần trong Test Cases.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Hãy xem kịch bản Kiểm thử chức năng đăng nhập, có nhiều trường hợp có thể xảy ra như sau:

Test Cases 1: Kiểm thử kết quả khi nhập User Id & Password hợp lệ.

Test Cases 2: Kiểm thử kết quả khi nhập User Id & Password không hợp lệ.

Bài viết này được đăng tại [free tuts .net]

Test Cases 3: Kiểm thử phản hồi khi User Id trống, click nút đăng nhập và nhiều thông tin khác.

Các kịch bản kiểm thử thường không rõ ràng và bao gồm nhiều trường hợp. Để kiểm thử tất cả các trường hợp, chúng ta cần có Test Cases.

2. Định dạng của Test Cases tiêu chuẩn.

Dưới đây là định dạng chuẩn của một Test Cases đăng nhập.

Test Case ID Kịch bản kiểm thử Các bước kiểm thử Dữ liệu Kiểm thử Kết quả dự kiến Kết quả thực tế Pass/Fail TU01 Kiểm thử đăng nhập của khách hàng với dữ liệu hợp lệ.

Bước 1: Truy cập trang web http://demo.guru99.com.

Bước 2: Nhập tên người dùng

và mật khẩu

Bước 3: Click vào Submit

Tên người dùng: guru99 Mật khẩu: pass99 Người dùng đăng nhập vào website thành công Như mong đợi Pass TU02 Kiểm thử đăng nhập của khách hàng với dữ liệu không hợp lệ

Bước 1: Truy cập trang web http://demo.guru99.com

Bước 2: Nhập tên người dùng

và mật khẩu

Bước 3: Click vào Submit

Tên người dùng: guru99 Mật khẩu: glass99 Người dùng đăng nhập vào website thành công Như mong đợi Pass

Một Test Cases bao gồm các thông tin sau:

  • Mô tả về những yêu cầu được kiểm thử.
  • Giải thích về cách hệ thống sẽ được kiểm thử.
  • Các thiết lập khi kiểm thử như: phiên bản ứng dụng đang kiểm thử, phần mềm, những tệp dữ liệu, hệ điều hành, phần cứng, truy cập bảo mật, ngày thực hiện, các điều kiện tiền đề và bất kỳ thông tin thiết lập nào khác phù hợp với các yêu cầu đang được kiểm thử.
  • Đầu vào và đầu ra hoặc hành động và kết quả mong đợi.
  • Bất kỳ bằng chứng hoặc tệp đính kèm.
  • Sử dụng ngôn ngữ hoạt động.
  • Test Case không được quá 15 bước.
  • Kịch bản kiểm thử tự động được chú thích đầu vào, mục đích và kết quả mong đợi.
  • Thiết lập những thay đổi cho các kiểm thử cần thiết trước.

3. Cách để viết Test Cases tốt nhất.

1. Các Test Cases cần phải đơn giản và minh bạch:

Tạo các Test Cases đơn giản nhất có thể. Test Cases phải rõ ràng và ngắn gọn vì tác giả của Test Cases có thể không thực hiện chúng.

Sử dụng ngôn ngữ dễ hiểu như: đi đến trang chủ, nhập dữ liệu, click vào Submit… Điều này làm cho việc hiểu các bước kiểm thử dễ dàng và thực hiện kiểm thử nhanh hơn.

2. Tạo Test Cases với vai trò như người dùng cuối

Mục tiêu cuối cùng của bất kỳ dự án phần mềm nào là tạo ra phần mềm đáp ứng yêu cầu của khách hàng và dễ sử dụng cũng như dễ vận hành. Người kiểm thử phải tạo Test Cases dựa trên quan điểm người dùng cuối.

3. Tránh lặp lại Test Cases.

Không lặp lại các Test Cases. Nếu một Test Cases là cần thiết để thực hiện một số Test Cases khác, hãy nêu Test Case Id trong cột điều kiện tiền đề.

4. Không phỏng đoán

Không phỏng đoán các chức năng và tính năng của ứng dụng phần mềm trong khi chuẩn bị Test Cases. Phải bám sát các Tài liệu kỹ thuật.

5. Đảm bảo bao phủ 100% 

Hãy chắc chắn rằng bạn viết các Test Cases để kiểm thử tất cả các yêu cầu phần mềm được đề cập trong tài liệu đặc tả. Sử dụng Ma trận truy xuất nguồn gốc (Traceability Matrix) để đảm bảo không có chức năng hay điều kiện nào chưa được kiểm thử.

6. Các Test Cases phải được xác định.

Đặt tên các Test Cases sao cho chúng được xác định dễ dàng khi theo dõi lỗi hoặc xác định yêu cầu phần mềm ở giai đoạn sau.

7. Thực hiện các kỹ thuật kiểm thử

Không thể kiểm thử mọi điều kiện có thể có trong ứng dụng phần mềm. Kỹ thuật kiểm thử sau đây giúp bạn chọn những Test Cases với khả năng tìm thấy lỗi tối đa.

Phân tích giá trị biên (Boundary Value Analysis ­- BVA): Đây là kỹ thuật kiểm thử xác định các ranh giới cho phạm vi giá trị được chỉ định.

Phân vùng tương đương (Equivalence Partition – EP): Kỹ thuật này phân vùng phạm vi thành các phần giống nhau hoặc nhóm có xu hướng có cùng kết quả.

Kỹ thuật chuyển trạng thái (State Transition Technique): Phương pháp này được sử dụng khi hệ thống có xử lý thay đổi từ trạng thái này sang trạng thái khác sau hành động cụ thể.

Kỹ thuật đoán lỗi (Error Guessing Technique): Dự đoán lỗi có thể phát sinh trong khi kiểm thử. Đây không phải là kỹ thuật chính thức và kỹ thuật này tận dụng trải nghiệm của tester với ứng dụng.

8. Làm sạch môi trường kiểm thử

Test Cases bạn tạo phải đảm bảo môi trường kiểm thử đúng theo yêu cầu, phải phục hồi môi trường kiểm thử về trạng thái trước khi kiểm thử khi môi trường kiểm thử đã bị thay đổi và môi trường kiểm thử phải sử dụng được. Điều này đặc biệt đúng đối với kiểm thử cấu hình.

9. Lặp lại và không thay đổi

Test Cases sẽ tạo ra kết quả giống nhau mỗi lần bất kể ai kiểm thử nó

10. Đánh giá ngang hàng.

Sau khi tạo các Test Cases, hãy để các đồng nghiệp của bạn review Test Cases. Đồng nghiệp của bạn có thể phát hiện ra các lỗi trong thiết kế Test Cases của bạn mà bạn có thể dễ dàng bỏ qua.

4. Công cụ quản lý Test Cases

Các công cụ quản lý kiểm thử là các công cụ tự động hóa giúp quản lý và duy trì các Test Cases. Các tính năng chính của một công cụ quản lý Test Cases là:

Để ghi lại các test cases: Với các công cụ, bạn có thể tiến hành tạo test cases bằng cách sử dụng các templates.

Thực hiện Test Case và Ghi lại kết quả: Test Case có thể được thực thi thông qua các công cụ và kết quả thu được có thể dễ dàng được ghi lại.

Tự động theo dõi lỗi: Các kiểm thử failed được tự động liên kết với trình theo dõi lỗi, lần lượt có thể được chỉ định cho các developer và có thể được theo dõi bằng thông báo email.

Truy xuất nguồn gốc: Yêu cầu, test cases, thực thi Test Cases đều được liên kết với nhau thông qua các công cụ và mỗi trường hợp có thể được liên kết với nhau để kiểm tra phạm vi kiểm thử.

Lưu trữ các Test Cases: Các test cases nên được sử dụng lại và cần được lưu trữ để không bị mất hoặc bị hỏng. Công cụ quản lý Test Cases cung cấp các tính năng như:

  • Quy ước đặt tên và đánh số
  • Phiên bản
  • Lưu trữ dưới dạng chỉ đọc
  • Kiểm soát truy cập
  • Sao lưu ngoài trang web

Các công cụ quản lý kiểm thử phổ biến là: Quality Center và JIRA

5. Tài nguyên

Xin lưu ý rằng template được sử dụng sẽ thay đổi theo từng dự án. 

Tải xuống template test case dạng Excel (.xls)

Nếu bạn là một tester thì chắc hẳn viết Test Case sẽ là công việc hàng ngày của bạn. Cách viết Test Case chuyên nghiệp và tối ưu là không hề dễ dàng. Vậy Test Case là gì? Cách viết Test Case như thế nào? Mời bạn cùng theo dõi qua bài viết dưới đây.

Định nghĩa Test Case (TC) là gì?

Test Case là thuật ngữ thường được sử dụng trong Testing (Kiểm thử phần mềm). Mục đích của Testing là kiểm tra một ứng dụng, phần mềm xem có lỗi phát sinh hay không. Test Case là tập hợp các trường hợp có thể xảy ra khi Tester kiểm tra phần mềm. Việc ứng dụng Test Case giúp việc kiểm thử được diễn ra một cách hệ thống và giúp Tester lường trước được mọi khả năng có thể xảy ra. Do đó, việc hiểu được cách viết Test Case chuẩn là rất quan trọng.

Test Case đóng vai trò như một bản kế hoạch vạch ra trước cho Tester. Theo đó Tester sẽ thực hiện từng bước và công đoạn khi kiểm thử phần mềm. Hơn nữa Test Case còn giúp xác định liệu một phần mềm nào đó có hoạt động hiệu quả hay không.

Cấu trúc cơ bản của một Test Case

Trước khi học cách viết Test Case. Ta hãy cùng tìm hiểu cấu trúc cơ bản của một Test Case. Một Test Case sẽ bao gồm những thông tin như sau:

  • Test Case ID: Đầu tiên, bạn cần xác định số lượng Test Case cần phải thực hiện. Số lượng Test Case sẽ thay đổi tùy theo mỗi dự án khác nhau. Test Case ID chính là số thứ tự của từng Test Case.

  • Function (Chức năng): Thông thường, khi Testing sẽ tập trung vào một chức năng cụ thể của ứng dụng. Các chức năng này có thể được chia nhỏ thành các chức năng nhỏ hơn. Ví dụ việc Đăng nhập Facebook có thể chia thành 2 chức năng là: Kiểm tra form đăng nhập và đăng nhập.
  • Test Data: Đây là những dữ liệu đầu vào cần chuẩn bị trước khi test.
  • Test Steps: Bao gồm các bước chi tiết cần thực hiện khi test.
  • Expected Results: Đây là bước các xác định các kết quả mong đợi sau khi thực hiện xong các bước của Test Case.
  • A Result: Đây là thành phần nhỏ hơn của Expected Results. Các kết quả sẽ được phân thành pass, fail và pending. Tùy theo từng trường hợp thực tế mà kết quả sẽ thay đổi.
  • Comments: Đây là thành phần dùng để ghi chú trong khi thực hiện Test Case. Cũng như lưu trữ các thông tin phát sinh trong suốt quá trình.
  • Ngoài ra bạn có thể thêm các trường thông tin khác như: Tester (Thông tin người Test), Execution Date (Ngày thực hiện Test),…

Các trường hợp có thể xảy ra của một Test Case

Một trong những lưu ý quan trọng khi học cách viết Test Case là phải xác định được các trường hợp sẽ xảy ra của Test Case. Thông thường khi kiểm tra 1 chức năng, sẽ xảy ra 3 trường hợp như sau:

  • Normal Case: Các trường hợp kiểm thử phổ biến thông thường.
  • Abnormal Case: Các trường hợp kiểm thử bất bình thường.
  • Boundary Case: Các trường hợp kiểm thử ngoài lề.

Mỗi Case lớn này sau đó sẽ được chia ra làm các Test Case nhỏ hơn. Và sau đó sẽ bắt đầu tiến hành kiểm thử.

Cách viết Test Case hoàn thiện trong 5 bước

Cách viết Test Case thường bao gồm 5 bước như dưới đây. Để viết được một Test Case tối ưu, bạn hãy thực hiện lần lượt các bước sau:

Bước 1: Xác định mục tích Test

Ở bước này, bạn cần hiểu rõ yêu cầu của khách hàng. Sau đó đặt ra các tiêu chuẩn và mục đích của việc thực hiện Testing.

Bước 2: Xác định hiệu suất Testing

Công đoạn này đòi hỏi bạn phải có kiến thức khá rộng về lập trình. Ở bước này, bạn cần phải xác định được các chức năng, thành phần sẽ tương tác với nhau để tính toàn ra hiệu suất khi chạy Testing.

Bước 3: Xác định các yêu cầu phi chức năng

Để học cách viết Test Case hiệu quả, kiến thức về Testing không là chưa đủ, bạn cần phải có kiến thức về phần cứng, hệ điều hành cũng như về an ninh. Chúng sẽ giúp bạn đảm bảo công đoạn chạy Testing diễn ra thuận lợi, an toàn.

Bước 4: Xác định biểu mẫu cho các Test Cases

Biểu mẫu của các Test Case sẽ thay đổi tùy từng trường hợp cụ thể. Tuy nhiên, một Test Case thông thường phải bao gồm giao diện UI, chức năng, khả năng tương thích và hiệu suất của phần mềm.

Bước 5: Xác định nguyên tắc của các Modules

Để thực hiện việc Testing hiệu quả, bạn cần hiểu rõ về chức năng mỗi Modules của phần mềm. Không những vậy, bạn còn cần tìm hiểu về cách các Modules tương tác với nhau. Khi đó bạn có thể chạy Test Case trôi chảy mà không gặp vấn đề gì.

Bài viết đã cung cấp cho bạn cách viết Test Case chuyên nghiệp và tối ưu. Test Case là công cụ không thể thiếu cho mỗi Tester khi kiểm thử phần mềm. Do đó, các Tester tìm hiểu thật kỹ về Test Case để việc Test được diễn ra một cách hoàn hảo.