Codecov đã làm gì để giảm 4 lần thời gian fix bugs của developers?
Mở đầu
Trong môi trường phát triển phần mềm, lỗi (bugs) là điều không thể tránh khỏi. Tuy nhiên, dành quá nhiều thời gian để sửa lỗi có thể ảnh hưởng lớn đến tiến độ và chất lượng sản phẩm. Axle Health, một công ty phần mềm quản lý lực lượng lao động trong ngành y tế, từng gặp vấn đề nghiêm trọng khi 40% năng lực kỹ thuật của họ bị tiêu tốn vào việc sửa lỗi. Nhưng nhờ vào Codecov, họ đã giảm tỷ lệ này xuống chỉ còn 10% – tương đương giảm 4 lần thời gian fix bugs. Vậy Codecov đã giúp họ đạt được điều đó như thế nào?
1. Vấn đề ban đầu của Axle Health
Là một công ty khởi nghiệp phát triển nhanh, Axle Health liên tục triển khai các tính năng mới hàng ngày. Tuy nhiên, do thiếu các quy trình kiểm thử chặt chẽ, nhiều lỗi đã xuất hiện trong môi trường sản xuất. Điều này buộc đội ngũ kỹ thuật phải dành phần lớn thời gian để khắc phục sự cố thay vì tập trung vào phát triển sản phẩm.
"Trong lĩnh vực chăm sóc sức khỏe, chúng tôi không thể gửi mã chưa được kiểm thử. Mỗi phút chúng tôi gặp vấn đề, sức khỏe của mọi người đang gặp rủi ro."
Khi đội ngũ kỹ thuật mở rộng gấp năm lần trong vòng sáu tháng, sự phức tạp của mã nguồn cũng tăng theo, khiến vấn đề trở nên nghiêm trọng hơn. Trưởng phòng Kỹ thuật Ian Arko nhận ra rằng họ cần một cách tiếp cận mới để đảm bảo chất lượng mã mà không làm chậm quá trình phát triển.
"Tôi muốn các kỹ sư mới của chúng tôi thấy các chỉ số bao phủ và hiểu rằng họ đang làm việc trên thứ có thể trở thành trách nhiệm nếu thiếu kiểm thử."
Hạn chế của quy trình kiểm thử cũ:
- Không có công cụ đo lường mức độ bao phủ mã nguồn, dẫn đến nhiều đoạn mã không được kiểm thử.
- Quá trình sửa lỗi mất nhiều thời gian do thiếu thông tin cụ thể về vùng mã dễ xảy ra lỗi.
- Các kỹ sư mới khó đánh giá tác động của thay đổi mã lên hệ thống tổng thể.
2. Codecov giúp cải thiện quy trình kiểm thử như thế nào?
Codecov là gì?
Codecov là một công cụ đo lường độ bao phủ mã nguồn (code coverage) hỗ trợ nhiều ngôn ngữ lập trình và tích hợp với các nền tảng CI/CD phổ biến như GitHub Actions, GitLab CI/CD, Jenkins và CircleCI.
Các tính năng chính mà Axle Health đã tận dụng:
- Xác định lỗ hổng kiểm thử: Codecov cung cấp báo cáo chi tiết về các đoạn mã chưa được kiểm thử, trực quan hóa bằng heatmap hoặc danh sách file cụ thể.
- Tích hợp chặt chẽ với CI/CD: Mỗi lần có Pull Request (PR), Codecov tự động phân tích mức độ bao phủ của các thay đổi và đưa ra cảnh báo nếu mức độ này không đạt tiêu chuẩn.
- Chỉ số bao phủ chi tiết: Các kỹ sư có thể kiểm tra code coverage ở cấp độ từng dòng, từng hàm, giúp đảm bảo rằng những đoạn mã quan trọng luôn được kiểm thử.
- Bình luận trực tiếp trên PR: Codecov có thể tự động bình luận trên PR về mức độ bao phủ của mã mới, giúp developers thấy rõ tác động của kiểm thử trước khi merge code.
Quy trình CI/CD với Codecov tại Axle Health:
- Khi developer mở một Pull Request, bộ kiểm thử tự động chạy và thu thập dữ liệu coverage.
- Codecov phân tích và tạo báo cáo, hiển thị tỷ lệ bao phủ của các thay đổi.
- Nếu mức coverage giảm xuống dưới ngưỡng quy định, PR sẽ hiển thị cảnh báo, yêu cầu bổ sung kiểm thử.
- Sau khi kiểm thử đạt yêu cầu, PR mới được merge vào nhánh chính.
3. Kết quả đạt được
Nhờ áp dụng Codecov, Axle Health đã đạt được những cải tiến đáng kể:
- Giảm 4 lần thời gian fix bugs, từ việc tiêu tốn 40% năng lực kỹ thuật xuống còn 10%.
- Tăng tỷ lệ bao phủ kiểm thử lên 85%, đảm bảo rằng hầu hết các phần quan trọng của hệ thống đều được kiểm thử.
- Cải thiện tốc độ phát triển tính năng mới do giảm thiểu sự cố sản xuất và lỗi phát sinh ngoài ý muốn.
- Nâng cao trách nhiệm của developers, khi mọi thay đổi đều được theo dõi và đo lường mức độ kiểm thử trước khi triển khai.
Kết luận
Việc triển khai Codecov đã giúp Axle Health thay đổi cách tiếp cận với kiểm thử phần mềm, từ bị động sang chủ động. Nhờ đó, họ không chỉ giảm 4 lần thời gian fix bugs mà còn nâng cao chất lượng sản phẩm, đảm bảo độ tin cậy trong một lĩnh vực quan trọng như chăm sóc sức khỏe.
Câu chuyện của Axle Health là một minh chứng rõ ràng cho tầm quan trọng của việc đầu tư vào kiểm thử tự động, giúp doanh nghiệp phát triển bền vững hơn trong dài hạn.
Nguồn tham khảo:
https://about.codecov.io/resource/shipping-untested-code-isnt-an-option-for-axle-health/
All rights reserved