Trong quá trình kiểm thử phần mềm, việc thiết kế các bộ dữ liệu kiểm thử (test data) đóng vai trò quan trọng để đảm bảo tính toàn vẹn và độ tin cậy của phần mềm. Thiết kế các bộ dữ liệu kiểm thử hiệu quả giúp tăng độ chính xác của kết quả kiểm thử và giảm thiểu những rủi ro tiềm ẩn trong quá trình sử dụng phần mềm.
Để thiết kế các bộ dữ liệu kiểm thử, ta cần phải hiểu rõ yêu cầu và chức năng của phần mềm cần kiểm thử. Dựa trên đó, ta có thể thiết kế các bộ dữ liệu kiểm thử đa dạng, phong phú và đầy đủ các trường hợp kiểm thử. Các bộ dữ liệu kiểm thử cần bao gồm các trường hợp kiểm thử cơ bản và các trường hợp kiểm thử đặc biệt.
Trong bài viết này, hãy cùng mình tìm hiểu về Dữ liệu kiểm thử là gì, Cách thức thu thập dữ liệu, Những lợi ích của việc thiết kế dữ liệu kiểm thử, Một số lời khuyên từ việc triển khai dữ liệu kiểm thử cho hiệu quả,…
Nào, hãy cùng mình bắt đầu nhé!
Dữ Liệu Kiểm Thử Là Gì?
Dữ liệu kiểm thử là những thông tin mà nhà kiểm thử sử dụng để kiểm tra xem ứng dụng hoạt động thế nào. Nó được tạo ra khi một nhà kiểm thử muốn thu thập dữ liệu để đáp ứng các yêu cầu kiểm tra.
Dữ liệu kiểm thử là một quan trọng của quá trình phát triển ứng dụng. Bằng cách kiểm tra dữ liệu sơ bộ trước khi hoàn thành các bài kiểm tra, các nhà kiểm thử có thể xác định các bug tốt hơn. Việc hiểu dữ liệu kiểm thử có thể giúp bạn xác định xem sản phẩm có cần phát triển thêm, cần kiểm thử thêm hay đã sẵn sàng để phát hàng ra thị trường.
Vai Trò Của Dữ Liệu Kiểm Thử
Dưới đây là một số vai trò quan trọng của dữ liệu kiểm thử trong quá trình kiểm thử phần mềm:
- Cung cấp khả năng xác định lỗi mã hoá (coding error): Dữ liệu kiểm thử có thể giúp các nhà kiểm thử xác định lỗi mã hoá một cách nhanh chóng trước khi phát hành chương trình. Nó cũng có thể giúp cải thiện tính bảo mật của sản phẩm.
- Cung cấp cơ sở cho kiểm thử bổ sung: Dữ liệu kiểm thử cung cấp cơ sở để phát triển các trường hợp thử nghiệm tiếp theo. Trước tiên, nó kiểm tra các đầu vào cơ bản nhất trước khi chuyển sang những mục đích cụ thể của chương trình.
- Xác định sự dư thừa hoặc trùng lặp không cần thiết: Dữ liệu kiểm thử có thể giúp người thiết kế tìm ra sự dư thừa hoặc trùng lặp code không cần thiết. Điều nãy có thể giúp làm nhẹ code và tạo một sản phẩm hiệu quả hơn.
- Cung cấp tính linh hoạt trong việc quản lý ứng dụng: Việc thu thập dữ liệu kiểm thử có thể giúp nhà thiết kế linh hoạt khi quản lý nhiều ứng dụng, đặc biệt là trên một số nền tảng.
Một Số Lưu Ý Khi Thiết Kế Dữ Liệu Kiểm Thử
Sau đây mình xin giới thiệu một số lưu ý bạn có thể sử dụng khi thiết kế dữ liệu kiểm thử:
- Tạo dữ liệu kiểm thử trước khi tiến hành kiểm thử: Chuẩn bị dữ liệu kiểm thử là một phần của việc thiết lập cho hoạt động kiểm thử. Trong khi viết test case, bạn cần có cách tiếp cận để tạo dữ liệu theo nhu cầu của mình để tránh thiếu dữ liệu. Đừng chỉ dựa vào dữ liệu thử nghiệm do tester khác tạo ra, dữ liệu này có thể không được cập nhật. Trong trường hợp không thể tạo dữ liệu kiểm thử mới cho mỗi bản kiểm thử, bạn có thể sử dụng một bộ dữ liệu tiêu chuẩn.
- Sử dụng tất cả các kết hợp khi kiểm thử: Cố gắng sử dụng mọi kết hợp có thể có của cả dữ liệu được hỗ trợ và không được hỗ trợ để giúp đảm bảo dữ liệu kiểm thử đo lường tất cả các thông số cần thiết.
- Thu thập dữ liệu sử dụng cho positive testing và negative testing. Positive testing xác minh các chức năng của chương trình để tạo ra kết quả mong đợi, còn negative testing xác minh xem chương trình có thể xử lý các kết quả bất thường hay không.
- Dành đủ thời gian để thiết kế dữ liệu kiểm thử: Đảm bảo dành cho mình có đủ thời gian để thu thập càng nhiều dữ liệu kiểm thử càng tốt.
- Giữ nguyên vẹn dữ liệu của bạn: Kt icó hihềơuhnơơ ộte seltr sệàm icệc ù gnuh.u Tất nhiên cả hai sẽ có quyền truy cập vào dữ liệu kiểm thử và mỗi người sẽ cố gắng tuỳ chỉnh nó theo ý muốn của mình. Hãy thực hiện sao lưu bộ dữ liệu trước khi có bất kỳ chỉnh sửa gì để đảm bảo dữ liệu gốc được nguyên vẹn.
- Đánh giá lại dữ liệu trong từng giai đoạn: Xem xét, đánh giá lại dữ liệu ở mỗi giai đoạn của dự án để giúp đảm bảo năng suất và độ chính xác của bộ dữ liệu kiểm thử.
Các Cách Thiết Kế Dữ Liệu Kiểm Thử
Thông thường, dữ liệu kiểm thử phải được tạo trước khi bạn bắt đầu tiến hành kiểm thử. Việc tạo dữ liệu kiểm thử có thể rất tốn thời gian, vì trong nhiều môi trường kiểm thử, việc tạo cần nhiều bước hoặc cấu hình môi trường thử nghiệm…Do đó nếu việc tạo dữ liệu được thực hiện trong giai đoạn tiến hành kiểm thử, bạn có thể vượt quá thời gian kiểm thử của mình.
Dưới đây là một số phương pháp thiết kế Dữ liệu kiểm thử:
Tạo dữ liệu kiểm thử thủ công
Thủ công là cách đơn giản nhất để tạo dữ liệu kiểm thử. Nó thường được tạo ra khi bắt đầu thực hiện dự án và bao gồm tất cả các kết hợp có thể của đầu vào (input) và đầu ra (output).
Một cách tiếp cận là chuẩn bị danh sách các mục cần sử dụng để thử nghiệm, tạo dữ liệu mẫu bởi chính các thành viên nhóm kiểm thử của bạn, sau đó xác thực rằng nó hoạt động như mong đợi.
Tạo dữ liệu kiểm thử tự động
Dữ liệu tự động là thông tin đến từ một quy trình tự động. Phương pháp này dựa trên việc sử dụng các công cụ tự động hoá và cho phép người thiết kế nhập các tiêu chí cụ thể để thu thập dữ liệu.
Data Copying
Tuỳ thuộc vào loại dữ liệu kiểm thử bạn cần thu thập, bạn có thể sao chép dữ liệu bạn cần từ dữ liệu hiện có. Điều này có thể giảm thời gian các nhà kiểm thử dành để thu thập dữ liệu thử nghiệm, đặc biệt khi muốn chuyển từ thử nghiệm ban đầu sang các bài kiểm tra khác một cách nhanh chóng. Quá trình này cũng có thể sử dụng các công cụ của bên thứ ba để giúp nhà kiểm thử hiểu rõ hơn về các kịch bản kiểm thử.
Chèn dữ liệu back-end
Một cách khác để thiết kế dữ liệu kiểm thử là chèn dữ liệu Back-end. Quá trình này thu thập dữ liệu từ back-end của server. Back-end của hệ thống cung cấp cho nhà kiểm thử dữ liệu họ cần bằng cách sử dụng cơ sở dữ liệu lưu trữ.
Quá trình này sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL), một ngôn ngữ lập trình thu thập các loại dữ liệu nhất định. Lợi ích lớn nhất của việc đưa dữ liệu vào back-end là nó có thể tăng tốc độ thu thập dữ liệu. Nó cũng cho phép các nhà nghiên cứu thu thập dữ liệu cũ mà hệ thống thu thập và lưu trữ từ những ngày trước đó.
Slicing
Slicing đề cập tới một kỹ thuật mà các lập trình viên chỉ sao chép một phần dữ liệu product của họ thay vì sao chép tất cả dữ liệu đó. Số lượng nhỏ hơn này có thể đủ để tạo dữ liệu kiểm thử. Việc sử dụng phương pháp slicing có thể giúp tối ưu hoá hiệu suất tổng thể của bạn và giảm chi phí kiểm thử.
Dữ Liệu Cho Kiểm Thử Hộp Đen
Trong Kiểm thử hộp đen, tester sẽ không xem code. Mục đích chính của người kiểm thử là tìm và định vị lỗi. Do đó, các trường hợp kiểm thử của bạn có thể có dữ liệu thử nghiệm đáp ứng các trường hợp kiểm thử sau đây:
- Không dữ liệu: Kiểm tra phản hồi của hệ thống khi không có dữ liệu nào được gửi
- Dữ liệu hợp lệ: Kiểm tra phản hồi của hệ thống khi dữ liệu kiểm tra hợp lệ
- Dữ liệu không hợp lệ: Kiểm tra phản hồi của hệ thống khi dữ liệu không hợp lệ
- Định dạng dữ liệu không hợp lệ: Kiểm tra phản hồi của hệ thống khi dữ liệu kiểm thử ở định dạng không hợp lệ
- Bộ dữ liệu điều kiện biên: Tập hợp các dữ liệu kiểm thử đáp ứng điều kiện giá trị biên
- Bộ dữ liệu phân vùng tương đương: Tập hợp các dữ liệu kiểm thử đủ điều kiện phân vùng tương đương
- Tập dữ liệu bảng quyết định: Bộ dữ liệu kiểm thử đủ điều kiện cho chiến lược kiểm thử bằng kỹ thuật bảng quyết định
- Tập dữ liệu cho chuyển đổi trạng thái: Bộ dữ liệu kiểm thử đủ điều kiện cho chiến lược kiểm thử bằng kỹ thuật chuyển đổi trạng thái
- Use Case Test Data: Dữ liệu kiểm thử đồng bộ với các trường hợp sử dụng của bạn
Dữ Liệu Cho Kiểm Thử Hộp Trắng
Trong kiểm thử hộp trắng, dữ liệu kiểm thử bắt nguồn từ việc kiểm tra trực tiếp code. Dữ liệu kiểm thử có thể chọn bằng cách tính đến các tiêu chí sau:
- Bao phủ được càng nhiều nhánh càng tốt: Dữ liệu kiểm thử có thể được tạo sao cho tất cả các nhánh của mã nguồn chương trình đều được kiểm tra ít nhất một lần
- Kiểm tra đường dẫn: Tất cả các đường dẫn trong source code được kiểm tra ít nhất một lần. Việc chuẩn bị dữ liệu kiểm thử có thể được thực hiện để bao quát càng nhiều trường hợp càng tốt.
- Negative API Testing:
- Dữ liệu kiểm thử có thể chứa các loại tham số không hợp lệ được sử dụng để gọi các phương thức khác nhau
- Dữ liệu kiểm thử có thể bao gồm tổ hợp các đối số không hợp lệ được sử dụng để gọi các phương thức của chương trình.
Dữ Liệu Cho Kiểm Thử Hiệu Năng
Kiểm thử hiệu năng là loại kiểm thử được thực hiện để xác định tốc độ phản hồi của hệ thống trong một khối lượng công việc cụ thể. Mục tiêu của loại thử nghiệm này không phải là tìm lỗi mà là loại bỏ tắc nghẽn. Một khía cạnh quan trọng của Kiểm tra hiệu năng là tập hợp dữ liệu mẫu được sử dụng phải rất gần với dữ liệu ‘thực’ hoặc ‘trực tiếp’ được sử dụng dữ liệu có trong quá trình sản xuất. Câu hỏi sau đây được đặt ra: ‘OK! Thật tốt khi thử nghiệm với dữ liệu thực, nhưng làm cách nào để tôi có được dữ liệu này?’ Câu trả lời khá đơn giản: từ những người hiểu rõ nhất – khách hàng. Họ có thể cung cấp một số dữ liệu họ đã có hoặc nếu họ không có bộ dữ liệu hiện có, họ có thể giúp bạn bằng cách đưa ra phản hồi về cách dữ liệu trong thế giới thực trông như thế nào. Trong trường hợp bạn đang ở trong một dự án maintenance, bạn có thể sao chép dữ liệu từ môi trường sản xuất vào thử nghiệm. Lưu ý ẩn danh và xáo trộn dữ liệu nhạy cảm của khách hàng như Số an sinh xã hội, Số thẻ tín dụng, Chi tiết ngân hàng, v.v.. khi tạo bản sao.
Dữ Liệu Cho Kiểm Tra Tính Bảo Mật
Kiểm tra bảo mật nhằm mục đích xác định xem một hệ thống thông tin có bảo vệ dữ liệu khỏi mục đích xấu hay không. Tập hợp dữ liệu cần được thiết kế để kiểm tra đầy đủ bảo mật phần mềm phải bao gồm các tiêu chí sau:
- Bảo mật – Confidentiality: Tất cả thông tin do khách hàng cung cấp được bảo mật nghiêm ngặt nhất và không được chia sẻ với bất kỳ bên ngoài nào. Lấy một ví dụ ngắn gọn, nếu một ứng dụng sử dụng SSL, bạn có thể thiết kế một bộ dữ liệu thử nghiệm để xác minh rằng mã hóa được thực hiện chính xác.
- Tính toàn vẹn – Integrity: Xác định rằng thông tin do hệ thống cung cấp là chính xác. Để thiết kế dữ liệu thử nghiệm phù hợp, bạn có thể bắt đầu bằng cách xem xét kỹ thiết kế, code, cơ sở dữ liệu và cấu trúc các tệp.
- Xác thực – Authentication: Đại diện cho quá trình thiết lập danh tính của người dùng. Dữ liệu thử nghiệm có thể được thiết kế dưới dạng kết hợp tên người dùng và mật khẩu khác nhau và mục đích của nó là để kiểm tra xem chỉ những người được ủy quyền mới có thể truy cập hệ thống phần mềm.
- Quyền hạn – Authorization: Cho biết các quyền của một người dùng cụ thể là gì. Dữ liệu thử nghiệm có thể chứa sự kết hợp khác nhau của người dùng, vai trò và hoạt động để kiểm tra chỉ những người dùng có đủ đặc quyền mới có thể thực hiện một hoạt động cụ thể.
Kết Luận
Tóm lại, thiết kế bộ dữ liệu kiểm thử là một quá trình quan trọng trong kiểm thử phần mềm. Việc thiết kế các bộ dữ liệu kiểm thử đa dạng và phù hợp sẽ giúp tăng tính toàn vẹn và độ tin cậy của phần mềm, đồng thời giảm thiểu những rủi ro tiềm ẩn khi sử dụng phần mềm.
Chuẩn bị dữ liệu thử nghiệm phù hợp là một phần cốt lõi của “thiết lập môi trường thử nghiệm dự án”. Chúng ta không thể bỏ lỡ trường hợp thử nghiệm nói rằng dữ liệu hoàn chỉnh không có sẵn để thử nghiệm. Hãy sáng tạo, sử dụng kỹ năng và phán đoán của riêng bạn để tạo các bộ dữ liệu khác nhau thay vì dựa vào dữ liệu sản xuất tiêu chuẩn.