Get in touch
or send us a question?
CONTACT

Checklist kiểm thử ứng dụng web

Trong khi kiểm thử các ứng dụng web, tester nên xem xét các template được đề cập dưới đây, vì hầu như có thể áp dụng cho tất cả các loại ứng dụng web tùy thuộc vào yêu cầu nghiệp vụ.

Check list cho ứng dụng web bao gồm:

  • Usability Testing
  • Functional Testing
  • Compatibility Testing
  • Database Testing
  • Security Testing
  • Performance Testing

I. Usability Testing

1. Định nghĩa Usability Testing (Kiểm thử tính khả dụng)

  • Là kiểm tra tính thân thiện với người dùng.
  • Là kiểm tra tính dễ sử dụng với người dùng.
  • Về cơ bản, làm cho hệ thống có tính dễ sử dụng.

2. Một số kịch bản kiểm tra tính khả dụng

  • Nội dung trang web chính xác mà không có lỗi chính tả hoặc ngữ pháp.
  • Tất cả các phông chữ theo đúng yêu cầu.
  • Tất cả các văn bản, text được căn chỉnh chính xác.
  • Tất cả các thông báo lỗi phải chính xác mà không có bất kỳ lỗi chính tả hoặc ngữ pháp nào. Và thông báo lỗi phải phù hợp với từng field (trường), label.
  • Mỗi field nên có tool tip.
  • Tất cả các field phải được căn chỉnh chính xác.
  • Tất cả các button phải đúng đính dạng và kích thước.
  • Các trang khác đều liên kết với home page.
  • Các trường không khả dụng nên để grayout (màu xám).
  • Kiểm tra khi link và image bị lỗi.
  • Cần hiển thị message thông báo khi có hoạt động update, delete.
  • Kiểm tra hiển thị khi ở các độ phân giải khác nhau (640 x 480, 600×800,…)
  • Kiểm tra để không xảy ra sự cố khi end user sử dụng hệ thống.
  • Kiểm tra để các tab hoạt động đúng.
  • Scroll bar hiển thị theo đúng yêu cầu.
  • Nếu có thông báo lỗi được submit, thì cần có cả thông tin của người gửi.
  • Mỗi trang web cần hiển thị title page.
  • Tất cả các trường (textbox, dropdown, radio button, v.v.) và các button có thể sử dụng phím tắt để thao tác và người dùng sẽ có thể thực hiện tất cả các thao tác bằng cách sử dụng bàn phím.
  • Kiểm tra xem dữ liệu dropdown có bị cắt bớt do kích thước trường không và cũng kiểm tra xem dữ liệu có bị hardcode không hoặc được quản lý thông qua admin.

II. Functional Testing

1. Định nghĩa Functional Testing (Kiểm thử chức năng)

  • Kiểm tra các tính năng và hành vi hoạt động của sản phẩm để đảm bảo đúng với thông số kỹ thuật được mô tả.
  • Là loại kiểm thử bỏ qua cấu trúc bên trong của hệ thống, mà chỉ tập trung vào giá trị input và output của hệ thống

2. Một số kịch bản kiểm thử chức năng

  • Kiểm tra tất cả các trường bắt buộc.
  • Tại các trường bắt buộc đều hiển thị dấu hoa thị (*).
  • Đối với các trường không phải là bắt buộc: không hiển thị thông báo lỗi.
  • Các trường date time, nếu input năm nhuận thì vẫn tính toán đúng.
  • Các trường số: không chấp nhận ký tự a,b,c…. và hiển thị message báo lỗi thích hợp.
  • Kiểm tra số âm nếu là trường số.
  • Kiểm tra xem trường hợp chia cho 0 thì xử lý tính toán có đúng không.
  • Kiểm tra max length của mỗi trường để đảm bảo dữ liệu không bị cắt ngắn.
  • Kiểm tra các popup message sẽ hiển thị nếu dữ liệu của trường đạt kích thước tối đa, nhỏ hơn tối thiểu.
  • Khi thực hiện update hoặc delete thì cần có message thông báo xác nhận.
  • Các trường tiền tệ hiển thị đúng định dạng.
  • Đối với các trường input: kiểm tra cả ký tự đặc biệt.
  • Kiểm tra chức năng khi timeout.
  • Kiểm tra chức năng sắp xếp.
  • Kiểm tra chức năng của các nút có sẵn.
  • Kiểm tra Chính sách bảo mật & Câu hỏi thường gặp có nội dung rõ ràng và nên có sẵn cho người dùng.
  • Kiểm tra xem có bất kỳ chức năng nào bị lỗi thì người dùng sẽ được chuyển hướng đến trang lỗi tương ứng.
  • Kiểm tra tất cả các tài liệu tải lên cần mở được và đúng.
  • Kiểm tra người dùng có thể tải xuống các file đã tải lên.
  • Kiểm tra chức năng email của hệ thống.
  • Kiểm tra các tập lệnh Java sẽ hoạt động tốt ở các trình duyệt khác nhau (IE, Firefox, Chrome, safari và Opera).
  • Kiểm tra để xem có điều gì xảy ra nếu người dùng xóa cookie ở trong trang web.
  • Kiểm tra để xem có điều gì xảy ra nếu người dùng xóa cookie sau khi truy cập trang web.
  • Kiểm tra tất cả dữ liệu bên trong combo/ list box có được sắp xếp theo thứ tự thời gian.

