Coverity là gì

Đăng trên Tháng Mười Một 8, 2017Tháng Tám 13, 2020

Báo cáo nêu bật tiến độ trong thập kỷ qua, xác định các chỉ số chính về sự trưởng thành của dự án và nhấn mạnh tầm quan trọng của việc đo lường rủi ro

Singapore, @mcgallen #microwirethông tin, ngày 8 tháng 2017 năm XNUMX - Synopsys, Inc. [Nasdaq: SNPS] hôm nay đã phát hành Báo cáo Quét Coverity® 2017, kiểm tra chất lượng và dữ liệu bảo mật của Phần mềm nguồn mở [OSS] được thu thập trong thập kỷ qua thông qua Coverity Scan, một giải pháp phân tích tĩnh miễn phí từ Synopsys được sử dụng bởi hơn 4,600 dự án PMNM đang hoạt động. Báo cáo cho thấy việc áp dụng đáng kể các thực tiễn phát triển phần mềm an toàn và nhấn mạnh tầm quan trọng của việc quản lý rủi ro PMNM. Ngoài ra, nó còn nêu bật những đóng góp của Coverity Scan đối với chất lượng của các hoạt động phát triển PMNM và sự trưởng thành chung của hệ sinh thái PMNM. Đọc toàn bộ báo cáo.

Andreas Kuehlmann, phó chủ tịch cấp cao kiêm tổng giám đốc của tổ chức cho biết: “Do tính phổ biến của mã nguồn mở và vai trò quan trọng của nó đối với hầu hết các loại phần mềm, việc hiểu và quản lý rủi ro của nó không còn là tùy chọn nữa”. Synopsys Nhóm toàn vẹn phần mềm. “Báo cáo Coverity Scan nêu bật tiến độ của một số dự án nguồn mở hoàn thiện và được sử dụng rộng rãi nhất, đồng thời cung cấp những hiểu biết vô giá cho cộng đồng phần mềm rộng lớn hơn phụ thuộc vào tính toàn vẹn của nguồn mở.”

Kể từ khi thành lập vào năm 2006, Coverity Scan đã xác định hơn 1.1 triệu lỗi trong các dự án PMNM đang hoạt động, dẫn đến việc khắc phục hơn 600,000 lỗi. Báo cáo Coverity Scan năm 2017 nêu chi tiết phân tích khoảng 760 triệu dòng mã nguồn mở trên một số ngôn ngữ, bao gồm C / C ++, C #, Java, JavaScript, Ruby, PHP và Python.

Các phát hiện chính từ Báo cáo Quét Coverity:

  • Các dự án đang hoạt động trong Quét cho thấy sự chấp nhận đáng kể các phương pháp phát triển phần mềm an toàn. Kể từ tháng 2016 năm 4,117, 50 dự án đang hoạt động đã gửi các bản dựng để phân tích. Trong số đó, gần 2,049 phần trăm [2,509] sử dụng Travis CI, cho thấy việc sử dụng các phương pháp tích hợp liên tục / triển khai liên tục [CI / CD]. 1,120 dự án khác đã được thử nghiệm, đòi hỏi các nhà phát triển phải có kiến ​​thức sâu sắc về cơ sở mã. Ngoài ra, XNUMX dự án đã được cấu hình để sử dụng mô hình hóa, một cơ chế để cải thiện chất lượng kết quả phân tích của họ.
  • Các hành vi chính cho thấy sự trưởng thành ngày càng tăng của các dự án PMNM. Việc các nhà phát triển chấp nhận CI / CD và khắc phục các khiếm khuyết có thể kiện tụng làm nổi bật giá trị của phân tích tĩnh đối với hệ sinh thái PMNM. Cần có các thước đo khác về mức độ trưởng thành như đo lường phát triển và đo lường cộng đồng để mô tả các rủi ro liên quan đến việc sử dụng PMNM.
  • Hệ sinh thái thương mại và PMNM đang hội tụ. Theo một số người dùng thương mại lớn nhất của Coverity, phần mềm được giao cho khách hàng có thể chứa tới 90% mã nguồn mở. Ngoài ra, hiện nay có những công ty được thành lập hoàn toàn trên PMNM chứng tỏ PMNM hiện nay là chuẩn mực.

Synopsys Coverity Scan giúp giảm thiểu rủi ro và giảm chi phí tổng thể của dự án bằng cách xác định các lỗi chất lượng quan trọng và các lỗ hổng bảo mật tiềm ẩn trong quá trình phát triển phần mềm. Synopsys quản lý dự án Coverity Scan và cung cấp Kiểm tra bảo mật ứng dụng tĩnh [SAST] như một dịch vụ miễn phí cho cộng đồng nguồn mở để giúp họ xây dựng chất lượng và bảo mật trong vòng đời phần mềm của họ. Đọc thêm về Coverity Scan.

