Kiểm thử cho một API như thế nào là đủ?

Chuyên đề thảo luận về kiểm thử hộp đen (Black-box Testing)
Forum rules
Chuyên đề này chỉ thảo luận về Black-box Testing.
Để có kết quả nhanh, các bạn nên search trước khi tạo chủ đề mới.
Post Reply
tvn
Admin
Posts: 4874
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Kiểm thử cho một API như thế nào là đủ?

Post by tvn » Mon 10 Jun, 2019 10:20 am

Chào cả nhà,

Em đang test một API với method GET.

Nó cần truyền vào một cái ID dạng string, em không biết những test case em làm dưới đây đã cover đủ các trường hợp cần để test một API chưa?

Nhờ các bác cho ý kiến.
Cám ơn.

1. valid ID
2. ID không tồn tại
3. chứa special characters, ví dụ như: @!#$^&*
4. sai data type: nhập kiểu integer hoặc kiểu boolean
5. empty string
6. null param (không truyền ID đó vào header)
7. thấy vì GET thì sang POST, DELETE, PUT



tvn
Admin
Posts: 4874
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Kiểm thử cho một API như thế nào là đủ?

Post by tvn » Mon 10 Jun, 2019 10:24 am

Sang Bùi giúp trả lời wrote:
Mình thấy bạn chỉ tập trung vào những case invalid, còn những case quan trọng khác như bên dưới thì sao?
  • - gởi request khi server không kết nối thì sẽ trả về bao nhiêu?
    - có cần permission để gởi API này không, nếu không đủ quyền thì trả về code bao nhiêu?
    - invalid input: max id length? id = -1
    - security: nhập một id không được phép xem thì có ra kết quả trả về không, vd như get private profile mình là id=1 thì khi sửa sang id=2 thì có xem được thông tin (private) của người khác không?, sql injection?
    - kiểm tra response code & content có đồng nhất hay bị lỗi chính tả không.
    - Code có thể hiện đúng bản chất của API (vd tạo mới thành công thì nên dùng 201 hay 200...)
    - Trong response code có chưa thông tin gì nhạy cảm về bảo mật? Ví dụ, thay vì hiện "Your password incorrect" thì nên hiện "Invalid username OR password"
    - Test data giữa API vs DB có đúng không
    - Phương thức GET có kết hợp page / size phân trang hoặc filter kết quả không?
Còn sâu hơn về security testing thì cũng cần kiểm tra kĩ:
  • - API trả về có content type là gì? có đúng là json không.
    - Có được gởi thông qua giao thức https
    - kết quả trả về có chứa X-Powered-By, Server, X-AspNet-Version... những thông tin nhạy cảm về server
    - có sử dụng id tăng dần hay ID dạng UUID, ID tăng dần sẽ có nhiều rủi ro nếu API bị lỗi Insecure Direct Object Reference
    - đã scan về các lỗi injection chưa, nhưng params như id=111 sẽ khá nhãy cảm vd hacker chèn vào id = '{sql injection payload}
    - kiểm tra input đầu vào chấp nhận những input dạng gì ngoài UTF-8, ví dụ thay vì nhập 123 họ nhập vào những data thuộc kiểu encode lạ thì có xử lý được không



Post Reply

Return to “Black box Testing - Kiểm thử hộp đen”