III. Compatibility Testing

1. Định nghĩa Compatibility Testing (Kiểm thử tương thích)

  • Là loại kiểm thử để xác định xem phần mềm có tương thích với các yếu tố khác của hệ thống hay không, ví dụ: Trình duyệt, Hệ điều hành hoặc phần cứng.

2. Một số kịch bản kiểm thử tương thích

  • Đảm bảo website vẫn hoạt động, hiển thị đúng trên các trình duyệt khác nhau (IE, Firefox, Chrome, Safari và Opera).
  • Phiên bản HTML đang sử dụng có tương thích với các phiên bản trình duyệt phù hợp không?
  • Hình ảnh hiển thị có chính xác trong các trình duyệt khác nhau không?
  • Các phông chữ có thể sử dụng trong các trình duyệt khác nhau không?
  • Mã javascript có thể sử dụng được trong các trình duyệt khác nhau không?
  • Ảnh GIF có hoạt hình trên các trình duyệt khác nhau không?

IV. Database Testing

1. Định nghĩa Database Testing (Kiểm thử cơ sở dữ liệu)

  • Trong database testing các bản ghi được kiểm thử cần điền đầy đủ thông tin qua các ứng dụng. Dữ liệu được hiển thị trong ứng dụng phải khớp với dữ liệu được lưu trong database.

2. Một số kịch bản kiểm thử cơ sở dữ liệu

  • Xác minh tên database: Tên database phải khớp với thông số kỹ thuật.
  • Xác minh table, column, column type và giá trị default: đúng với thông số kỹ thuật.
  • Xác minh xem cột có cho phép null hay không?
  • Xác nhận khóa chính và khóa ngoại của mỗi bảng.
  • Xác nhận các store Procedure.
  • Kiểm tra xem các store Procedure đã được cài đặt hay chưa?
  • Xác nhận tên store Procedure.
  • Xác nhận tên parameter, loại và số lượng parameter.
  • Kiểm tra các parameter nếu là bắt buộc hay không?
  • Kiểm tra các store Procedure bằng cách xóa một parameter.
  • Kiểm tra khi đầu ra bằng 0, các bản ghi bằng 0 có bị ảnh hưởng không?
  • Kiểm tra store procedure bằng cách viết các truy vấn SQL đơn giản.
  • Kiểm tra xem store procedure có trả về các giá trị không?
  • Kiểm tra store procedure với dữ liệu mẫu.
  • Xác nhận hành vi của mỗi flag trong bảng.
  • Xác minh dữ liệu được lưu chính xác vào cơ sở dữ liệu sau mỗi lần submit.
  • Xác minh dữ liệu nếu các hoạt động DML (update, delete, insert) được thực hiện.
  • Kiểm tra độ dài của mọi trường: Độ dài trường ở back end và front end phải giống nhau.
  • Xác nhận tên cơ sở dữ liệu của QA, UAT và production. Các tên nên là duy nhất.
  • Xác nhận dữ liệu được mã hóa trong cơ sở dữ liệu.
  • Xác nhận kích thước cơ sở dữ liệu. Cũng kiểm tra thời gian phản hồi của từng truy vấn được thực hiện.
  • Xác nhận dữ liệu được hiển thị ở front end và back end giống nhau.
  • Xác minh tính hợp lệ của dữ liệu bằng cách chèn dữ liệu không hợp lệ vào cơ sở dữ liệu.
  • Xác minh các Trigger.

