본문 바로가기
정보처리기사

[소프트웨어 개발] 9. 테스트자동화/성능분석

by reve5 2022. 3. 16.

24. 다음 중 클린 코드 작성원칙으로 거리가 먼 것은?
① 누구든지 쉽게 이해하는 코드 작성
② 중복이 최대화된 코드 작성
③ 다른 모듈에 미치는 영향 최소화
④ 단순, 명료한 코드 작성

>> 정답 2번

29. 코드의 간결성을 유지하기 위해 사용되는 지침으로 틀린 것은?
① 공백을 이용하여 실행문 그룹과 주석을 명확히 구분한다.
② 복잡한 논리식과 산술식은 괄호와 들여쓰기(Indentation)를 통해 명확히 표현한다.
③ 빈 줄을 사용하여 선언부와 구현부를 구별한다.
④ 한 줄에 최대한 많은 문장을 코딩한다.


>> 정답 1번

 


39. 소스코드 품질분석 도구 중 정적분석 도구가 아닌 것은?
① pmd ② cppcheck
③ valMeter ④ checkstyle

>> 정답 3번


36. 클린코드 작성원칙에 대한 설명으로 틀린 것은?
① 코드의 중복을 최소화 한다.
② 코드가 다른 모듈에 미치는 영향을 최대화하도록 작성한다.
③ 누구든지 코드를 쉽게 읽을 수 있도록 작성한다.
④ 간단하게 코드를 작성한다.

>> 정답 2번

 

23. 소스코드 품질분석 도구 중 정적분석 도구가 아닌 것은?
① pmd ② checkstyle
③ valance ④ cppcheck

>> 정답 3번


39. 다음에서 설명하는 클린 코드 작성 원칙은?

- 한 번에 한 가지 처리만 수행한다.
- 클래스/메소드/함수를 최소 단위로 분리한다.

① 다형성 ② 단순성
③ 추상화 ④ 의존성

>> 정답 2번


https://www.youtube.com/watch?v=J3GLtxmUpkw&list=PLKpxllD6C8Cli4UZqnDG4_77OU6XeF6e_&index=9 


테스트 자동화
휴먼에러 > 사람이 테스트 하다가 실수하는 것
테스트 자동화 > 기기가 테스트 하는 것
자원(인력, 시간)감소, 품질보장, 일관성(객관적 평가), 시각적 표현, UI 없느 서비스도 테스트 가능
교육 및 학습을 위한 자원(시간, 비용)이 필요함
상용 소프트웨어인 경우 추가 비용이 필요함

유형별 테스트 자동화 도구
정적 분석 도구 실행 없이 코딩표준 및 복잡도 체크
테스트 실행 도구 스크립트 언어를 사용하여 테스트
+ 데이터 주도 접근 방식 : 다양한 데이터를 동일한 테스트 케이스로 반복 실행
+ 키워드 주도 접근 방식 : 데이터 + 키워드 (다양한 수행동작)
성능테스트 도구 처리량, 응답시간, 결과시간, 자원 사용률 측정
테스트 통제 도구 테스트 계획 및 관리, 결함관리, 형상관리
테스트 하네스 테스트를 위해 생성한 코드 및 데이터
+ stub 제어 모듈이 호출하느 모듈(하위)의 기능을 수행하는 모듈
+ driver 하위 모듈의 인터페이스 역할(호출 및 인자 전달)을 수행하는 모듈
+ test case 입력 및 기능에 대한 기대 결과를 명세한 명세서
+ test suites 테스트 케이스의 집합(시나리오와 달리 절차, 순서가 없음)
+ test script 자동화 테스트 절차에 대한 명세서
mock object 조건에 맞는 상황에 특정 기능이 수행되도록한 객체

단계별 테스트 자동화 도구

계획 > 요구사항 관리 > 요구사항정의 및 변경
설계 > 테스트 케이스 생성 > 테스트 케이스 지원
수행 > 1. 테스트 자동화 > 테스트 자동화 지원
> 2. 정적 분석 > 코딩표준, 복잡성, 런타임 오류 검증
> 3. 동적 분석 > 기능 실행(시뮬레이션)을 통해 검증
> 4. 성능테스트 > 시스템 처리능력 측정
> 5. 모니터링 > 시스템 자원 상태 확인
관리 > 1. 커버리지 분석 > 테스트 충분성 검증
> 2. 형상관리 > 테스트에 필요한 다양한 도구 및 데이터 관리
> 3. 결함 추적, 관리 > 결합 추적 및 관리 활동 지원

결함관리 프로세스
결함 > 이게 아닌데? 
결계와 다른 동작 및 결과, 업무내용과 불일치

계획 > 기록 > 검토 > 수정 > 재확인 > 보고서 작성

테스터가 결감관리 DB에 해당 결함을 등록하여 개발자가 검토하여 수정하고 테스터가 이를 확인하여 수정하거나 완료한다.
결함관리 관계자는 대시보드를 이용해서 누구나 확인할 수 있도록 서비스한다.

결함상태 추적
등록 open
검토 review > 보류 deferred or 해제 clarified or 할당 assigned

할당할 경우(개발자에게)
할당 assigned
수정 resolved
해결 closed

결함의 분류와 심각도
시스템 결함 : 어플리케이션 및 DB의 작동 불능(지연)
기능 결함 : 프로세스와 기능의 결과가 기대결과와 불일치
GUI 결함 UI 비일관성, 표시 오류 부정확한 메시지
문서 결함 문서, 메뉴얼의 불일치와 의사소통이 원활하지 않음

high 작동불능
medium 부정확한 기능으로 흐름에 영향
low 약간 불편, 오타 미출력 등


어플리케이션 성능 분석

처리량, 경과시간, 응답시간, 지원사용률
많이, 빠른 처리, 빠른 응답, 적은 자원

성능분석도구 + 시스템 모니터링 도구

성능 저하 원인
1. DB 연결 : 과도한 조회, 갱신, 불피요한 데이터 요청, 사용후 종료하지 않음, 커넥션 풀 사이즈가 너무 작거나 큼, 잘못된 트랜잭션
2. 내부 로직 : 인터넷 접속 불량, 업로드, 다운로드 상태불량, 예외처리 불량
3. 외부 환경설정 : 외부 작업에 장시간 지연, 메모리 크기 작게 설정, 네트워크 장비 오류 및 지연

해결 = clean code
clean code ; 가독성, 의존성 배제, 단순성, 중복성 최소화
bad code : 복잡함, 중복됨, 로직 서로 얽혀 있음
 

댓글