Chuẩn bị testdata trước khi thực hiện các testcase

8 min read

Testdata là gì?
Nếu bạn đang viết testcase khi đó bạn cần phải input dữ liệu cho từng loại testcase. Bạn cần cung cấp các dữ liệu đầu vào này tại thời điểm thực hiện các testcase hoặc chương trình của bạn có thể lấy yêu cầu nhập dữ liệu từ chỗ data được định nghĩa sẵn. Testdata là loại data được documented và nó được sử dụng rất cơ bản để test một chương trình phần mềm. Testdata được chia làm hai loại chung. Một loại là những data Positive ( dữ liệu đúng, normal)mà nó được input vào hệ thống để kiểm thử và output ra những kết quả như mong muốn. Loại thứ hai là data Negative ( dữ liệu không phù hợp) được sử dụng để test các điều kiện không xử lý, không mong muốn, ngoại lệ hoặc những điều kiện input cực đại… Nếu những loại test data này thiết kế không đầy đủ thì khi đó công việc test sẽ không cover toàn bộ kịch bản test có thể xảy ra, nó sẽ làm ảnh hưởng đến chất lượng sản phẩm của bạn. Testdata có thể được ghi lại bất kỳ dạng nào- excel, world, text hoặc file nào đó. Data test được lưu trong sheet Excel có thể được nhập bằng tay khi thực thi testcase hoặc có thể kiểm tra tự động sử dụng automation tool từ file (XML, Flat File, Database…). Sử dụng testdata, chúng ta có thể xác nhận các kết quả mong muốn và kiểm tra hành vi của hệ thống dưới các input không hợp lệ. Đó cũng là việc kiểm tra hệ thống của chúng ta có khả năng respond với các điều kiện bất thường hay không.

Chuẩn bị dữ liệu test thích hợp như là một phần của việc setup môi trường.

Nói chung bạn có gọi nó là chuẩn bị trước kiểm thử. Trong các thử nghiệm phần mềm và phần cứng thì tập hợp các yêu cầu được sử dụng như một định nghĩa trước các giá trị dữ liệu. Nếu bạn không có phương pháp tiếp cận cho việc xây dựng hệ thống testdata trong khi viết và thực hiện testcase thì khi đó có nhiều khả năng bạn sẽ bị miss testcase. Lúc đó bạn không thể biện minh cho bất cứ bug nào và nói rằng do testdata không có sẵn hoặc không đầy đủ. Bạn có thể tạo ra các testdata theo như testcase yêu cầu mà không dựa trên dữ liệu test được tạo ra bởi các tester khác hoặc một testdata của một sản phẩm tiêu chuẩn nào đó, testdata có thể không cần phải update định kỳ. Luôn luôn tạo ra một tập hợp các testdata được làm mới theo các testcase cần. Bạn hãy tích lũy các testdata qua mỗi sản phẩm test. Bằng cách này bạn có thể xây dựng bộ dữ liệu toàn diện.

Kiểm tra dữ liệu không bị hỏng trước khi test?
Trước hết thực hiện bất kỳ testcase nào trên dữ liệu có sẵn phải đảm bảo rằng dữ liệu đó không bị hỏng và ứng dụng có thể đọc được các nguồn dữ liệu. Cách tốt nhất để giữ cho bộ dữ liệu đầu vào có giá trị của bạn còn nguyên vẹn là để giữ các bản sao cá nhân của cùng một dữ liệu. Có thể là bất cứ format nào giống như các kiểu nhập vào file word, excel, hoặc file photo.

*Làm sao để chuẩn bị được dữ liệu thật?
*

Thực tế đối với công việc test đang chỉ sử dụng một số dữ liệu giả lập hoặc đôi khi là các thao tác mới chỉ đứng ở quan điểm cá nhân một tester. Nên việc chuẩn bị các dữ liệu test phù hợp với sản phẩm đang làm như dữ liệu thật, dữ liệu lớn thì quả là khó khăn. Tuy nhiên cách tốt nhất để tránh lack các trường hợp mức tối thiểu thì bạn có thể nhờ dev giả lập các dữ liệu theo quan điểm của bạn hoặc có thể hỏi Khách hàng của bạn để giúp đỡ bạn thu thập dữ liệu thật.

Các loại testdata bạn cần nghĩ tới khi thực hiện testcase của bạn
① No data: Chạy testcase của bạn với dữ liệu trống hoặc default data thì bạn sẽ nhìn thấy các error message được hiển thị đúng. Tôi đã từng gặp lỗi này khi nhập data trống vào form login mà vẫn login thành công có thể do hệ thống lưu cookie lúc sign out không bị xóa. Vì vậy luôn luôn phải kiểm tra giá trị NULL nhé.

