+1

[Bài dịch] Test data là gì? Hướng dẫn thiết kế test data

Trong phạm vi bài viết này, tôi sẽ giới thiệu tới các bạn tầm quan trọng của test data và một vài hướng dẫn giúp các bạn thực hiện test có sử dụng test data và thiết lập môi trường test thích hợp.

TEST DATA LÀ GÌ? VÌ SAO NÓ LẠI QUAN TRỌNG?

Mô tả một cách đơn giản thì test data là những dữ liệu được thu thập lại thành dạng tài liệu, được sử dụng một cách đơn giản để kiểm thử các chương trình phần mềm. Test data được chia ra làm hai loại, thứ nhất là positive test data sử dụng cho hệ thống khi phát sinh những kết quả mong đợi nói chung; và thứ hai là negative test data được sử dụng để test những điều kiện ngoài mong đợi, hiếm có hoặc cực kỳ đặc biệt. Nếu như test data được thiết kế không thỏa đáng, đầu vào test không bao quát được hết tất cả các kịch bản thì sẽ tác động rất lớn đến chất lượng của các phần mềm được test.

Test data có thể được tập hợp lại thông qua bất kỳ ứng dụng nào như Excel sheet, Word document hay Text file...Các dữ liệu được lưu trữ tại file Excel có thể được nhập vào bằng tay khi chạy test case hoặc cũng có thể nhập tự động thông qua các file xml, flat files, database...bằng cách sử dụng các công cụ hỗ trợ tự động. Khi sử dụng test data, bạn phải xác nhận chắc chắn các kết quả mong đợi và trạng thái của phần mềm cũng như những dữ liệu đầu vào không hợp lệ. Nó cũng được dùng để kiểm tra các phản ứng của ứng dụng trong các trường hợp nhập dữ liệu đầu vào bất thường, hiếm có, ngoại lệ hoặc những dữ liệu không mong đợi.

Trong trường hợp test domain, test data sẽ được tạo ra một cách bài bản, có hệ thống theo một kiểu khác; còn nếu test tự động với một số lượng lớn ngẫu nhiên thì không ổn. Test data sẽ được tạo ra bởi tester hoặc một chương trình hay một chức năng chuyên tạo test data để giúp đỡ tester. Test data có thể được ghi lại để tái sừ dụng cho ứng dụng đó.

Hạn chế: thực sự rất khó để tạo ra test data đầy đủ cho việc test. Số lượng các dữ liệu hiệu quả dùng để test được quyết định và cũng bị hạn chế bởi thời gian, chi phí và chất lượng.

TẠO TEST DATA:

what-is-test-data-in-software-testing.png

Việc tạo test data có thể được thực hiện bằng nhiều cách khác nhau, ví dụ như tạo thủ công hoặc sao chép production data đến môi trường test, hoặc sao chép test data từ hệ thống của khách hàng tới môi trường test, sinh ra test data từ việc sử dụng các công cụ tự động...Test data có thể được ghi lại và sử dụng trong việc test hồi quy. Đây luôn luôn là một thói quen tốt, xác nhận dữ liệu vẫn còn hiệu lực trước khi tái sử dụng cho các kiểu test khác. Về cơ bản, tester sẽ kiểm tra và cập nhật test data trước khi thực hiện bất kỳ một test case nào. Nếu test data thử nghiệm được sử dụng trong quá trình thực hiện các test case thì nó có thể vượt quá thời hạn dành cho việc test.