Giới thiệu về Synopsys Nền tảng toàn vẹn phần mềm
Synopsys đưa ra giải pháp toàn diện nhất để xây dựng tính toàn vẹn — bảo mật và chất lượng — vào vòng đời phát triển phần mềm và chuỗi cung ứng. Nền tảng toàn vẹn phần mềm hợp nhất các công nghệ kiểm tra hàng đầu, phân tích tự động và các chuyên gia để tạo ra một danh mục sản phẩm và dịch vụ mạnh mẽ. Danh mục đầu tư này cho phép các công ty phát triển các chương trình được cá nhân hóa để phát hiện và khắc phục sớm các khiếm khuyết và lỗ hổng trong quá trình phát triển, giảm thiểu rủi ro và tối đa hóa năng suất. Synopsys, một công ty hàng đầu được công nhận trong kiểm tra bảo mật ứng dụng, có vị trí duy nhất để thích ứng và áp dụng các phương pháp hay nhất cho các công nghệ và xu hướng mới như IoT, DevOps, CI / CD và Đám mây. Để biết thêm thông tin, hãy truy cập www.synopsys.com / phần mềm.

Giới thiệu Synopsys
Synopsys, Inc. [Nasdaq: SNPS] là đối tác từ Silicon to Software ™ cho các công ty sáng tạo đang phát triển các sản phẩm điện tử và ứng dụng phần mềm mà chúng tôi tin cậy hàng ngày. Là công ty phần mềm lớn thứ 15 thế giới, Synopsys có lịch sử lâu đời là công ty dẫn đầu toàn cầu trong lĩnh vực tự động hóa thiết kế điện tử [EDA] và IP bán dẫn, đồng thời cũng đang ngày càng dẫn đầu về các giải pháp chất lượng và bảo mật phần mềm. Cho dù bạn là nhà thiết kế hệ thống trên chip [SoC] tạo ra chất bán dẫn tiên tiến hay nhà phát triển phần mềm viết các ứng dụng yêu cầu chất lượng và bảo mật cao nhất, Synopsys có các giải pháp cần thiết để cung cấp các sản phẩm sáng tạo, chất lượng cao và an toàn. Tìm hiểu thêm tại www.synopsysnăm.

# # #

Giám đốc dự án cần đánh giá được tiến độ, chất lượng để có điều chỉnh kịp thời, nhà phát triển cần một hệ thống hỗ trợ coding, danh mục kiểm tra tự động, bộ phận kiểm định chất lượng cần một hệ thống theo dõi đủ sâu và dễ tiếp cận nhất có thể… Tất cả những vấn đề này đều có thể giải quyết triệt để với CI/CD.            

Tự động hóa sản xuất là một khái niệm không hề mới trong sản xuất công nghiệp nói chung và trong công nghệ phần mềm nói riêng, FPT Software vốn tự hào là Doanh nghiệp IT hàng đầu lại vẫn làm việc thủ công đến lạ lùng.

Hàng ngày các nhà phát tiển vẫn cần mẫn code và submit lên quản lí nguồn, khi cần thì lấy nguồn về chỉnh sửa để build được nguồn rồi cài cắm cho testers thực hiện kiểm thử. Đến khi trưởng bộ phận có hỏi về tình trạng dự án thế nào rồi, chất lượng code ra làm sao, dự  án có đảm bảo được hết danh mục của khách hàng không? Thì mọi thứ giống như một ma trận mà câu trả lời lúc nào cũng chỉ là: Tạm ổn anh, khả năng kịp tiến độ, chưa có vấn đề gì lạ. Nhưng thực chất thế nào thì thật khó nói. Trong khi người quản lí rất cần những báo cáo kịp thời [realtime] và chính xác về tình hình dự án, nhất là chất lượng dự án.

Vậy CICD/CQM là gì?

Mô hình CI/CD

CICD là viết tắt của The Continuous Integration & Continuous Deployment/ Continuous Delivery.

Continuous Integration [CI]: Việc thường xuyên cập nhật kết quả mình làm được cùng với những thành viên khác sẽ thúc đẩy quá trình hoàn thành sản phẩm càng sớm càng tốt. Giúp kiểm soát tình hình thông qua các node chức năng [UT, CQM,…] khiến sản phẩm đạt sự ổn định với chất lượng tốt nhất có thể.