② Valid data: Tạo tập data hữu hiệu để kiểm tra ứng dụng có hoạt động đúng theo yêu cầu và các dữ liệu hữu hiệu đó có được lưu chính xác vào database hoặc file không. Ví dụ khi thực hành kiểm thử ô tô. Bạn thực sự chỉ đảm bảo được rằng phần mềm thực hiện được các chức năng tối thiểu. Bạn đừng cố thúc đẩy những khả năng của nó. Bạn không biết rằng bạn có thể làm hỏng nó hoặc có thể gặp bất cứ rủi ro nào nếu bạn cố test những giá trị bất thường. Bạn xem xét nó với một kid gloves, áp dụng những testcase với những testdata đầu vào đơn giản nhất và rõ ràng nhất.

③ Invalid data: chuẩn bị môt tập các invalid data để kiểm tra ứng dụng thích hợp với các giá trị bất thường… Tiếp tục với ví dụ kiểm thử vận hành ô tô trên. Sau khi bạn đã kiểm tra các giá trị cơ bản, thì bạn hãy chuẩn bị một tập hợp các testdata với các trường hợp lắt léo bí ẩn để tìm ra lỗi như lốp xe có kích cỡ không đúng, hoặc những cái phanh không tương xứng, hoặc là bộ máy quá lớn..v..v..

④ Các loại dữ liệu định dạng không có quy tắc Tạo ra một tập dữ liệu có định dạng dữ liệu bất quy tắc. Hệ thống sẽ không accept dữ liệu. cũng có thể check mesage lỗi hiển thị ra. Ví dụ như sai định dạng ngày tháng, định dạng phone number, định dạng email, v..v.

⑤ Các điều kiện biên: Dữ liệu đc ràng buộc bởi ngoài biên. case boundary xác định và chuẩn bị tập dữ liệu sẽ cover điều kiện bên cận trên và cận dưới. Testdata của bạn phải chứa các giá trị dưới đây: Giá trị nhỏ nhất. Giá trị gần kề lớn hơn giá trị nhỏ nhất. Giá trị bình thường. Giá trị gần kề bé hơn giá trị lớn nhất. Giá trị lớn nhất.

⑥ Dữ liệu cho test performance, load test. Chuẩn bị dữ liệu cho loại test này có lẽ là tốn công nhất. Có thể phải sử dụng automation tool hoặc manual để có thể tạo ra được các data phù hợp với testcase. Khi kiểm thử load test cho Website A: cho 100user login cùng lúc, sau đó thử 200user, 500user, 1000user,… và xem kết quả xử lý của website: thời gian đáp ứng bao nhiêu ms, mỗi user thực hiện một chức năng khác nhau => có chức năng nào không đáp ứng được hay không? có xảy ra lỗi gì hay không? Các loại testdata ở đây: Có thể là số lượng user, số lượng file import, số lượng data, số chữ số…

Chú ý

Luôn chắc chắn ràng dữ liệu test không bị hỏng. Có thể đảm bảo dể các kết quả xuất ra không bị sai và có thể bị miss các lỗi quan trọng. Với dữ liệu lớn khi bị mã hóa thì chắc chắn phải kiểm tra sau khi được giải mã dữ liệu đó có được hiển thị đúng không. Nếu không sẽ ảnh hưởng đến kết quả test.

Testdata phải đc update dựa vào quy tắc cơ bản. Cũng có thể đưa những hình ảnh của việc output cơ bản.

Testdata có thể đc tạo trước khi thực hiện testcase để tiết kiệm thời gian và keep deadline Một số testdata có thể tạo trước và sử dụng cho nhiều dự án có đặc thù giống nhau như số lượng user login.. 4.Có một cách hay là sử dụng automation tool để create một khối lượng testdata lớn thay vì mát thời gian tạo bằng tay Sử dụng tool tạo file với dung lượng lớn, tạo nhiều file, nhiều folder. File có nhiều bản ghi… ( Có thể nhờ dev giúp đỡ create tool) 5.testdata cũng phải là các input invalid để test các kịch bản phủ định, bao gồm các tổ hợp điều kiện với format support và unsupport trong testdata để đảm bảo rằng phạm vi test là lớn nhất
Kết luận
Chuẩn bị testdata là một phần công việc trong việc setup môi trường test. Do vậy không thể nói rằng lỗi xảy ra do chưa chuẩn bị dữ liệu test. Tester có thể tạo riêng cho mình dữ liệu test bên cạnh những dữ liệu chuẩn khác. Testdata là một phần quan trọng trong việc thực thi testcases và để thiết kế những data thích hợp là phần chính của việc chuẩn bị môi trường test. Đối với tester, hoàn thành tập hợp testdata trước khi test sẽ thật dễ dàng khi bước vào giai đoạn test. Do vậy không thể nói rằng lỗi xảy ra do chưa chuẩn bị dữ liệu test. Tester có thể tạo riêng cho mình dữ liệu test bên cạnh những dữ liệu chuẩn khác. Với những tip ở trên hy vọng sẽ giúp ích cho các bạn trong công việc test.

Avatar photo

Clean Code: Nguyên tắc viết hàm trong lập trình…

Trong quá trình phát triển phần mềm, việc viết mã nguồn dễ đọc, dễ hiểu là yếu tố then chốt để đảm bảo code...
Avatar photo Dat Tran Thanh
3 min read

Leave a Reply

Your email address will not be published. Required fields are marked *