Kịch bản kiểm thử trang Login

Bài viết được sự cho phép của tác giả Vân Anh

Phải khẳng định rằng nhu cầu tuyển dụng của các công ty liên quan đến lĩnh vực CNTT hiện nay rất lớn, bất kể là thời điểm nào trong năm, nhưng không phải vì thế mà các tiêu chí tuyển dụng được giảm đi mà ngược lại thì là ngày càng tăng dần độ “khó”. Khó này không phải là khó thông thường đâu nhé, mà là khó gì đó mà mình cũng không giải thích được. Nhưng cơ bản thì những cái này chủ yếu là để họ có thể đánh giá được năng lực thực tế của bạn đến đâu, có đúng như trong CV bạn đã quảng cáo hay chỉ là chém gió cho sang mồm thôi! :v

  Login form tưởng dễ mà ko dễ
  [Update] Thêm Firebase vào Flutter và login với Google

Các nhà tuyển dụng họ tinh ý lắm, chỉ cần hỏi một vài bài toán thực tế là có thể biết được năng lực và tiềm lực của bạn ngay =)) (Nghe tinh thông ghê, nhưng mà với một vài ứng viên tinh quái có thể là họ vẫn qua mặt được các vị kia khi phỏng vấn đấy, nên bạn nào mà tự tin thì có thể chém tè le nhé, haha – e hèm, nhưng quan trọng phỏng vấn qua rồi bạn có qua được tiếp thời gian thử việc và làm được việc sau này hay không mới là điều quan trọng hơn cả! :D)

Với vị trí kiểm thử, đã bao giờ khi đi phỏng vấn, các nhà tuyển dụng đưa cho bạn một bài toán thực tế nào đó và yêu cầu bạn đưa ra các trường hợp kiểm thử cho bài toán đó chưa? Kiểu ra đề này hiện nay không còn là hiếm nữa, vì mình đã gặp nhiều chỗ làm vây rồi mà! 😀

Hôm nay sẽ thử tự ‘test’ bản thân với trường hợp vô cùng quen thuộc này mà theo như ý kiến của hội chị em bọn mình, thì bạn nhận được bài test với yêu cầu chỉ như này “Hãy đưa ra những kịch bản để test một trang login” mà không nói thêm gì, lúc này bạn trả lời thế nào thì những câu trả lời ấy cũng đều có thể đúng hoặc có thể sai =)) Nghĩ kỹ xem có phải thế không nhé! Hihi

Theo mình, lúc này mình chỉ nên đưa ra những tiêu chí mà bạn nghĩ là có thể kiểm tra cho chức năng này, không nên tự mình đưa ra những áp đặt về kết quả mong muốn cho những trường hợp cụ thể, nếu muốn diễn đạt thì cho nó vào phần ví dụ thôi, nhưng mà cần ngắn gọn vì thời gian cho bài test này đều có giới hạn thường sẽ từ 15 đến 30 phút. Quan trọng là cần phải đưa ra được những case nổi bật và quan trọng, kiểu như là khi test cái chức năng này thì kiểu gì cũng phải kiểm tra những tiêu chí đó ấy.

Kịch bản kiểm thử trang Login

Và dưới đây là một số trường hợp mà mình nghĩ là những cái cơ bản nhất sẽ kiểm tra cho chức năng login, ngoài việc kiểm tra giao diện đúng như bản thiết kế thì ta cũng cần:

1. Kiểm tra đảm bảo rằng màn hình login này có các trường để nhập username và password, có nút nhấn đăng nhập và lựa chọn cho trường hợp người dùng quên mật khẩu.

Trường hợp người dùng chưa đăng ký tài khoản, cũng thường có thêm lựa chọn để người dùng có thể lựa chọn đăng ký tài khoản mới ở trang login này, nên lúc này cũng sẽ cần kiểm tra thêm.

2. Kiểm tra để đảm bảo có thể đăng nhập được với username và password hợp lệ.

3. Kiểm tra đảm bảo sẽ không thể đăng nhập hệ thống thành công với username hoặc password không hợp lệ, nói là không hợp lệ thì nó chung chung lắm, nhưng ngoài trường hợp đúng đăng nhập được ra thì còn lại là không hợp lệ nha! 😀 – Ví dụ tên đăng nhập không tồn tại này, nhập sai một ký tự trong mật khẩu, tên đăng nhập này =]]

3.1. Kiểm tra xem với tên đăng nhập đúng nhưng ký tự được viết hoa thường lẫn lộn + mật khẩu đúng thì có đăng nhập được không?

3.2. Nhập tên đăng nhập đúng nhưng thử thêm một vài dấu cách phía trước và phía sau tên đăng nhập + mật khẩu đúng thì hệ thống xử lý thế nào?

