Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
2018 SOFTWARE VERIFICATION
Static Analyzers
SonarQube, PMD, FindBugs
201311263 김민환
201311308 전세진
201411278 서희진
201411317 조민규
SonarQube
PMD
FindBugs
Static Analyzers
2018 SOFTWARE VERIFICATION
SonarQube Software verification
SonarQube, PMD, FindBugs0101
• 프로젝트의 품질을 관리할 수 있도록 여러가지 모니터링 툴을 제공하는 오픈소스 플랫폼.
• CI Server 와 연동하여 사용.
• Java 포함 20가지 이상의Programming Language로 제작된프로젝트의 모니터링을 제공.
SonarQube란?
SonarQube Software verification
SonarQube, PMD, FindBugs0101
• Opensource Project인 관계로 License 비용없이 다운 받아서 사용이 가능.
• 강력하고 심플한 Dashboard(Web Monitoring UI) 제공.
• Table과 Chart를 이용하여 시간이 지남에 따라 프로젝트가 얼마나 개선되고 있는지 시각적으로 보여줌.
• 코딩품질 개선을 위한 정보(소스의 중복이나 복잡도 그리고 유닛 테스트의 커버리지및 잠재적인 버그의 정보 등)를 프로젝트 단위부터 파일단위까지 제공.
SonarQube 장점
SonarQube Software verification
SonarQube, PMD, FindBugs0101설치
MySQL DB생성 및 권한 부여(with Docker)
SonarQube Software verification
SonarQube, PMD, FindBugs0101설치
MySQL DB생성 및 권한 부여(with Docker)
SonarQube Software verification
SonarQube, PMD, FindBugs0101설치
Jenkins/Redmine/SonarQube 설치(with Docker)
SonarQube Software verification
SonarQube, PMD, FindBugs0101설치
Jenkins/Redmine/SonarQube 설치(with Docker)
SonarQube Software verification
SonarQube, PMD, FindBugs0101설치
Jenkins/Redmine/SonarQube 설치(with Docker)
SonarQube Software verification
SonarQube, PMD, FindBugs0101설치
Jenkins/Redmine/SonarQube 설치(with Docker)
SonarQube Software verification
SonarQube, PMD, FindBugs0101설치
Jenkins/Redmine/SonarQube 설치(with Docker)
PMD Software verification
SonarQube, PMD, FindBugs0102PMD 소개
PMD Software verification
SonarQube, PMD, FindBugs0102
공식 홈페이지(https://pmd.github.io/)의 설명
PMD 소개
PMD Software verification
SonarQube, PMD, FindBugs0102PMD 소개
1. 다음의 결함들을 잡아낸다.
• 안 쓰는 변수
• 빈 catch 블록
• 불필요하게 생성된 객체
• 기타 등등 (and so forth)
2. 다음의 언어들을 지원한다.
• 그 외 (Apex, VisualForce, PLSQL, …)
PMD Software verification
SonarQube, PMD, FindBugs0102
• PMD에 기본적으로 포함된 도구.
• 중복된 코드를 잡아낸다.
• Java, Javascript, Python, C, C++, Groovy, PHP 등에 적용할 수 있다.
PMD 소개
CPD (Copy-Paste-Detector)
PMD Software verification
SonarQube, PMD, FindBugs0102PMD 소개
Plugin Support
PMD Software verification
SonarQube, PMD, FindBugs0102PMD 사용
1. Rule 지정하기 (rules.xml)
PMD Software verification
SonarQube, PMD, FindBugs0102PMD 사용
1. Rule 지정하기 (rules.xml)
PMD Software verification
SonarQube, PMD, FindBugs0102PMD 사용
2. 소스코드 만들기 (Main.java)
PMD Software verification
SonarQube, PMD, FindBugs0102PMD 사용
3. 정적분석
FindBugs
0103FindBugs 소개Software verification
SonarQube, PMD, FindBugs
FindBugs
0103FindBugs 소개Software verification
SonarQube, PMD, FindBugs
• 소스코드에 문제가 될 수 있는 부분을 찾는 Static Analysis
• Compile된 Byte Code 기반으로 Bug의 패턴을 찾아 자동으로 알려줌
FindBugs
FindBugs
0103FindBugs 소개Software verification
SonarQube, PMD, FindBugs
Java 프로그램에서 100여 가지의 잠재적인 에러 타입을 찾아주며,
Scariest, Scary, Troubling, Concern 등으로 구분하여 점수(Rank)가 주어진다.
FindBugs
FindBugs
0103FindBugs 소개Software verification
SonarQube, PMD, FindBugs
• *.java파일이 아닌 *.class 오브젝트 코드를 분석한다.
• Byte Code 기반으로 분석 진행한다.
FindBugs
FindBugs
0103FindBugs 소개
다양한 Bugs들을 찾아준다.
Software verification
SonarQube, PMD, FindBugs
ETC Software verification
SonarQube, PMD, FindBugs0104
# IDE : IntelliJ with...- Unit Test : JUnit Framework- Build Tool : Gradle- Static Analysis Tools : FindBugs, PMD, SonarQube*
# Configuration Management Tool(with code repository) : GitHub
# Issue Management Tool :Redmine(with Requirement Management Tool : Redcase)*
# Continuous Integration Tool : Jenkins*
# Collaboration Messenger : Slack
* Server installation is required.
CTIP 환경 정리