16
Static Analysis Report for Team B4 Project Team Team 4 Latest update on: 2020-06-17 Team Information 201410546 김태형 201611251 공민정 201611276 이규은 201611309 최지현

Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

Static Analysis Report for Team B4

Project Team

Team 4

Latest update on:

2020-06-17

Team Information

201410546 김태형

201611251 공민정

201611276 이규은

201611309 최지현

Page 2: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

Table of Contents

1. Static Analysis

1.1 Overview

1.2 Bugs

1.3 Vulnerability

1.4 Code Smells

1.5 Coverage

Page 3: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

1.1 Overview

- 위 결과에서 Blocker-Critical-Major issue 를 중심으로 false positive / duplicated rule 을

확인하며 static analysis 를 진행.

Page 4: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

1.2 Bugs

Sonarqube url:

http://34.204.179.138/project/issues?id=B4Project&resolved=false&types=BUG

Blocker(2)

(예시)

Thread 동기화 관련 위험성이 존재한다.

Major(17)

Page 5: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

(예시)

정수형 데이터 타입인 long/int 의 결과값은 항상 정수형 데이터 타입 long 이다.

사용하지 않는 필드들이 존재한다.

Page 6: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

Thread 동기화 관련 위험성이 존재한다.

Minor (3)

(예시)

올바른 ClassLoader 관련

Page 7: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

1.2 Vulnerability

Sonarqube url:

http://34.204.179.138/project/issues?id=B4Project&resolved=false&resolved=false&types=VUL

NERABILITY

Critical (3)

(예시)

multi-thread system 에서 인자를 직접 넘겨줄 때, 값이 변하지 않는지 주의해야 한다.

Page 8: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

Minor (66)

(예시)

접근 제한자를 설정하지 않았다.

e.printStackTrace() 대신 logger 사용.

Page 9: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

1.4 Code smell

Sonarqube url:

http://34.204.179.138/project/issues?id=B4Project&resolved=false&types=CODE_SMELL

Blocker (3)

(예시)

Catch 하지 않는 exception

Page 10: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

Critical (106)

(예시)

빈 if 문이 존재함.

Page 11: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로
Page 12: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

If … else if 문은 else 문으로 끝나야 한다. (exception 처리)

final 인 constant 의 이름은 대문자로 표시해야 함.

Page 13: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

depth 가 3 을 넘어가는 코드는 지양해야 함.

Major (846)

Page 14: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

(예시)

static value 만 포함하는 utility class 는 public constructor 를 가질 필요가 없음.

Exception 을 throw 하면 handling 을 해주어야 함.

Class 에는 constructor 가 존재해야 함.

Page 15: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

Minor (172)

(예시)

Static final value 를 package private level scope 에 선언한다.

Page 16: Static Analysis Report for Team B4dslab.konkuk.ac.kr/Class/2020/20SV/Team Project/2ND/[T4... · 2020-06-17 · 1.1 Overview - 위 결과에서 Blocker-Critical-Major issue를 중심으로

1.5 Code Coverage

1) intelliJ > junit

SleepingTime 을 제외한 모든 class 에서 cover 되지 않은 method 가 하나 이상 존재.

2) jenkins > jacoco

Sonarqube 의 xmlfinder 가 jacoco report 의 위치를 찾지 못해 직접 index.html 파일에

접근함.