-
이전글
2020/04/26 - [2020년도 상반기/정처기] - [2020 정보처리기사 실기] Section 07. 애플리케이션 테스트 관리(3/4)
결함 관리
1. 결함이란
소프트웨어가 개발자가 설계한것과 다르게 동작하거나 다른 결과를 발생시키는 것
2. 결함 관리 프로세스
3. 결함 관리 측정 지표
- 결함 분포 : 모듈/컴포넌트의 특정 속성에 해당하는 결함 수 측정
- 결함 에이징 : 특정 결함 상태로 지속되는 시간 측정
- 결함 추세 : 테스트 진행 시간에 따른 결함 수의 추이 분석
4. 결함 추적 순서
5. 결함 분류
- 시스템
- 기능
- GUI
- 문서
6. 결함 심각도
- High : 프로세스를 진행할 수 없도록 만드는 결함
- Medium : 시스템 흐름에 영향을 미침
- Low : 시스템 흐름엔 영향을 미치지 않음
또는
- Critical
- Major
- Normal
- Minor
- Simple
7.결함 관리 도구
- Mantis : 단위별 작업 내용을 기록할 수 있음
- Trac : 결함을 통합하여 관리 가능
- Redmine : 프로젝트 관리 및 결함 추적 가능
- Bugzila : 결함을 지속적으로 관리 가능
애플리케이션 성능 분석
1. 성능 측정 지표
- 처리량
- 응답 시간 : 애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간
- 경과 시간 : 애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
- 자원 사용률
2. 성능 테스트 도구
- JMeter : HTTP,FTP등 다양한 프로토콜 지원, Cross-Platform
- LoadUI : 사용자편리성이 강화됨, HTTP,JDBC등 다양한 프로토콜 지원, Cross-Platform
- OpenSTA : HTTP,HTTPS 프로토콜에 대한 부하 테스트 및 생산품 모니터링 도구, Windows
3. 시스템 모니터링 도구(둘다 Crossplatform)
- Scouter : 단일 뷰 통합/실시간 모니터링, 튜닝에 최적화된 인프라 통합 모니터링 도구
- Zabbix : 웹기반 서버, 서비스, 애플리케이션 등의 모니터링 도구
4. 성능 저하 현상을 발생시키는 주요 요인
- DB에 필요이상의 많은 데이터 요청
- DB Lock이 해제되기를 기다리면서 애플리케이션 대기/타임아웃
- Connection Pool의 크기를 너무 작거나 크게 설정
- JDBC/ODBC 같은 미들웨어를 사용한 후 종료하지 않아 Connection Leak 발생
- 트랜잭션 Commit되지 않고 Connection Pool에 반환되거나 잘못된 코드로 인해 불필요한 Commit 자주 발생
- 인터넷 접속 불량으로 Server SOcket에 쓰기는 지속되나 클라이언트에서 정상 읽기 수행이 불가
- 대량의 파일 업로드 및 다운로드로 처리시간 지연
- 트랜잭션 처리 중 외부 호출이 장시간 수행/타임아웃
- 네트워크 관련 장비 간 데이터 전송이 실패/전송 지연으로 데이터 손실
5. 성능 분석 절차 (키워드만)
- 성능 테스트 도구, 시스템 모니터링 도구 유형 파악 및 특징 정리
- 성능 점검 계획서 작성
- 테스트 케이스 작성
- 테스트 수행
- 테스트 결과 분석
- 성능 저하 요인 분석
애플리케이션 성능 개선
1. 소스 코드 최적화
최적화는 Bad Code를 배제하고, Clean Code로 작성하는 것으로 Clean 코드의 작성 원칙은 다음과 같음
- 가독성
- 단순성
- 의존성 배제
- 중복성 최소화
- 추상화 : 상위 클래스/메서드/함수에서는 간략하게 애플리케이션의 특성을 나타내고, 상세 내용은 하위클래스/메서드/함수에서 구현
2. 소스 코드 최적화 유형
- 클래스 분할 배치 : 클래스의 응집도를 높이고 크기를 작게 작성
- Loosely Coupled : 클래스간 의존성 최소화
- 코딩 형식 준수
- 줄 바꿈 사용
- 개념적 유사성이 높은 종속 함수 사용
- 호출하는 함수는 선배치, 호출되는 함수는 후배치
- 지역 변수는 각 함수의 맨 처음에
- 좋은 이름 사용
- 적절한 주석문
3. 소스 코드 품질 분석도구
- 정적 분석 도구
- pmd,cppcheck,SonarQube,ccm 등
- 동적 분석 도구
- Abalanche, Balgrind 등
4. 소스 코드 품질 분석 도구의 종류
- pmd(Linux, Windows): 결함을 유발할 수 있는 코드 검사
- cppcheck(Windows) : C/C++ 코드에 대한 메모리 누수, 오버플로우 등 분석
- SonarQube(CrossPlatform) : 소스 분석 통합 플랫폼
- Checkstyle(CrossPlatform) : Java코드에 대해 소스 코드 표준을 따르고 있는가?, 다양한개발도구에 통합하여 사용 가능
- ccm(CrossPlatform) : 다양한 언어의 코드 복잡도 검사
- cobertura(CrossPlatform) : java의 소스코드 복잡도 분석 및 테스트 커버리지를 측정
- Avalanche(Linux,Android) : Valgrind 프레임워크 및 STP 기반 구현
- Valgrind(CrossPlatform) : 프로그램 내에 존재하는 메모리 및 쓰레드 결함 분석
5. 애플리케이션 성능 개선 방법
- 소스 코드 최적화 기법 사용
- 개발 프레임워크의 코딩 표준 설정
- 추상화 된 자료구조 작성, Loosely Coupled의 코드 작성
- 아킥텍처 조정을 통해 성능 개선
- Factory Method Patthern을 이용하여 객체의 생성과 사용을 분리해 의존성 최소화
- 프로그램 호출 순서 조정을 통한 성능 개선
- 서로 관련된 내용은 세로로 가깝게 작성해 밀집도를 높임
- 유사성이 높은 함수나 코드 가깝게 배치
- 호출하는 함수 선코딩, 호출되는 함수 후배치
- 소스코드 품질 분석 도구를 활용
- 메모리 사용 최소화를 통한 성능 개선
- String > StringBuffer,StringBuilder으로 수정
- 반복 루프내 불 필요한 메서드의 호출이 반복되지 않도록
- 입/출력 발생 최소화를 통한 성능 개선
- 메모리 사용 최소화를 통한 성능 개선
- System.out.println()사용하지 말것. > Log4j 사용
다음글
2020/04/28 - [2020년도 상반기/정처기] - [2020 정보처리기사 실기] Section 08. SQL 응용(DDL)
'2020년 > 정처기' 카테고리의 다른 글
[2020 정보처리기사 실기] Section 08.SQL 응용(DCL) (0) 2020.04.28 [2020 정보처리기사 실기] Section 08. SQL 응용(DDL) (0) 2020.04.28 [2020 정보처리기사 실기] Section 07. 애플리케이션 테스트 관리(3/4) (0) 2020.04.26 [2020 정보처리기사 실기] Section 07. 애플리케이션 테스트 관리(2/4) (0) 2020.04.26 [2020 정보처리기사 실기] Section 07. 애플리케이션 테스트 관리(1/4) (0) 2020.04.22