Mọi người đều biết rằng việc testing là một quá trình tạo ra và tiêu tốn một lượng lớn dữ liệu. Dữ liệu sử dụng trong testing mô tả trạng thái ban đầu của của việc kiểm thử và là phương tiện các tester sử dụng để tác động đến phần mềm. Đây là một bước quan trọng của hầu hết các functional testing. Nhưng thực sự thì test data là gì? Tại sao nó được sử dung? Có thể bạn sẽ tự hỏi tại sao thiết kế dữ liệu test lại khó khăn như thế và sao cần phải quan tâm đến một thứ không mấy quan trọng như Test Data? Mục đích của bài viết này là để giới thiệu với bạn về Test Data, sự quan trọng của nó và hướng cho bạn những cách để tạo ra dữ liệu test nhanh nhất. Nào, chúng ta cùng bắt đầu nhé!

Dữ liệu test là gì? Tại sao nó lại quan trọng?

Dữ liệu test thực tế là những thông tin đầu vào cho một chương trình phần mềm. Nó biểu thị những dữ liệu tác động tới hoặc bị tác động bởi một phần nào đó của hệ thống. Một vài dữ liệu có thể được sử dụng cho test khả quan (positive), thường là để kiểm tra xem từ một tập dữ liệu test cho trước, một hệ thống có đưa ra kết quả đúng theo dự đoán ban đầu hay không. Các dữ liệu khác có thể được sử dụng cho việc test phủ định (negative), dùng để kiểm tra khả năng đối phó với các dữ liệu đầu vào không mong muốn của chương trình. Những dữ liệu test không tốt không thể kiểm tra được tất cả các tình huống có thể xảy ra, và sẽ khiến sản phẩm không bảo đảm được chất lượng.

Test Data Generation là gì? Tạo sao test data cần được tạo ra trước khi chạy test?

Tùy theo môi trường test của bạn, bạn có thể cần TẠO RA dữ liệu test (trong hầu hết thời gian) hay ít nhất là xác định một dữ liệu test thích hợp với với các test case (dữ liệu test có sẵn).

Typically test data is created in-sync with the test case it is intended to be used for.
Thông thường, dữ liệu test không được tạo ra đồng thời cùng với test case nó được sử dụng cho.

Dữ liệu test có thể được tạo ra bằng cách:

  • Thủ công
  • Một lượng lớn dữ liệu copy từ dữ liệu production tới môi trường test
  • Một lượng lớn dữ liệu copy từ các hệ thống client
  • Từ các tools tự động tạo dữ liệu test

Thông thường, dữ liệu test nên được tạo ra trước khi bạn thực hiện test vì trong nhiều môi trường, việc tạo dữ liệu test cần trải qua rất nhiều bước và cần cấu hình môi trường test – một việc tiêu tốn rất nhiều thời gian. Nếu bạn tạo ra dữ liệu test ngay trong lúc tiến hành test, bạn có thể sẽ bị chậm tiến độ của việc kiểm thử.

Dưới đây mô tả một vài kiểu test cùng với gợi ý về các dữ liệu test tương ứng cần thiết.

Dữ liệu test cho White Box Testing

Trong White box testing, dữ liệu test được bắt nguồn từ việc kiểm tra trực tiếp các đoạn code được test. Dữ liệu test có thể được chọn bằng việc tham khảo các vấn đề sau:

  • Bao quát được càng nhiều nhánh càng tốt; dữ liệu test có thể được tạo ra để tất cả các nhánh của mã nguồn chương trình được kiểm thử ít nhất một lần

  • Path testing: tất cả các paths trong mã nguồn chương trình được test ít nhất một lần – dữ liệu test có thể được thiết kế để bao quát càng nhiều trường hợp càng tốt

  • Test phủ định API:

    Dữ liệu test có thể bao gồm nhiều kiểu tham số sai khác, sử dụng để gọi nhiều phương thức khác nhau.

    Dữ liệu test có thể bao gồm sự kết hợp của nhiều tham số sai và sử dụng để gọi các phương thức của chương trình

Dữ liệu test cho việc test Performance

Performance testing là kiểu test sử dụng để đánh giá xem hệ thống nhanh đến đâu trong một điều kiện đã định. Mục đích của kiểu test này không phải là để tìm ra bugs mà là để giái quyết bottlenecks. Một mặt quan trọng của performace testing là tập các dữ liệu test cần phải rất gần giống với dữ liệu thật hoặc đó chính là dữ liệu trên produciton. Có một câu hỏi như sau: ‘OK, test với dữ liệu thật cũng được, nhưng làm thế nào để tôi có thể lấy được các dữ liệu này?’. Câu trả lời khá dễ hiểu: từ những người mà chúng ta biết rất rõ – các khách hàng. Họ có thể sẽ có khả năng cung cấp một vài dữ liệu mà họ đã có sẵn từ trước, hoặc nếu có không có dữ liệu đó, họ có thể giúp chúng ta bằng cách hướng dẫn cho ta biết dữ liệu thật có cấu trúc như thế nào. Trong trường hợp bạn đang trong một dữ án kiểm thử bảo trì, bạn có thể sao chép dữ liệu từ môi trường production vào môi trường test. Đây là một bài tập tốt để ẩn danh các thông tin nhạy cảm của khách hàng như là Mật mã, số thẻ tín dụng, hay thông tin ngân hàng… trong khi copy dữ liệu.

