Giap Hiep

I'm Giap Hiep

I'm a web developer, a gymer. I enjoy share something i know that help people's work!
Giap Hiep

Phần 1: Giới thiệu về kiểm thử phần mềm JavaScript

Tại sao chúng ta nên kiểm thử phần mềm ?

Câu trả lời rất đơn giản: không ai muốn sử dụng một phần mềm bị lỗi cả. Một phần mềm bị lỗi khiến người dùng khó chịu; gây thiệt hại về danh tiếng và tài chính cho công ty; làm giảm niềm tin của người dùng vào ứng dụng; làm bạn phát điên khi bảo trì, tối ưu code. Cuối cùng, những sự hỗn độn này làm bạn cảm thấy mình thật là kém "cool" và nếu bạn tự hỏi, ai sẽ là người phải gánh chịu hậu quả cho tất cả những thứ này?

  • :negative_squared_cross_mark: Sếp của Project Manager
  • :negative_squared_cross_mark: Project Manager
  • :white_check_mark: Bạn (còn ai vào đây nữa)

Khi team mình mới thành lập và phát triển những dự án đầu tiên, các ứng dụng bọn mình viết ra thường xuyên ngập tràn trong lỗi. Từ staging tới production, dường như không có một thời điểm nào là thời điểm sẵn sàng để functional tester có thể vào test. Sẽ luôn có lí do cho việc tại sao feature này chưa sẵn sàng để được release: giai đoạn A, B, C đang gặp vấn đề gì đó, hay database mới được thay đổi :hankey:.

Bạn cần phải hiểu một điều rằng, sẽ chẳng ai quan tâm đến những lí do biện hộ ở trên mà người ta sẽ chỉ quan tâm tới kết quả. Và kết quả là khi mà sếp cần demo sản phẩm cho khách hàng hay ra mắt phiên bản mới mà mọi thứ không hoạt động như mong muốn: YOU ARE FUCKED :skull:


Hãy trở thành một developer chuyên nghiệp hơn:

  • :white_check_mark: Luôn cố gắng để đảm bảo rằng code của mình sẽ hoạt động
  • :white_check_mark: Không mang tới sự khó chịu cho người dùng
  • :white_check_mark: Không sửa lỗi này xong tạo ra lỗi to bự khác
  • :white_check_mark: Không làm co-worker phát điên khi làm việc chung trên sourcecode của dự án

Việc kiểm thử phần mềm tốn rất nhiều thời gian ? :zipper_mouth_face:

  • "Team tôi làm gì có thời gian, mọi người đã ngập tràn trong deadline rồi"
  • "Làm gì có budget cho testing hả bạn?"
  • "Testing là một công việc lặp lại nhàm chán"

Sự thật là nếu bạn không test phần mềm của bạn, thì người dùng sẽ phải là người làm công việc đó. Testing có thể là một công việc phức tạp, nhàm chán và lặp đi lặp lại. Tuy nhiên, bạn biết ai là người có thể làm những công việc phức tạp, nhàm chán và lặp đi lặp lại không? Đó chính là MÁY TÍNH :desktop_computer:

Những lập trình viên chuyên nghiệp sẽ dùng máy tính để tự động hoá công việc kiểm thử phần mềm. Vậy câu hỏi đặt ra sẽ là:

  • Chúng ta cần phải test những gì ?
  • Khi nào thì cần thực hiện những bài test này ?
  • Bao nhiêu bài test là đủ ?

Bốn loại test phổ biến cho mọi ứng dụng Javascript

Dưới đây là bốn phương pháp thường được thực hiện trong kiểm thử ứng dụng Javascript ( bất kể bạn đang sử dụng Frameworks nào)

  1. Static Analysis Test: Đây là phép kiểm thử đơn giản nhất nhằm kiểm tra các lỗi chính tả, lỗi kiểu dữ liệu, cách cấu trúc và ngắt dòng, cách đặt tên biến. Developers có thể sử dụng những công cụ như TypeScript, ESLint hay Prettier để hỗ trợ trong quá trình này. Bạn chỉ cần cấu hình những công cụ trên đúng một lần duy nhất, và dường như không cần phải bỏ ra một chút công sức nào trong suốt quá trình sử dụng.

  2. Unit Test: Đối với Unit Test, chúng ta sẽ kiểm tra xem từng phần code nhỏ có hoạt động độc lập và đảm bảo đúng chức năng như kì vọng hay không.

  3. Intergration Test : Sau Unit Test, thông qua Intergration Test, developers sẽ chứng minh được rằng các module code nhỏ khi kết hợp lại với nhau có thể giao tiếp và tạo nên một hệ thống hoạt động trơn tru và chính xác.

  4. End-to-end Test: Nếu bạn cảm thấy việc phải click quanh app, nhập các trường dữ liệu và test từng chức năng thật nhàm chán. May mắn thay, bạn có thể cấu hình robot thực hiện các công việc này nhằm mô phỏng hành vi của người dùng và chắc chắn rằng không có gì xảy ra ngoài mong đợi.

Kết luận

Là một developer chuyên nghiệp, chắc chắn rằng bạn sẽ luôn muốn code của mình viết ra đạt chất lượng và đem lại trải nghiệm tốt cho người dùng. Một lỗi chính tả, một dấu cách, hay mấy con mèo bí mật ngồi lên bàn phím có thể bất ngờ phá huỷ ứng dụng của bạn trong lúc bạn không hay biết điều gì vừa xảy ra. Hãy là một developers thông thái và kiểm thử ứng dụng của mình

Trong những bài viết tiếp theo, mình sẽ đi vào cụ thể từng phương pháp và giới thiệu các tools cũng như libraries có thể giúp các bạn kiểm thử ứng dụng React ( yea, không phải là :shit:Angular mà là :star2:React).