Vậy thì tạo test data như thế nào để test một cách hiệu quả nhất?

  1. Tạo test data tốt nhất: hãy cố gắng tạo dữ liệu tốt nhất trong khả năng có thể, không quá dài dòng nhưng đảm bảo nhận biết được bug cho nhiều loại ứng dụng khác nhau; với điều kiện không tốn nhiều chi phí và thời gian trong việc chuẩn bị test data và thực hiện test.

  2. Thiết lập những dữ liệu không hợp lệ: để kiểm tra sự đúng đắn của dữ liệu, cần phải tạo các dữ liệu có format sai. Những dữ liệu kiểu như vậy sẽ không được chấp nhận bởi hệ thống và sẽ xuất hiện các message báo lỗi. Hãy kiểm tra và đảm bảo hệ thống sẽ sinh ra các message báo lỗi.

  3. Thiết lập các dữ liệu điều kiện biên: tạo ra các dữ liệu cho trường hợp cận biên để tạo ra các data set sẽ giúp bao quát các trường hợp liên quan đến cận trên và cận dưới.

  4. Tạo bộ dữ liệu đúng: tạo bộ dữ liệu này nhằm đảm bảo rẳng hệ thống hoặc ứng dụng sẽ phản ứng giống như yêu cầu kỹ thuật, hoặc nhận biết dữ liệu đúng hay sai đã được lưu lại vào database hay file.

  5. Tạo bộ dữ liệu sai: tạo bộ dữ liệu này nhằm xác nhận phản ứng của hệ thống đối với các giá trị phủ định, các chuỗi đầu vào chứa ký tự hoặc số. Tạo bộ dữ liệu cho việc test perfomance, load dữ liệu, test áp lực và test hồi quy: một số lượng lớn dữ liệu là điều cần thiết cho những kiểu test như thế này. Để thực hiện test performance cho các ứng dụng liên quan đến database nhằm tìm kiếm, cập nhật dữ liệu từ/đến các bảng trong database.

  6. Dữ liệu trống hoặc dữ liệu mặc định: thực hiện các test case với dữ liệu trống hoặc dữ liệu mặc định nhằm mục đích kiểm tra xem các message báo lỗi có được hiển thị đúng hay không.

  7. Kiểm tra các dữ liệu hỏng/lỗi: fill bug sau khi sử dụng chức năng sửa chữa lỗi và trước khi chạy test case cho các dữ liệu riêng biệt nhằm đảm bảo dữ liệu không bị hỏng hay lỗi.

  8. Tạo ra các dữ liệu đầu vào có giá trị và sao chép nhân đôi: trong rất nhiều test case dành cho phần mềm, các tester đang test nhưng bị trùng thời điểm release. Trong hoàn cảnh này, nhiều tester sẽ có quyền được truy cập vào các test data chúng và mỗi tester sẽ tìm kiếm và vận hành test data chung theo yêu cầu riêng của họ. Nên cách tốt nhất để giữ các dữ liệu vẫn nguyên vẹn là mỗi người giữ một bản copy cá nhân trong các file word, excel hay hình ảnh. Sử dụng những ý tưởng như vậy có thể tạo ra những dữ liệu độc đáo mà có thể phục vụ nhiều môi tường test để chắc chắn bao quát hết các trường hợp cần test.

KẾT LUẬN:

Test data đóng vai trò rất quan trọng trong việc thực hiện test case và thiết kế các dữ liệu thích hợp là một trong những phần chính của việc test ứng dụng. Tạo ra các bộ dữ liệu hoàn chỉnh sẽ giúp tester tiết kiệm công sức, khiến việc test trở nên đơn giản hơn - họ sẽ không thể nói rằng họ không có dữ liệu hoàn chỉnh để test và tìm kiếm lỗi. Tester cũng có thể tạo riêng bộ test data của họ để test và sẽ thật lý tưởng vì nó tiết kiệm thời gian và chi phí. Tester nên tạo ra test data của riêng họ cùng với các data từ sản phẩm. Phần hướng dẫn trong bài này chỉ nhằm mục đích đảm bảo các test case có thể cover đủ các trường hợp.

Source: http://www.softwaretestingclass.com/what-is-test-data-and-guidelines-to-design-your-test-data/ Vietnamese translated by Nguyen Thu Mai. Please do not take out for any reasons.


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.