Test cases cho upload file

Bài viết này nhằm nêu ra các trường hợp thử nghiệm để tải lên tập tin trong các ứng dụng điện toán đám mây, ứng dụng thư như Gmail, ứng dụng chia sẻ tệp và tính năng chuyển tệp. Tải lên tệp thường có tính năng kích hoạt javascript hoặc gọi AJAX. Sau đây là một số kịch bản thử nghiệm và yêu cầu trước khi viết các trường hợp thử nghiệm.

Để kiểm tra hiệu quả mô-đun tải lên tệp cần có chức năng cụ thể được phát triển.

Một số yêu cầu trước khi tải lên tệp

Yêu cầu phải là một mô-đun tốt trong webapp

  1. Đặt kích thước tệp cần thiết cho webapp. Đảm bảo mô-đun tải lên tệp nhận ra giới hạn của kích thước tệp.
  2. Nếu bạn cho phép chỉ chấp nhận tập tin cụ thể thì danh sách trắng các loại tập tin đó.
  3. Tùy thuộc vào ngôn ngữ lập trình, đặt loại nội dung cho các tệp đang tải lên.
  4. Mô-đun tải tệp phải có chức năng nhận dạng tệp tin được tích hợp vào nó.
  5. Tính năng tải lên tệp nên xóa các ký tự đặc biệt bên trong trường văn bản nếu được cung cấp.
  6. Chấp nhận nội dung chữ và số trong tên tệp.
  7. Chấp nhận các ký tự và nội dung chữ và số trong tên.
  8. Không chấp nhận các loại tệp dẫn đến SQL injection.
  9. Bao gồm quét tệp máy chủ.
  10. Không chấp nhận các tệp rỗng có phần mở rộng dẫn tới việc chèn SQL.
  11. Hạn chế đánh máy tên tệp, thay vào đó cung cấp dialog box duyệt tệp để tải lên.
  12. Cho phép tải tệp lên và chỉ chuyển sang tài khoản đã đăng ký nếu cần.
  13. Đảm bảo kiểm tra phía máy chủ cho các giới hạn kích thước tệp.
  14. Tạo bản sao mới của cùng một tệp đã tải lên để tránh ghi đè.

Mặc dù một số tính năng có thể được thực hiện trong ứng dụng. Nhưng cũng nên suy nghĩ về vấn đề bảo mật trong khi tải lên tệp.

Một số tùy chọn bảo mật cần kiểm tra trong khi kiểm tra ứng dụng

Đây là một số tùy chọn cơ bản để kiểm tra khi nói đến kiểm tra bảo mật của mô-đun tải lên tệp tin.

  1. Tải lên các tệp được liệt kê danh sách đen và thử thực hiện.
  2. Tải lên tập tin thực thi và thực hiện trên máy chủ.
  3. Tải lên tệp HTML với tập lệnh XSS được nhúng vào đó.
  4. Tải lên tệp virus và đo lường phản hồi.
  5. Tải tệp lên liên tục mà không có thời gian chờ đợi nào (từ chối kiểm tra dịch vụ).
  6. Cố gắng tải lên tệp dưới dạng người dùng khách hoặc người dùng ẩn danh.

Tính năng Tải tệp thông thường trên các trang web tải lên tệp như Dropbox hoặc Google Drive.

Một số trường hợp thử nghiệm và kịch bản mà nên xem xét trong khi kiểm tra thủ công mô-đun

  1. Trình tải lên có giới hạn một tệp hoặc nhiều tệp?
  2. Có thể có loại kéo và thả tệp không?
  3. Người tải lên có cần duyệt đến tệp bằng cách sử dụng nút duyệt qua?
  4. Người tải lên có phụ thuộc vào bất kỳ plugin của bên thứ ba nào không?
  5. Tùy chỉnh của người tải lên đã được built hoặc sử dụng framework hiện tại?
  6. Upload file có hỗ trợ kéo và thả từ ứng dụng máy tính bảng?
  7. Upload file có bị ảnh hưởng bởi plugin bên thứ ba hoặc API nếu nó phụ thuộc vào các dịch vụ của họ không?
  8. Người tải lên có bất kỳ vấn đề bảo mật API bên thứ ba nào không?
  9. Người tải lên có bao gồm thanh tiến trình để hiển thị thời gian ước tính còn lại để tải tệp lên không?
  10. Trình tải lên tệp hiển thị kích thước tệp được tải lên không?
  11. Trình tải lên tệp có yêu cầu về kích thước tệp không?
  12. Các yêu cầu về kích thước tệp tối thiểu của trình tải lên tệp là gì?
  13. Kích thước tệp có bất kỳ giới hạn nào không?
  14. Có thể tải lên kích thước tệp ngoài những giới hạn của người tải lên?
  15. Kích thước tệp tối đa được chấp nhận trong trình tải lên là bao nhiêu?
  16. Upload file có chấp nhận tệp hình ảnh ở định dạng - jpg, gif, png?
  17. Upload file chấp nhận định dạng tài liệu - pdf, doc, txt, xlsx?
  18. Upload file có bất kỳ yêu cầu định dạng ứng dụng cụ thể nào khác không?
  19. Upload file có bất kỳ định dạng tệp cụ thể nào bị đưa vào danh sách đen vì lý do bảo mật không?
  20. Một số định dạng tệp được liệt kê bởi người tải lên là gì?
  21. Hệ thống có cho phép hủy tải lên không?
  22. Hệ thống có cho phép hủy nhiều nội dung tải lên hay không?
  23. Trình tải lên mở trình duyệt cho hộp thoại tập tin khi nhấp vào nút?
  24. Có hiển thị thông báo "thành công" sau khi tải lên không?
  25. Có hiển thị thông báo lỗi khi upload không thành công hay không?
  26. Upload hoạt động như thế nào nếu không có tệp nào được tải lên?
  27. Upload đáp ứng như thế nào nếu một số tệp trong multi upload thất bại?
  28. Hiển thị thông báo gì nếu các tập tin không thể ghi trên không gian máy chủ?
  29. Thông báo nào sẽ được hiển thị nếu tệp được chọn chỉ được tải lên một phần?
  30. Thông báo nào được hiển thị nếu tệp vượt quá kích thước tệp tối đa?