Continuous Deployment [CD]: Là khái niệm có quan hệ rất mật thiết với Continuous Integration, Continuous Deployment giúp việc triển khai ứng dụng có thể được diễn ra trong bất cứ thời điểm nào và sau đó thậm chí là tự động cho ra một phiên bản mới trên môi trường test hoặc quá trình sản xuất nếu như bản build vượt qua được tất cả các nút trước đó. Với cách làm như vậy, nếu xảy ra lỗi trong quá trình build [Cam kết code không vượt qua các kiểm định về chất lượng [CQM] hoặc các trường hợp kiểm tra [UT, IT, ST] nhà phát triển sẽ có thể dễ dàng xác định được lỗi diễn ra ở đâu và qua đó giúp sửa lỗi một cách hiệu quả hơn.

Continuous Delivery: Tương tự như Continuous Deployment dự án có thể deploy ở bất cứ thời điểm nào. tuy nhiên điều này không có nghĩa là nó có thể đảm bảo ứng dụng có thể được deploy một cách an toàn trên môi trường production vì thông thường sẽ có sự khác biệt trong cách cấu hình ứng dụng giữa môi trường production và test do vậy nó sẽ dừng lại và không thực hiện deploy lên môi trường production.

Code Quality Management [CQM]: Là một giải pháp do TQA xây dựng giúp cho việc kiểm soát chất lượng mã nguồn được tốt hơn bao gồm: phân tích code tĩnh, đo đếm nguồn, tìm kiếm lỗi bao gồm cả logic, bảo mật, vi phạm, đề xuất cải tiến chất lượng, hệ thống báo cáo chất lượng. CQM sử dụng kết hợp các công cụ mạnh mẽ và quy trình được xác định để giúp giảm chi phí bảo trì và đảm bảo rằng phần mềm có thể được sửa đổi trong khi vẫn giữ được hiệu quả lâu dài. CQM làm cho chất lượng mã nguồn có thể đo được, xác định các khu vực có nguy cơ và đề xuất các biện pháp để nâng cao chất lượng mã. Các chỉ số được lựa chọn và các phép đo dựa trên công cụ tự động hoặc bán tự động được thực hiện. Khi các chỉ số được đưa ra, cấp quản lý qua đó có cái nhìn tổng quan về chất lượng mã nguồn. Lập trình viên được cung cấp danh sách chi tiết thông tin xác định các lỗi hoặc vấn đề nguy hiểm trong mã nguồn.

Giải pháp CQM xây dựng bao gồm 3 tool :

Jenkins: Jenkins là một phần mềm tự động hóa, mã nguồn mở và viết bằng Java. Jenkins giúp tự động hóa các quy trình trong phát triển phần mềm, hiện nay được gọi theo thuật ngữ Tích hợp liên tục [CI] và còn được dùng đến trong việc Phân phối liên tục [CD]. Jenkins là một phần mềm dạng máy chủ, chạy trên nền servlet với sự hỗ trợ của Apache Tomcat. Nó hỗ trợ hầu hết các phần mềm quản lý mã nguồn phổ biến hiện nay như Git, Subversion, Mercurial, ClearCase…Jenkins cũng hỗ trợ cả các mã lệnh của Shell và Windows Batch, đồng thời còn chạy được các mã lệnh của Apache Ant, Maven, Gradle… Phát hành theo giấy phép MIT nên Jenkins là phần mềm miễn phí.

Mô hình hoạt động của Jenkins

SonarQube: SonarQube là một nền tảng mã nguồn mở để kiểm tra chất lượng mã lập trình. Sonarqube giúp lập trình viên kiểm tra code của mình đã tốt chưa, nếu có bất kì lỗi nào vi phạm hay có nguy cơ vi phạm nguyên tắc [coding convention] thì nó sẽ giúp ta cảnh báo và đưa ra gợi ý để sửa trong vòng không quá 3 click chuột.

Sơ đồ kết hợp Sonar và Jenkins

Coverity: Coverity là một thương hiệu của các sản phẩm phát triển phần mềm từ Synopsys, bao gồm chủ yếu là phân tích mã lập trình. Các công cụ này cho phép các kỹ sư tìm ra lỗi và lỗ hổng bảo mật, logic code…trong mã nguồn được viết bằng C, C ++, Java, C #, JavaScript và một số ngôn ngữ khác.

Dashboard đầy đủ thông tin của CQM

CQM thống kê và báo cáo chi tiết những vấn đề sau :

  1. Thể hiện kiến trúc và thiết kế hệ thống thông qua cấp độ cây thư mục.
  2. Báo cáo số lượng code, file bị trùng lặp
  3. Báo cáo về tình hình kiểm tra đơn vị.
  4. Đánh giá độ phức tạp của hàm, lớp, file…
  5. Thể hiện những vấn đề trong code được chia theo cấp độ: blocker, critical, major…và ước lượng thời gian cần để giải quyết.
  6. Báo cáo số lượng tài liệu và bình luận trong code.
  7. Đánh giá chung chất lượng của dự án dựa vào phương pháp SQALE.
  8. Tính toán số lượng dòng code, số lượng hàm, files, thư mục…

Hiện nay giải pháp CICD/CQM đã và đang được triển khai rộng rãi trên phạm vi toàn FPT Software và nhận được sự hưởng ứng mạnh mẽ từ đơn vị sản xuất. Với những điểm mạnh như : chi phí triển khai rẻ, hỗ trợ quét mã code trong thời gian thực, báo cáo trực quan…CICD/CQM sẽ là một thành phần quan trọng giúp nâng cao toàn diện chất lượng dự án và góp phần giúp FPT Software dễ dàng hơn trên con đường chinh phục mục tiêu 1B2020.

Bùi Quang Hiếu – FPT Software

Video liên quan

Chủ Đề