Nâng cao chất lượng phần mềm với Testing và CI/CD

1. Software testing? 

Software testing hay còn gọi là kiểm thử phầm mềm, nó là một trong những quy trình để phát triển phần mềm. Nhiện vụ của testing là để giúp đảm bảo phần mềm đang chạy đúng với mong muốn. Testing là một thứ không thể thiếu không chỉ với những Tester mà thực sự cần cho Developer.

2. Sự cần thiết của Testing đối với Developer 

Nếu bạn muốn trở thành một Senior Developer thì việc tìm hiểu và biết về testing là không thể thiếu. Có thể nhiều bạn Junior vẫn coi thường và cho rằng việc viết Test script là không cần thiết, mất thời gian. Mất thời gian thì đúng, vì đôi khi viết Test script còn mất thời gian hơn cả Coding NHƯNG hoàn toàn là cần thiết cho một dự án, đặc biệt là những dự án lớn.

3. Các loại Testing 

  • Manual: Là loại testing thủ công, không dùng tool, công cụ hay bất cứ một code script nào để test.
  • Automatic: Là một mã code, một công cụ hữu hiệu để có thể re-run, chạy đi chạy lại nhiều lần.

4. Các phương thức testing 

Có 2 phương thức cơ bản về Testing:
  • Blackbox testing - Kiểm thử hộp đen: Hiểu đơn giản nó là một cái hộp đen, mình chẳng nhìn được hay biết gì trong đó, chỉ tống một cho nó một đầu vào và đưa ra cho một kết quả đúng là okay. 
  • Whitebox testing- kiểm thử hộp trắng: Việc kiểm thử này được thực hiện với mong muốn biết được dòng code bên trong đang làm gì, đúng không, thừa thiếu hoặc sai chỗ nào. 

5. Các cấp độ testing 

Unit Testing; Integration Testing; Functional Testing; System Testing; Stress Testing; Performance Testing; Usability Testing; Acceptance Testing; Regression Testing; Beta Testing

6. CI/CD

CI là Continuous Integration. là cách để có thể tích hợp liên tục, mỗi một thay đổi code sẽ được CI “build” tự động (đặc biệt là gồm cả Testing) nhằm phát hiện lỗi nhanh nhất có thể. Việc này giúp sớm phát hiện lỗi, giảm thiểu rủi ro. Hệ thống sẽ chạy ổn định hơn khi áp dụng CI.
Continuous Deployment (CD): Là khái niệm thường đi kèm với Continuous Integration, Continuous Deployment giúp việc triển khai dự án của bạn một cách tự động ở bất cứ thời điểm nào (theo thiết lập của bạn) lên các môi trường tương ứng (dev, beta, staging...)

7. Các CI/CD thông dụng

Nếu bạn muốn tự build 1 con CI thì có thể dùng Jenkins
Ngoải ra thì có thể dùng một bên thứ 3 như TravisCI hay CircleCI

8. Kịch bản thông dụng.

1. Developer push code, Tạo Pull Request 
      1.a CI sẽ được notified khi có bất cứ thay đổi nào từ GIT.
      1.b CI sẽ chạy các bước cần thiết như: build môi trường, chạy các test case, chạy Sonar analysis...
      1.c Nếu bất kỳ bước nào bị lỗi, thì sẽ báo lại cho Developer sớm nhất để tìm cách khắc phục.
2. Tech lead sẽ review code manually
3. Review xong thì approved và merged
  • Ngoài ba bước 1.a, 1.b, 1.c ở trên, CI sẽ làm thêm bước Build và Deploy lên môi trường tương tứng

9. Tổng kết

Việc hiểu biết về testing là thực sự quan trọng trong việc phát triển phầm mềm.
Nên sử dụng các tool hỗ trợ để có được sản phẩm tốt mà chi phí lại thấp.






If you liked this article

Let's subscribe the updates of Scuti!
Share on Google Plus

About Anonymous

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 Comments:

Post a Comment