Test cases cho Upload button

UI:

  1. Kiểm tra xem trình duyệt ... là nút dấu chấm lửng bởi vì nó sẽ hiển thị dialog mở Tệp.
  2. Kiểm tra hộp thoại File Open Dialogs File Filters (Các loại File được hỗ trợ)
  3. Kiểm tra Init Capitalization của File Open Dialog nếu nó là một dạng phi tiêu chuẩn (không phải là hộp thoại ctrl).

Functional:

  1. Sau khi click vào nút Upload của cửa sổ lựa chọn thì tập tin chọn nên mở.
  2. Sau khi click nút Cancel của cửa sổ lựa chọn thì tập tin phải được đóng lại.
  3. Chọn bất kỳ tập tin để tải lên và ở giữa quá trình tải lên hủy bỏ tác vụ đó, Sau khi nhấp vào hủy bỏ bất kỳ tập tin nào và một phần tập tin nên được tải lên.
  4. Ở giữa quá trình tải lên, nhấp vào nút tải lên lại (Trong kịch bản tiêu chuẩn, nó nên vô hiệu hóa).
  5. Sau khi chọn tập tin nếu tập tin để kích thước lớn thì message thích hợp sẽ được hiển thị.
  6. Kiểm tra loại tệp sẽ tải lên sau khi lựa chọn tệp.
  7. Kiểm tra case không chọn bất kỳ tập tin và nhập đường dẫn như tập tin (** c: /Test.doc** ).
  8. Một số thời gian nhập mã chéo (cross script) sau đó hiển thị lỗi phía máy chủ.
  9. Giả sử định dạng tệp tin tải lên giống như (Resume format) sau đó đổi tên tệp tin excel dưới dạng [ Resume.exl.txt ] trong trường hợp này tệp tin tải lên phù hợp hiển thị nhưng tập tin không được tải lên.
  10. Bắt đầu tải tệp tin và ngắt kết nối LAN.
  11. Kiểm tra thời gian chờ máy chủ (Thường có một timeout để tải lên tập tin)
  12. Kiểm tra tải lên từ một đĩa mà không có không gian trống (thường là dữ liệu sẽ được lưu trữ tạm thời để rolling back)
  13. Kiểm tra tải lên cho Folder (nó Không phải là trường hợp)
  14. Kiểm tra trường hợp tải lên nhiều tập tin.
  15. Kiểm tra chất lượng hình ảnh nếu tải lên hình ảnh đặc biệt dành (không thể xảy ra sự pha trộn hình ảnh - hãy tưởng tượng tải lên bản sao kiểm tra được quét cho dịch vụ giám đốc thanh toán)
  16. Kiểm tra tải lên tệp nén / Readonly / Đã lưu trữ.
  17. Bắt đầu tải lên và ngay lập tức dừng máy chủ Web (IIS, Apache).
  18. Kiểm tra cấu trúc thư mục trên máy chủ.
  19. Kiểm tra dữ liệu kiểu LOBS (Large Object) trong trường hợp các tập tin lưu trong DB.
  20. Test trường hợp tải lên từ một mạng (mapped drive)
  21. Test trường hợp cùng một tập tin tải lên nhiều lần tức là phụ thuộc vào chức năng một số máy chủ có thể đổi tên nó để xFilie_1, một số chỉ có thể thêm một phiên bản mới hơn ví dụ như Sharepoint. Một số đơn giản có thể từ chối.

Đây là một số trường hợp thử nghiệm trong khi kiểm tra tính năng tải lên tệp của webapp. Rất mong được mọi người bổ sung thêm hoặc đưa ra ý tưởng cải thiện để bài viết được đầy đủ và hiệu quả hơn nữa.

Nguồn dịch

https://onecore.net/sample-test-cases-for-file-upload.htm

http://www.qualitytesting.info/forum/topics/test-cases-for-upload-button


All Rights Reserved