V. Security Testing?

1. Định nghĩa Security Testing (Kiểm thử bảo mật)

  • Là loại kiểm thử để để xác định bất kỳ sai sót và lỗ hổng từ quan điểm bảo mật.

2. Một số kịch bản kiểm thử bảo mật

  1. Trang web chứa dữ liệu quan trọng như mật khẩu, số thẻ tín dụng, câu trả lời bí mật cho câu hỏi bảo mật, v.v. nên được gửi qua HTTPS (SSL).
  2. Thông tin quan trọng như mật khẩu, số thẻ tín dụng, vv sẽ hiển thị ở định dạng được mã hóa.
  3. Rule liên quan tới mật khẩu được thực hiện trên tất cả các trang xác thực như đăng ký, quên mật khẩu, thay đổi mật khẩu.
  4. Nếu mật khẩu bị thay đổi, người dùng sẽ không thể đăng nhập bằng mật khẩu cũ.
  5. Các thông báo lỗi sẽ không hiển thị bất kỳ thông tin quan trọng.
  6. Nếu người dùng đã đăng xuất khỏi hệ thống hay phiên người dùng đã hết hạn, người dùng sẽ không thể thao tác trong hệ thống.
  7. Xác minh để truy cập trực tiếp các trang web được bảo mật và không bảo mật mà không cần đăng nhập.
  8. Xác minh tùy chọn “View Source code” bị vô hiệu hóa và không hiển thị cho người dùng.
  9. Tài khoản người dùng bị khóa nếu người dùng nhập sai mật khẩu nhiều lần.
  10. Xác nhận cookie không nên lưu trữ mật khẩu.
  11. Xác minh xem, bất kỳ chức năng nào không hoạt động, hệ thống sẽ không hiển thị ở bất kỳ ứng dụng, máy chủ hoặc thông tin cơ sở dữ liệu nào. Thay vào đó, nó sẽ hiển thị trang lỗi tùy chỉnh.
  12. Xác minh SQL injection
  13. Xác minh quyền theo role user. Ví dụ: User thông thường không thể truy cập trang quản trị.
  14. Xác minh các hoạt động quan trọng cần được ghi trong file log và thông tin đó phải truy xuất được.
  15. Xác minh session value đã được mã hóa trong thanh địa chỉ.
  16. Xác nhận thông tin cookie được lưu trữ đã được mã hóa.
  17. Xác minh ứng dụng khi thực hiện tấn công Brute Force.

VI. Performance Testing

1. Định nghĩa Performance Testing (Kiểm thử hiệu năng)

  • Là loại kiểm thử được thực hiện để đánh giá sự tuân thủ của một hệ thống hoặc một phần của hệ thống với các yêu cầu hiệu suất được chỉ định.

2. Kịch bản test chung

  • Để xác định hiệu suất, tính ổn định và khả năng mở rộng của ứng dụng trong các điều kiện tải khác nhau.
  • Để xác định xem kiến trúc hiện tại có thể hỗ trợ ứng dụng khi lượng người dùng cao nhất hay không.
  • Để xác định cấu hình cho mức hiệu suất tốt nhất.
  • Để xác định xem version mới của phần mềm có ảnh hưởng xấu đến thời gian phản hồi hay không.
  • Để đánh giá xem sản phẩm và / hoặc phần cứng có thể xử lý khối lượng tải dự kiến hay không.

3. Làm thế nào thực hiện performance testing? Bằng cách kiểm tra thủ công hay tự động hóa

Thực tế không thể thực hiện performance testing theo cách thủ công vì một số nhược điểm như:

  • Lượng resource sẽ được yêu cầu.
  • Thao tác đồng thời là không thể.
  • Không dễ để thực hiện các nhiệm vụ lặp đi lặp lại.

Do đó để khắc phục các vấn đề trên, chúng ta nên sử dụng công cụ Kiểm tra hiệu suất. Dưới đây là danh sách một số công cụ kiểm tra phổ biến.

  • Apache JMeter
  • Load Runner
  • Borland Silk Performer.
  • Rational Performance Tester
  • WAPT
  • NEO LOAD

Link reference: https://www.guru99.com/complete-web-application-testing-checklist.html