4. Kiểm tra việc hiển thị dòng tin nhắn thông báo cho người dùng trong trường hợp username hoặc password không được nhập thông tin đầy đủ (trường hợp để trống đó).

5. Kiểm tra trường hợp khi mà người dùng nhập quá số lượng ký tự cho phép nhập vào ở các trường username và password (hiện nay thì thường ở front end sẽ dùng js để chặn không cho nhập quá một số lượng ký tự nào đó, nhưng cũng cần check nhỡ đâu thằng dev quên, hoặc mình hack được bằng cách sửa thông tin ở cái request gửi đi đó thì sao :v)

6. Kiểm tra khi nhập password vào thì những thông tin nhập vào đó cần được mã hóa khi hiển thị, có thể là các dấu chấm chấm (…….), hoặc sao sao (*****) gì đó. Có thể check thêm trường hợp có cái nút, người dùng có thể tùy chọn cho nhìn hoặc không cho nhìn thấy password – trường hợp này tùy yêu cầu cụ thể hệ thống. Mình cũng gặp nhiều trang có để option này.

7. Kiểm tra trường hợp nhập sai username hoặc password quá nhiều lần, thì hệ thống sẽ xử lý như thế nào? Sau một số lần không thành công liên tiếp nào đó thì có thể là khóa tạm mật khẩu trong một khoảng thời gian nào đó, hoặc hiển thị capcha…

8. Kiểm tra nội dung thông báo khi người dùng nhập sai username hoặc password. Theo khuyến cáo thì khi người dùng nhập sai hoặc username hoặc password thì thông báo hiển thị ra sẽ có nội dung chung chung kiểu “Bạn đã nhập sai username hoặc password, vui lòng kiểm tra lại”, không nên đưa ra nội dung chính xác kiểu như “Bạn đã nhập sai username” hay “Bạn đã nhập sai password”, điều này tưởng chừng như sẽ rất hữu ích cho người dùng khi họ biết rõ họ nhập sai cái gì, nhưng đây cũng chính là cơ hội để các hacker có thể lần ra được các thông tin truy cập của bạn bằng cách vét cạn, hay suy đoán nhanh hơn.

9. Mặc dù là hiện nay có nhiều tiện ích mở rộng của trình duyệt hoặc các công cụ giúp chúng ta ghi nhớ mật khẩu, nhưng nếu như hệ thống của chúng ta có cung cấp tính năng này thì ta cũng cần kiểm tra xem tính năng này có hoạt động đảm bảo hay không.

10. Rồi kiểm tra khả năng copy paste mật khẩu ở trường mà nó đã được mã hóa. Tùy yêu cầu, nhưng mình nghĩ là không nên cho copy paste thông tin này. :v

11. Bạn cũng có thể kiểm tra thêm thời gian time out của 1 session login hoạt động như thế nào.

12. Thêm trường hợp đó là, sau khi đã login thành công vào hệ thống, bạn nhấn nút Back trên thanh địa chỉ của trình duyệt, sau đó lại nhấn để quay trở lại trang vừa login thì có bị logout, hay mất session hay không? Cái này mình nghĩ là không nên để out ra. :v Nhiều khi nhỡ tay tí mà phải làm lại thì bực lắm. Kaka

13. Hiện nay để tránh trường hợp auto login bằng tool, thì ở các trang login thường có thêm trường nhập mã Capcha, thế nên mình cũng cần phải check hoạt động của trường capcha này, nếu nhập sai có đăng nhập được không, có chạy đoạn mã mới không, khi nhập sai có reset lại thông tin username, password mình đã nhập không…v…v….

14. Sau cùng là kiểm tra bảo mật web với tấn công SQL Injection, lỗi XSS trên trang login này. SQL Injection và XSS là gì thì các bạn tự tìm hiểu qua Google thêm nhé! :v

Đó, cơ bản là có các ý lớn chính trên đây thôi, còn chi tiết hay cụ thể nữa thì còn tùy thuộc vào yêu cầu cụ thể của từng bài toán mà mình sẽ cần phải bổ sung, và yên tâm là tài liệu đặc tả yêu cầu cho chức năng này nó sẽ đưa chi tiết cho bạn. Hehe.

Theo bạn thì những cái trên kia có còn cần bổ sung hay chỉnh sửa gì nữa không? Nếu có ý kiến khác hoặc đóng góp vui lòng để lại bình luận phía dưới cho mình nhé! 😀

Bài viết gốc được đăng tải tại vananhtooo.wordpress.com

Có thể bạn quan tâm:

Xem thêm Việc làm Developer hấp dẫn trên TopDev