Kịch bản kiểm thử là gì? Cách viết kịch bản kiểm thử kèm ví dụ.
⚡ Tóm tắt thông minh
Trong kiểm thử phần mềm, kịch bản kiểm thử là một tập hợp các dòng lệnh có thể thực thi, điều khiển ứng dụng và kiểm tra từng bước. Hướng dẫn này bao gồm ba phương pháp xây dựng, một mẫu có thể tái sử dụng và một kịch bản hoạt động thực tế. Selenium thí dụ.

Tập lệnh kiểm thử trong kiểm thử phần mềm là gì?
A kịch bản thử nghiệm Đây là bản mô tả từng dòng các giao dịch hệ thống cần thực hiện để xác thực ứng dụng đang được kiểm thử. Nó liệt kê mọi bước cần thực hiện cùng với kết quả dự kiến của mỗi bước.
Vì có thể thực thi được, cùng một kịch bản có thể được chạy lại một cách có hệ thống trên nhiều thiết bị và phiên bản khác nhau. Một kịch bản hữu ích luôn ghi lại cả dữ liệu đầu vào thực tế và kết quả đầu ra dự kiến.
Cách viết một kịch bản kiểm thử

Có ba cách khác nhau để tạo tập lệnh thử nghiệm:
Ghi và phát lại
Với phương pháp này, người kiểm thử không cần viết bất kỳ đoạn mã nào, chỉ cần ghi lại các thao tác của người dùng. Việc lập trình vẫn cần thiết sau này để sửa chữa bất kỳ lỗi nào hoặc để tinh chỉnh hành vi tự động hóa.
Phương pháp này dễ dàng hơn việc viết một kịch bản kiểm thử hoàn chỉnh từ đầu vì bạn đã có mã hoàn chỉnh. Nó chủ yếu được sử dụng trong ngôn ngữ lập trình đơn giản hóa như VBScript.
Lập trình dựa trên từ khóa hoặc dữ liệu
Trong phương pháp này, có sự tách biệt rõ ràng giữa người thử nghiệm và nhà phát triển. Trong tập lệnh hướng dữ liệu, người kiểm tra xác định thử nghiệm bằng cách sử dụng từ khóa mà không cần biết về mã cơ bản.
Ở đây, công việc của nhà phát triển là triển khai mã script thử nghiệm cho các từ khóa và cập nhật mã này khi cần. Vì vậy, trong phương pháp này, người kiểm thử không cần phải lo lắng về hệ thống. Tuy nhiên, họ sẽ phụ thuộc rất nhiều vào tài nguyên phát triển cho bất kỳ chức năng mới nào mà bạn muốn kiểm tra tự động.
Viết mã trong ngôn ngữ lập trình
Nếu bạn chọn phương pháp này, thông thường bạn vẫn có thể ghi âm và phát lại để tạo bản nháp đầu tiên của kịch bản.
Tuy nhiên, sớm muộn gì thì người kiểm thử cũng cần phải vượt ra khỏi việc ghi âm và phát lại để học cách tự viết các kịch bản đơn giản. Điều quan trọng là phải hiểu rằng bạn có thể lựa chọn cách thức của mình. Ngôn ngữ lập trình ngay cả khi ứng dụng của bạn được viết bằng Java.
Tuy nhiên, điều đó không có nghĩa là bạn cần viết kịch bản kiểm thử của mình bằng Java, có thể khó học. Thay vào đó, bạn có thể viết tập lệnh kiểm tra của mình bằng ngôn ngữ dễ dàng hơn như JavaScript hoặc Ruby (hoặc bất kỳ ngôn ngữ nào dễ sử dụng hơn mà bạn muốn sử dụng).
Ví dụ về tập lệnh kiểm tra
Ví dụ, để kiểm tra chức năng đăng nhập trên một trang web, tập lệnh thử nghiệm của bạn có thể thực hiện như sau:
- Chỉ định cách công cụ tự động hóa có thể định vị các trường “Tên người dùng” và “Mật khẩu” trong màn hình đăng nhập. Giả sử, bằng ID phần tử CSS của họ.
- Tải trang chủ của trang web, sau đó nhấp vào liên kết “đăng nhập”. Xác minh rằng màn hình Đăng nhập xuất hiện và các trường “Tên người dùng” và “Mật khẩu” hiển thị.
- Nhập tên người dùng “Charles” và mật khẩu “123456”, sau đó tìm nút “Xác nhận” và nhấp vào đó.
- Họ cần chỉ định cách người dùng có thể định vị tiêu đề của màn hình Chào mừng xuất hiện sau khi đăng nhập - chẳng hạn bằng ID thành phần CSS của nó.
- Xác minh rằng tiêu đề của màn hình Chào mừng có thể nhìn thấy được.
- Đọc tiêu đề của màn hình chào mừng.
- Khẳng định rằng văn bản tiêu đề bằng với "Chào mừng Charles".
- Nếu kết quả phù hợp với kỳ vọng, hãy ghi nhận bài kiểm tra là đạt. Nếu không, hãy ghi nhận là không đạt.
Ví dụ kịch bản kiểm thử trong Selenium với Java
Danh sách gạch đầu dòng ở trên mô tả một bài kiểm tra đăng nhập bằng ngôn ngữ dễ hiểu. Dưới đây là bài kiểm tra tương tự được viết dưới dạng một kịch bản thực thi, sử dụng Selenium WebDriver và JUnitMỗi gạch đầu dòng tương ứng với một hoặc hai dòng mã.
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.junit.Assert; import org.junit.Test; public class LoginTestScript { @Test public void validLoginShowsWelcomeMessage() { // Step 1: start the browser and open the site WebDriver driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/login.html"); // Step 2: locate the fields by their element ids driver.findElement(By.id("email")).sendKeys("Charles"); driver.findElement(By.id("passwd")).sendKeys("123456"); // Step 3: submit the form driver.findElement(By.id("SubmitLogin")).click(); // Step 4: read the welcome title and assert the expected result String actual = driver.findElement(By.id("welcome")).getText(); Assert.assertEquals("Welcome Charles", actual); driver.quit(); } }
Có ba chi tiết tạo nên sự khác biệt giữa một kịch bản thật và một kịch bản đã được ghi âm:
- Các bộ định vị được chỉ định rõ ràng. Các phần tử được tìm thấy bằng ID chứ không phải bằng vị trí trên màn hình, do đó đoạn mã vẫn hoạt động bình thường ngay cả khi bố cục thay đổi.
- Lời khẳng định chính là phép thử. Nếu không có assertEquals, đoạn mã chỉ đơn thuần thực hiện thao tác nhấp chuột; chính điều kiện kiểm tra mới quyết định thành công hay thất bại.
- Quá trình dọn dẹp luôn diễn ra. Phương thức `driver.quit()` sẽ giải phóng trình duyệt, nếu không, quá trình chạy thất bại sẽ để lại các tiến trình con.
Cấu trúc tương tự áp dụng cho mọi ngôn ngữ. Trong Python với Selenium các lệnh gọi trở thành driver.find_element(By.ID, “email”) và khẳng định actual == “Welcome Charles”.
Mẹo tạo Test Script
Dưới đây là một số mẹo quan trọng để tạo tập lệnh thử nghiệm:
Giữ nó rõ ràng
Kịch bản kiểm thử của bạn cần đủ rõ ràng để có thể chạy mà không cần trợ giúp. Nếu người kiểm thử phải liên tục hỏi chủ dự án về chi tiết ứng dụng, thời gian và nguồn lực sẽ bị lãng phí.
Để tránh điều này, hãy đảm bảo rằng mỗi bước trong kịch bản kiểm thử đều rõ ràng, ngắn gọn và mạch lạc. Điều này giúp quá trình kiểm thử diễn ra suôn sẻ.
Giữ cho nó đơn giản
Bạn nên tạo một tập lệnh thử nghiệm chỉ chứa một hành động cụ thể để người thử nghiệm thực hiện. Điều này đảm bảo rằng mỗi chức năng đều được kiểm tra chính xác và người kiểm tra không bỏ lỡ các bước trong quy trình kiểm thử phần mềm.
Hãy nghĩ thật thông suốt
Để viết kịch bản kiểm thử, bạn cần đặt mình vào vị trí của người dùng để quyết định đường dẫn nào cần kiểm thử. Bạn phải đủ sáng tạo để dự đoán tất cả các đường dẫn khác nhau mà người dùng sẽ sử dụng khi chạy hệ thống hoặc ứng dụng.
Khi nào nên sử dụng Phương pháp tiếp cận Test Script?
Dưới đây là những lý do nên sử dụng Test Script.
- Kịch bản kiểm thử là cách đáng tin cậy nhất để xác nhận rằng không có bước nào bị bỏ qua và kết quả phù hợp với kế hoạch kiểm thử đã được thống nhất.
- Một kịch bản được chuẩn bị kỹ lưỡng sẽ giảm thiểu đáng kể khả năng xảy ra lỗi trong quá trình thực thi.
- Khi người dùng thử tự do khám phá sản phẩm, họ rất dễ bỏ sót các tính năng.
- Người kiểm thử cũng có thể cho rằng một hàm đã tạo ra kết quả như mong đợi trong khi thực tế không phải vậy.
- Nó đặc biệt hữu ích khi hiệu suất của người dùng là quan trọng và cụ thể.
Mẫu tập lệnh thử nghiệm là gì?
Mẫu kịch bản kiểm thử là một tài liệu được định dạng sẵn, có thể tái sử dụng, chứa các trường mà mọi kịch bản trong dự án của bạn phải điền vào. Việc chuẩn hóa mẫu này quyết định mức độ chi tiết của các bài kiểm thử và đảm bảo rằng không người đánh giá nào phải đoán xem một bước cụ thể có nghĩa là gì.
Một mẫu khả thi bao gồm các trường sau:
| Phần | Mục đích |
|---|---|
| Mã số kịch bản | Mã định danh duy nhất được sử dụng cho trackhả năng và liên kết khuyết tật |
| Yêu sách | Một dòng duy nhất nêu rõ nội dung mà kịch bản xác thực. |
| Mô-đun hoặc tính năng | Khu vực ứng dụng đang được thử nghiệm |
| Điều kiện tiên quyết | Trạng thái hệ thống phải như thế nào trước khi bước đầu tiên được thực thi? |
| Dữ liệu kiểm tra | Thông tin đầu vào chính xác, bao gồm thông tin xác thực và giá trị giới hạn. |
| Các bước | Các thao tác được đánh số, mỗi bước một thao tác. |
| Kết quả mong đợi | Kết quả quan sát được của mỗi bước |
| Kết quả thực tế | Được điền vào lúc thực thi |
| Trạng thái | Đạt, không đạt, bị chặn hoặc không chạy |
| Tác giả và ngày tháng | Lịch sử quyền sở hữu và phiên bản |
Sự khác biệt giữa Test Case và Test Script
Dưới đây là những điểm khác biệt chính giữa trường hợp kiểm thử và kịch bản kiểm thử:
| Trường hợp thử nghiệm | Tập lệnh thử nghiệm |
|---|---|
| Kiểm tra trường hợp là một quy trình từng bước được sử dụng để kiểm tra một ứng dụng. | Kịch bản kiểm thử là một tập hợp các hướng dẫn để kiểm thử một ứng dụng một cách tự động. |
| Các trường hợp thử nghiệm được sử dụng cho môi trường thử nghiệm thủ công. | Test Script được sử dụng trong môi trường thử nghiệm tự động hóa. |
| Nó được thực hiện bằng tay. | Nó được thực hiện theo định dạng kịch bản. |
| Mẫu trường hợp kiểm thử bao gồm ID kiểm thử, dữ liệu kiểm thử, quy trình kiểm thử, kết quả thực tế và dự kiến, v.v. | Trong Test Script, chúng ta có thể sử dụng các lệnh khác nhau để phát triển tập lệnh. |
Ưu điểm và nhược điểm của kịch bản kiểm thử
Viết kịch bản tự động là một khoản đầu tư. Biết được nó mang lại lợi ích ở đâu sẽ giúp bạn biết nên tự động hóa những bài kiểm thử nào trước tiên.
Ưu điểm
- Có thể lặp lại: Các bước thực hiện giống hệt nhau trên mọi bản dựng, đó là điều làm cho kiểm thử hồi quy trở nên thiết thực.
- Nhanh chóng trên quy mô lớn: Một bộ kiểm thử mà người kiểm thử mất cả ngày để hoàn thành có thể chạy trong vài phút, và thậm chí có thể chạy suốt đêm.
- Thích hợp: Kịch bản không bao giờ nhàm chán, bỏ sót bước nào, hay hiểu sai kết quả.
- Đa nền tảng: Một kịch bản duy nhất có thể được phát lại trên nhiều trình duyệt, thiết bị và hệ điều hành khác nhau.
- Sẵn sàng cho CI: Các tập lệnh được tích hợp vào quy trình xây dựng để mọi lần commit đều được tự động xác minh.
Nhược điểm
- Chi phí thiết lập cao: Việc viết và gỡ lỗi một kịch bản tốn nhiều thời gian hơn nhiều so với việc chạy thử nghiệm thủ công một lần.
- Gánh nặng bảo trì: Việc thay đổi ID phần tử hoặc thiết kế lại trang gây ra lỗi khi thiết kế lại các tập lệnh, dẫn đến việc phải sửa chữa chúng.
- Yêu cầu về kỹ năng: Ngoài khả năng ghi âm và phát lại, nhóm cần có khả năng lập trình.
- Mù quáng trước những điều bất ngờ: Một đoạn mã chỉ kiểm tra những gì nó được yêu cầu kiểm tra, vì vậy các lỗi về hình ảnh và khả năng sử dụng có thể bị bỏ sót.
- Sự tự tin sai lầm: Một bộ mã lệnh đơn giản, dễ nhớ có thể che giấu những lỗ hổng thực sự trong phạm vi bao phủ.
Nguyên tắc thực tiễn: hãy lập trình sẵn các quy trình ổn định, lặp đi lặp lại và có rủi ro cao, còn công việc khám phá và kiểm tra khả năng sử dụng nên được thực hiện thủ công.
Kịch bản kiểm thử: Những điểm chính cần lưu ý
- Tập lệnh kiểm thử nghĩa là mô tả từng dòng chứa thông tin về các giao dịch hệ thống cần được thực hiện để xác thực ứng dụng hoặc hệ thống đang được kiểm thử.
- Trường hợp kiểm thử là quy trình từng bước được sử dụng để kiểm tra ứng dụng trong khi tập lệnh kiểm thử là một tập hợp các hướng dẫn để tự động kiểm tra ứng dụng.
- Có ba cách để tạo kịch bản kiểm thử: 1) Ghi âm/phát lại, 2) Viết kịch bản dựa trên từ khóa/dữ liệu, 3) Tự viết. Code Sử dụng ngôn ngữ lập trình.
- Tập lệnh kiểm thử của bạn phải rõ ràng và bạn nên tạo tập lệnh kiểm thử chỉ chứa một hành động cụ thể để người kiểm tra thực hiện.
- Kịch bản kiểm thử là cách đáng tin cậy nhất để xác nhận rằng không có bước nào bị bỏ qua và kết quả phù hợp với kế hoạch kiểm thử đã được thống nhất.
- Mẫu tập lệnh kiểm thử là một tài liệu được định dạng có thể sử dụng lại, chứa thông tin được chọn trước quan trọng để tạo tập lệnh kiểm thử có thể sử dụng được.