Dữ liệu test cho việc test bảo mật

Test bảo mật là một quá trình đánh giá xem hệ thống có khả năng bảo vệ được dữ liệu từ các hành vi xâm nhập nhập không. Tập hợp các dữ liệu cần được thiết kế cho việc test hoàn chỉnh độ bảo mật của một phần mềm cần bao gồm được các nội dung sau:

  • Độ tin cậy: Tất cả các dữ liệu được cung cấp bởi client đều được lưu giữ một các nghiêm ngặt và không chia sẻ với các bên thứ ba. Một ví dụ ngắn, nếu một ứng dụng sử dụng SSL, bạn cần thiết kế một tập các dữ liệu test để kiểm tra liệu việc mã hóa có được diễn ra chính xác không.
  • Tính toàn vẹn: Đánh giá xem dữ liệu cung cấp bởi hệ thống có chính xác hay không. Để thiết kế một dữ liệu test thích hợp, bạn cần bắt đầu với việc xem xét kỹ thiết kế, code, cơ sử dữ liệu và các cấu trúc file.
  • Xác thực: Diễn tả quá trình thành lập một xác thực của user. Dữ liệu test cần được thiết kế là một bộ kết hợp của username và passowords không chuẩn, mục đích là để kiểm tra rằng hệ thống chỉ cho phép những người có được cho phép mới có khả năng truy nhập vào.
  • Cấp quyền: Việc cấp quyền cho phép một user chỉ có khả năng truy nhập vào các tính năng được cho phép. Dữ liệu test có thể bao gồm các kết hợp khác nhau giữa users, vai trò và các hoạt đông, nhằm đánh giá việc một user cần có đủ các quyền thì mới có thể thực hiện được các hành động cho trước.

Dữ liệu test cho kiểm thử Black box

Trong kiểm thử black box, tester không nhìn thấy mã nguồn. Các test case có thể có dữ liệu test phù hợp với các tiêu chí sau đây:

  • Không dữ liệu: Kiểm tra kết quả trả về của hệ thống khi dữ liệu gửi lên là rỗng
  • Dữ liệu chuẩn: Kiểm tra kết quả trả về của hệ thống khi dữ liệu chuẩn được gửi lên
  • Dữ liệu sai: Kiểm tra kết quả trả về của hệ thống khi gửi lên dữ liệu sai
  • Dữ liệu sai format: Kiểm tra kết quả trả về của hệ thống khi gửi lên dữ liệu sai định dạng
  • Tập dữ liệu theo điều kiện giới hạn: Dữ liệu test phù hợp với điều kiện giới hạn
  • Tập dữ liệu phân hoạch tương đương: Dữ liệu test đáp ứng các phân hoạch tương đương (equivalence partition)
  • Tập dữ liệu bảng quyết định (decision table): Dữ liệu test đáp ứng các chiến lược test của bảng quyết định
  • Tập dữ liệu test chuyển trạng thái: Test dữ liệu đáp ứng các chiến lược test khi chuyển trạng thấi
  • Dữ liệu test use case: Dữ liệu test đồng bộ với các use case của bạn.

Chú ý: Phụ thuộc vào ứng dụng phần mềm được test, bạn có thể sử dụng một vài hoặc tất cả các loại dữ liệu test trên.

Tự động tạo dữ liệu test

Để tạo nhiều tập hợp các dữ liệu khác nhau, bạn có thể sử dụng một dụng cụ tự động tạo dữ liệu test. Dưới đây là một vài ví dụ về các tool đó:

  1. Test Data Generator của GSApps có thể được sử dụng để tạo dữ liệu thông minh trong hầu hết các loại database hay là text file. Nó cho phép người dùng:

    • Hoàn thành test ứng dụng bằng cách thêm các dữ liệu có ý nghĩa vào database.

    • Tạo ra các dự liệu hướng-ngành công nghiêp (industry-specific data) có thể được dùng cho việc trình diễn

    • Bảo vệ dữ liệu cá nhân bằng cách tạo ra bản sao của dữ liệu đã có và ngụy trang những giá trị cần thiết đi

    • Tăng tốc quá trình phát triển bằng cách đơn giản hóa việc test và việc tạo mẫu

  2. Test Data Generator của DTM, là một tiện ích có thể chỉnh sửa hoàn toàn, dùng để tạo ra dữ liệu, các bảng (views, procedures …) cho mục đích test database (performance testing, QA testing, load testing or usability testing)

  3. Datatect của Banner Software, tạo ra các dữ liệu test thực tế khác nhau trong file ASCII hoặc trực tiếp tạo ra dữ liệu test cho RDBMS bao gồm Oracle, Sybase, SQL Server, và Informi.

Kết luận

Kết luận, các dữ liệu test được thiết kế tốt cho phép bạn đánh giá và sửa các lỗi trong các tính năng. Việc lựa chọn dữ liệu test cần được đánh giá lại sau mỗi quá trình của việc phát triển phần mềm nhiều bước. Vì vậy, hãy luôn theo dõi dữ liệu test nhé.

Bài dịch từ nguồn: http://www.guru99.com/software-testing-test-data.html