Giới thiệu về Codium AI
Codium AI là một công ty nghiên cứu và phát triển phần mềm, khởi nghiệp tại Tel Aviv - Israel. Họ ra đời với mục đích hợp lý hóa các quy trình phát triển phần mềm bằng cách tận dụng các công cụ và quy trình được hỗ trợ bởi AI.
Codium AI tự đặt ra sứ mệnh cho mình là ‘giúp các nhà phát triển viết mã nhanh hơn và ít lỗi hơn’. Công cụ AlphaCodium đã được thử nghiệm trên tập dữ liệu CodeContests chứa khoảng 10.000 vấn đề lập trình. Hiệu suất của công nghệ trên điểm chuẩn này cho thấy sự cải thiện về độ chính xác của GPT-4 từ 19% lên 44%. CodiumAI cho biết: “Kết quả này không chỉ là một cải tiến về số lượng mà còn là một bước đột phá về khả năng tạo mã của Mô hình ngôn ngữ lớn (LLM), thiết lập một tiêu chuẩn mới trong lĩnh vực này”.
CodiumAI, được thành lập vào năm 2022 và đã từng huy động được 10,6 triệu USD vốn đầu tư vào tháng 3/2023.
Sản phẩm chính của Codium AI
- Codiumate: Code, Test, and Review code.
- PR-Agent: công cụ giúp review và xử lý các pull request một cách hiệu quả.
- Alpha Codium: Code Generation.
Giới thiệu về Codiumate
Codiumate là một công cụ được thiết kế tạo unit test, viết và review code để tăng hiệu quả, cải thiện chất lượng code trong quá trình phát triển phần mềm.
Tích hợp Codiumate
- Visual Studio Code
- JetBrains IDEs (IntelliJ, PyCharm, ...)
- Codiumate hỗ trợ tất cả ngôn ngữ lập trình để tạo test, nhưng có sự hỗ trợ nâng cao cho:
- Python - pytest, unittest
- JavaScript - Jest, Mocha
- TypeScript - Jest, Mocha
- Java - JUnit (coming soon)
Codiumate Test giúp chúng ta:
- Gợi ý test thông minh ngay khi đang code
- Giả định hành vi của code và cách chúng ảnh hưởng đến mọi thứ khác
- Phân tích code, tài liệu, và thêm vào các đoạn comment để gợi ý test
Đặc điểm nổi bật
- Tạo các loại thử nghiệm khác nhau
- Tạo kế hoạch kiểm tra phù hợp
- Tìm lỗi và hành vi đáng ngờ
- Tiết kiệm thời gian viết bài unit test
- Hoạt động bên trong IDE
- Miễn phí cho nhà phát triển cá nhân
Codiumate Test hoạt động như thế nào?
Codiumate Test sử dụng quy trình ba bước để tạo ra các bài test có ý nghĩa:
- Code Analysis (Phân tích code): Scan code, docstring, comment và nhập thông tin để hiểu về các chức năng.
- Test Plan: Sử dụng AI để tạo test plan phù hợp với code cụ thể. Xem xét các trường hợp biên, validation, error handling, ...
- Test Code: Tạo test code thực tế dựa trên test plan. Cung cấp các bài unit test có thể chạy được trong framework dự án.
Use case và ứng dụng
Codium AI rất hữu ích cho:
Test code mới
- Tạo các unit và integration test khi bạn viết code các chức năng hoặc module mới.
- Bắt đầu xác thực chức năng một cách nhanh chóng.
Cải thiện phạm vi test
- Tăng cường các thử nghiệm hiện có với các trường hợp cạnh mới.
- Tăng số liệu mức độ phù hợp một cách có ý nghĩa.
Tái cấu trúc và thay đổi code
- Cập nhật các bài kiểm tra để phù hợp với các bộ tái cấu trúc và thay đổi.
- Có được sự tự tin rằng bạn đã không phá vỡ bất cứ điều gì.
Triển khai dự án mới
- Nhanh chóng thực hiện các bài kiểm tra xác thực trên cơ sở mã mới.
- Bắt đầu hiểu hành vi và tìm ra vấn đề.
Review code
- Sử dụng các bài kiểm tra được tạo như một phần của quá trình xem xét.
- Tìm kiếm các lỗi hoặc khoảng trống xác thực được phát hiện qua các cuộc kiểm tra.
Codium AI dành cho ai?
Codium AI được xây dựng cho:
- Developers: Viết bài kiểm tra nhanh hơn và cải thiện chất lượng mã.
- Testers: Tạo nhiều kịch bản thử nghiệm hơn và tìm các trường hợp khó khăn.
- Teams: Cải thiện việc review code và tiêu chuẩn chất lượng.
- Dự án open source: Nhận các bài kiểm tra được đóng góp miễn phí.
Nó giúp bất kỳ developer nào viết code tốt hơn, đáng tin cậy hơn và tiết kiệm đáng kể thời gian tạo các bài test.
API và khả năng mở rộng
- CodiumAI cung cấp REST API để tạo test từ xa.
- Các developer có thể xây dựng các custom integrations and workflows.
- Tham khảo API - https://api.codium.ai
Demo
Giả sử chúng ta có đoạn code python đơn giản sau đây. Hãy cùng thực hiện các bước đơn giản nhất để tạo Unit test cho nó và thử chạy xem có ổn không?
class InsufficientAmount(Exception):
pass
class Wallet(object):
def __init__(self, initial_amount=0):
self.balance = initial_amount
def spend_cash(self, amount):
if self.balance < amount:
raise InsufficientAmount('Not enough available to spend {}'.format(amount))
self.balance -= amount
def add_cash(self, amount):
self.balance += amount
- Bấm vào nút "Test this class"
- Giao diện bên phải hiện thị cho phép chúng ta làm việc với Tests. Mở tab Configuration, hãy chú ý đến các cài đặt sau:
- Test framework: Do mình đã cài đặt Pytest (một framework của Python để chạy test) nên Codium sẽ dùng nó để chạy test.
- Number of Generated Tests: đây là con số test case mặc định Codium sẽ tạo ra.
- mặc định nó tạo ra cho chúng ta 2 test case. Chúng ta có thể tạo thêm test case ở mục "Behaviors coverage" sau đó bấm "Generate test".
Ở mỗi test case, chúng ta có thể trực tiếp sửa code mà Codium tạo ra hoặc chat với nó để hoàn thiện code test.
- Quay lại tab Test suite mục "Tests", bấm nút "Run all tests" để chạy test.
2 test case mặc định mà Codium tạo ra nó tự chạy test thấy Passed.
Sau đó bấm nút Open as a file, ta thấy nó tạo ra file test (nháp) cho chúng ta chỉ việc lưu lại và chạy.
Tôi lưu lại file và chạy lệnh test thực tế đối với pytest: `pytest .\test_sample6.py`.
Kết quả từ code được ra từ Codium chạy thành công (giống với kết quả đã chạy thử trước đó). Thật là tuyệt vời với công cụ test này. Nó đã tiết kiệm rất nhiều thời gian cho chúng ta khi áp dụng cho dự án thực tế. Hãy trải nghiệm và áp dụng nó.
Kết luận
- Với Codiumate, chúng ta có thể tập trung vào logic và Codium AI sẽ xử lý các bài test.
- Đây là một công cụ tiết kiệm thời gian đáng kể! Chúng ta nhận được tất cả các lợi ích của việc test mà không cần phải làm những công việc nhàm chán.
- Codium AI không hoàn hảo!
Tham khảo
- https://www.codium.ai/products/ide-plugin/
- https://vietnamnet.vn/alphacodium-mo-ra-ky-nguyen-moi-cua-lap-trinh-bang-ai-2244534.html
- https://deepgram.com/ai-apps/codium
- https://techhub.iodigital.com/articles/codiumai-for-unit-tests
- https://wiki.nhanhoa.com/kb/top-12-cong-cu-cho-nam-2024/
- https://www.aiusergroup.com/tutorials/how-to-automate-unit-test-creation-and-code-improvements-with-codiumai
- https://semaphoreci.com/community/tutorials/testing-python-applications-with-pytest