Saturday, July 27, 2013

Ứng dụng LinkChecker trong smoke testing

Hầu hết mọi lập trình viên đều biết đến khái niệm software testing (kiểm thử phần mềm). Có thể nói testing gồm 2 phần chính là manual testing và automation testing. Tất cả chúng ta đều rất quen thuộc với khái niệm manual testing, và nhiều người trong số chúng ta đều muốn làm automation testing thay vì manual. Thế nhưng, việc bắt đầu một thế giới gọi là automation testing sẽ là thế nào cho phù hợp với một mô hình nhỏ, nhất là các startup vốn đang tăng nhanh trong thời gian gần đây?

Bài viết này hi vọng sẽ giúp được phần nào cho câu hỏi: Loại automation nào dễ triển khai và cần phải có cho một ứng dụng web bình thường?

Smoke testing là gì?

Có thể bạn chưa nghe tới khái niệm smoke testing này. OK. Tôi sẽ dành một đoạn ngắn thời gian để giải thích, nhưng vì khuôn khổ bài viết tôi sẽ trình bày ngắn gọn thôi...

Về nguyên thủy, thì smoke testing là khái niệm xuất hiện trong ngành điện tử. Khi người ta làm ra một board mạch nào đó, việc đầu tiên là họ sẽ cắm nguồn điện vào, nếu mạch điện không "xì khói" thì có nghĩa là đã smoke testing thành công. Board mạch nào "xì khói" thì coi như hỏng, khỏi phải test các bước tiếp theo, vì có test cũng không thể test được. Nói tổng quát, smoke testing là bước test cơ bản để một sản phẩm có thể bắt đầu các bước testing tiếp theo.

Trong ngành phần mềm, và nhất là các ứng dụng web, smoke testing được hiểu là kiểm xem ứng dụng của bạn có bị "xì khói" khi khởi chạy hay không. Chúng ta không thể test nếu như vô trang chủ bị lỗi (vì trang chủ bị lỗi thì làm sao mà vô được những trang tiếp theo?), hay trang chủ không có link nào để bấm tiếp. Thông thường, người ta sẽ sử dụng smoke testing để kiểm tra 3-5 cấp độ sâu của trang web...

LinkChecker là gì?

Chỉ đơn giản nó là công cụ miễn phí và nguồn mở cho tất cả mọi người muốn test các link trong trang web của mình. Bạn có thể download nó tại: http://wummel.github.io/linkchecker/.

Cách thức hoạt động của nó là request một link, đọc nội dung của page đó và lấy các link trong page đó ra, đưa các link vào queue để xử lý tiếp. Một khái niệm cơ bản mà bạn phải nắm đó là độ sâu. Khi bạn đưa link của một page, thì page đó là độ sâu cấp 0, trong page đó có các link thì page tương ứng là cấp 1, và tương tự vậy cho cấp 3, 4, 5,... Với LinkChecker thì độ sâu -1 có nghĩa là vô hạn (cho tới khi nào không còn link nào nữa thì thôi).

Có thể trang web của bạn cần login, vậy làm thế nào? OK. Hãy đặt câu hỏi liệu bạn có thể bỏ qua vấn đề login hay không? Nếu có thì mọi chuyện thật dễ dàng. Nếu không thì bạn cũng đừng quá lo, bạn nên biết rằng bạn có thể đăng nhập bằng trình duyệt, sau đó copy cookie của trang và đưa vào LinkChecker, như vậy là có thể vượt qua được phần đăng nhập.

Copy cookie để đăng nhập? Nếu bạn ngạc nhiên như thế thì có làm hỏng vấn đề security trong trang web của mình không? Chúng ta sẽ bàn vấn đề này sau, và trở lại vấn đề smoke testing.

Trở về với LinkChecker, một thứ mà mặc định ai cũng nghĩ tới là tool này chạy hoàn toàn tự động, bạn chỉ cần cấu hình cho đúng với yêu cầu cụ thể của mình, chạy nó lên và chờ kết quả. Nói cách khác, đây là một ứng dụng automation testing ở mức đơn giản.

Áp dụng LinkChecker vào Smoke testing 

  1. Cài đặt LinkChecker lên một máy tính có cấu hình khá.
  2. Xác định độ sâu, tôi khuyên bạn nên chọn là 3-5 trong lần bắt đầu, đừng bao giờ nghĩ tới độ sâu vô hạn, vì nó là một thứ làm "cho vui" chứ không có ý nghĩa trong smoke testing lắm.
  3. Chuẩn bị sẵn sàng các vấn đề như đăng nhập, server web của bạn đã start OK hết.
  4. Run LinkChecker và đi kiếm một ly cà phê chờ kết quả.

Những thứ mà LinkChecker có thể làm được

Mục đích cuối cùng của smoke testing chính là kiểm tra ứng dụng web xem nó có bị lỗi khi vô các trang cơ bản hay không? Vì nếu vô các trang này mà còn bị lỗi thì không thể kiểm tra các chức năng khác được. Sau đây là một số thứ LinkChecker có thể làm được phục vụ cho mục đích smoke testing.
  • Kiểm tra các trang có bị lỗi nghiêm trọng như 500, 502, 503, 400,... Mức độ nghiêm trọng: 5/5.
  • Kiểm tra các link bị 404, kể cả link hình, css, js,... Mức độ nghiêm trọng: 4/5.
  • Kiểm tra các link có kích thước request quá dài. Mức độ nghiêm trọng: 2/5.
  • Kiểm tra các trang response quá lâu, bị timeout,... Mức độ nghiêm trọng: 4/5.
  • Tìm các link bị redirect quá nhiều lần hoặc redirect đệ qui vô hạn. Mức độ nghiêm trọng: 4/5.
  • Kiểm tra các trang có dung lượng quá lớn. Mức độ nghiêm trọng: 2/5.
  • Và nhiều thứ khác mà bạn có thể tìm thấy khi sử dụng...
Hi vọng là bài viết này có thể giúp ích cho các bạn phần nào... Xin cảm ơn vì bạn đã kiên nhẫn đọc tới dòng này...

No comments:

Post a Comment

Biểu mẫu liên hệ

Name

Email *

Message *