Kiểm thử dự án
OpenThread do Google phát hành được kiểm thử bằng một số công cụ.
Tích hợp liên tục
OpenThread sử dụng GitHub Actions để tích hợp liên tục (CI) và Codecov để đo lường mức độ bao phủ mã.
CI thực hiện các bước kiểm tra bản dựng cho tất cả các nền tảng mẫu bằng GNU Arm Embedded Toolchain và cho mẫu mô phỏng bằng GCC, Clang và Android. Nó cũng tạo và kiểm thử dựa trên x86, cấu trúc nền tảng và cấu hình thiết bị Thread. Để biết thêm thông tin về các quy trình kiểm thử và kiểm tra cụ thể, hãy xem phần Quy trình.
Ngoài ra, CI còn thực hiện:
- Kiểm tra kiểu mã bằng
clang-format
- Kiểm thử đơn vị
- Kiểm thử chức năng đối với CLI và Pyspinel
OSS-Fuzz
OpenThread được kiểm thử mờ bằng OSS-Fuzz. Trong kỹ thuật kiểm thử này, các đầu vào không hợp lệ và ngẫu nhiên được gửi với tần suất và số lượng lớn đến phần mềm để tìm các vấn đề như rò rỉ bộ nhớ hoặc sự cố.
Hãy xem kho lưu trữ OpenThread để biết các mục tiêu xây dựng fuzzing hiện tại.
Thử nghiệm sản phẩm
Sử dụng các công cụ sau để kiểm thử sản phẩm OpenThread của riêng bạn.
Wireshark
Wireshark là một trình phân tích giao thức mạng nguồn mở cho lưu lượng truy cập chạy trên các giao diện mạng thực và ảo. Giao thức Thread được hỗ trợ trong Wireshark 2.4.0 trở lên. Bạn có thể tìm thấy tài liệu và nội dung tải xuống cho công cụ này tại wireshark.org.
Để biết thêm thông tin về cách Thread được hỗ trợ trong Wireshark, hãy xem phần Theo dõi gói bằng Pyspinel.
Pyspinel
Pyspinel là một CLI Python cho giao thức Spinel, được dùng để định cấu hình và quản lý NCP hoặc RCP OpenThread. CLI này chủ yếu nhắm đến các kiểm thử CI, nhưng có thể được dùng theo cách thủ công để thử nghiệm và kiểm thử các phiên bản OpenThread Co-Processor.
Pyspinel được dùng để:
- Thêm hoạt động kiểm thử Đồng xử lý mô phỏng vào quy trình tích hợp liên tục.
- Tự động hoá việc kiểm thử các băng ghế thử nghiệm chạy chương trình cơ sở Co-Processor trên phần cứng.
- Gỡ lỗi các bản dựng Đồng xử lý của OpenThread.
- Chuyển đổi một Bộ đồng xử lý OpenThread thành một trình theo dõi gói.
Để biết thêm thông tin, hãy xem README
trong kho lưu trữ Pyspinel.