jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기SangIn Choung
종종 관제적인 접근에서 매뉴얼 테스트에 대한 코드 테스트 커버리지를 측정하려는 시도가 있습니다. 이 접근이 맞는지 틀리는지에 대해서 할 말은 많지만 뒤로 미뤄두고, 무료 커버리지 도구인 Jacoco를 이용하여 서버 배포 후 매뉴얼 테스트에 코드 테스트 커버리지 측정 사례를 공유합니다.
서버측만 측정이 됩니다.
UI 테스트는 코드 영역(화이트박스스러운)보다는 명세(블랙박스) 기반의 테스트 목적을 갖는 테스트 유형입니다.
다양한 테스트 접근과 유형을 가져가지 않기 때문에
테스트의 목적과 그 과정, 결과를 제대로 매핑하지 못합니다.
이 테스트 커버리지 측정에 앞서 적절한 테스트 전략과 계획을 세워야 합니다.
회사 내부 교육(소개)용으로 만든
현재 팀이 일하고 있는 프로세스를 정리한 자료 - 의료 소프트웨어 제품
- Dev & Test Process(V-Model)
1) Review / Planning
2) Test Execution
3) Other types of Testing
4) Release / Operation
예전에 인턴하면서 프로젝트해서 만든 자료인데 공유하고 싶어서 올립니다.
한국어로된 자료가 별로 없더라구요.
많은 레퍼런스 보고 만든 문서인데 혹시 필요하신분 있으면 참고하세요.
물론 이건 표준이고 현실에서는 표준을 따르지 않을 때도 많습니다.
프로젝트마다 테스트 강도를 조절하는 것이 좋다고 생각합니다.
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기SangIn Choung
종종 관제적인 접근에서 매뉴얼 테스트에 대한 코드 테스트 커버리지를 측정하려는 시도가 있습니다. 이 접근이 맞는지 틀리는지에 대해서 할 말은 많지만 뒤로 미뤄두고, 무료 커버리지 도구인 Jacoco를 이용하여 서버 배포 후 매뉴얼 테스트에 코드 테스트 커버리지 측정 사례를 공유합니다.
서버측만 측정이 됩니다.
UI 테스트는 코드 영역(화이트박스스러운)보다는 명세(블랙박스) 기반의 테스트 목적을 갖는 테스트 유형입니다.
다양한 테스트 접근과 유형을 가져가지 않기 때문에
테스트의 목적과 그 과정, 결과를 제대로 매핑하지 못합니다.
이 테스트 커버리지 측정에 앞서 적절한 테스트 전략과 계획을 세워야 합니다.
회사 내부 교육(소개)용으로 만든
현재 팀이 일하고 있는 프로세스를 정리한 자료 - 의료 소프트웨어 제품
- Dev & Test Process(V-Model)
1) Review / Planning
2) Test Execution
3) Other types of Testing
4) Release / Operation
예전에 인턴하면서 프로젝트해서 만든 자료인데 공유하고 싶어서 올립니다.
한국어로된 자료가 별로 없더라구요.
많은 레퍼런스 보고 만든 문서인데 혹시 필요하신분 있으면 참고하세요.
물론 이건 표준이고 현실에서는 표준을 따르지 않을 때도 많습니다.
프로젝트마다 테스트 강도를 조절하는 것이 좋다고 생각합니다.
서버단에 비해 상대적으로 UI는 분석 및 테스트 수행 여부를 파악하기 쉽지 않습니다. 웹 UI의 HTML 또는 XML 형태의 엘리멘트와
다양한 이벤트들을 정적으로 분석하고 이를
1) 테스트 대상으로 활용
2) 개발완료 여부, 표준 준수 여부 등을 검사
3) 개발 완료 이후 변경 부분 히스토리 관리
등으로 활용한 사례를 공유합니다
저는 핀테크 서비스 개발 프로젝트에 참여하여 CI 구축과 QA 자동화 부분 개발을 담당하였습니다.
프로젝트가 시작하면 수 많은 개발자들과 기획자 그리고 QA 들이 다투는 것은 빈번한 일상입니다..
바쁜 개발 과정에서 기본적인 로그인 함수의 구현을 계속해서 체크해야 하는 것은 매우 불편하고 번거롭죠.
Selenium과 Jenkins를 통해 다음과 같은 상황을 자동화하여 개발자들과 QA/기획자들간의 갈등을 줄이고자 합니다.
스크린샷 중 가린부분들은 현재 회사 프로젝트 유출 방지를 위한 것이니 너그러이 용서해주시길..
KSUG , 아꿈사에서 발표한 신기술 도입 가이드 입니다.
신기술에 대해서 조직에 도입할 때에는 왜 도입해야 하는지? 라는 질문에 대답을 해야 하고, 그 질문에 대해서 이 도구나 기술이 가장 적합하다 라고 이야기 할 수 있어야 합니다. 그 내용에 대해서 경험을 공유합니다.
서버단에 비해 상대적으로 UI는 분석 및 테스트 수행 여부를 파악하기 쉽지 않습니다. 웹 UI의 HTML 또는 XML 형태의 엘리멘트와
다양한 이벤트들을 정적으로 분석하고 이를
1) 테스트 대상으로 활용
2) 개발완료 여부, 표준 준수 여부 등을 검사
3) 개발 완료 이후 변경 부분 히스토리 관리
등으로 활용한 사례를 공유합니다
저는 핀테크 서비스 개발 프로젝트에 참여하여 CI 구축과 QA 자동화 부분 개발을 담당하였습니다.
프로젝트가 시작하면 수 많은 개발자들과 기획자 그리고 QA 들이 다투는 것은 빈번한 일상입니다..
바쁜 개발 과정에서 기본적인 로그인 함수의 구현을 계속해서 체크해야 하는 것은 매우 불편하고 번거롭죠.
Selenium과 Jenkins를 통해 다음과 같은 상황을 자동화하여 개발자들과 QA/기획자들간의 갈등을 줄이고자 합니다.
스크린샷 중 가린부분들은 현재 회사 프로젝트 유출 방지를 위한 것이니 너그러이 용서해주시길..
KSUG , 아꿈사에서 발표한 신기술 도입 가이드 입니다.
신기술에 대해서 조직에 도입할 때에는 왜 도입해야 하는지? 라는 질문에 대답을 해야 하고, 그 질문에 대해서 이 도구나 기술이 가장 적합하다 라고 이야기 할 수 있어야 합니다. 그 내용에 대해서 경험을 공유합니다.
AgitarOne은 Java로 개발중인 Eclipse 프로젝트에 자동화된 단위 테스트의 환경을 제공하여 테스트 시간을 대폭 단축 시켜 개발 비용을 절감하게 하며, 작성된 소스 코드들이 실질적으로 수행되는지 명확히 파악할 수 있도록 하여 소스 코드의 품질을 향상시켜 줄 수 있는 Java 개발자의 단위 테스트 자동화 솔루션 입니다.
상업적 이용 및 출처없는 무단전재를 금합니다.
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일의 스크럼, XP에 대한 기본적인 소개와 스크럼 팀 안에서 테스트 역할자로써 사용자 스토리 리뷰, 테스트 설계, 짝 테스트, 테스트 자동화 등에 대한 내용을 사례 기반으로 소개하고 있습니다.
16. Testopia적용 범위 테스트 계획 수립 테스트 수행 테스트 결과 검증 2. 자동화 지원도구 소개 II 테스트 대상 클래스 선정 테스트 클래스 생성 테스트 데이터 생성 테스트 결과 보고서 테스트 원칙/정책 수립 테스트 리소스/환경 로딩 테스트 커버리지 단위테스트 실행
17. ? 테스트 Testopia적용 모델(CTIP 연계) CTIP 개발 프로세스 개발자 PC 개발서버 컴파일 2 테스트 코드 생성 / 테스트 개발자 WAS WAS 패키징 1 3 Eclipse 테스트 성공시 소스 + 테스트 코드 형상 관리 6 빌드서버 5 테스트 성공시 소스 배포 형상관리 2. 자동화 지원도구 소개 III 4 빌드 관리 배포 * CTIP: Continuous Test and Integration Platform
18. 3. 현실적 수준 - 사례 환경 인터뷰 최근 프로젝트의 단위테스트 요구사항 : 각기 달라요! A Project (UI 없는 Java 시스템) 우리는 단위테스트를 직접 수행할 열의가 있습니다. 그런데, 가장 최적의 테스트 생성 표준 방안과 실행환경은 무엇일까요? B Project (RIA UI/Spring Framework 기반 웹 시스템) 우리는 400여 화면을 개발해야 하고(더 증가할 수도 있습니다), 한 화면당 수십 가지 경우의 수가 존재 합니다. 이런 경우 어떻게 단위테스트를 해야 하나요? C Project (RIA UI/ 개발기간은 3개월인 웹 시스템) 우리는 엄청난 속도로 모든 개발을 완료해야 합니다. 이전 프로젝트에서 일부 개발자가 경험했던 방식으로 직접 테스트 케이스를 만들도록 시키려는데, 반발이 예상됩니다. 더 좋은 방식이 있을까요?
19. 3. 현실적 수준 - 접근1 : 자동화 수준 각 요소별 자동화 대상과 지원 범위 테스트 케이스 생성 Eclipse 개발환경에서 4Click으로 jUnit 실행 클래스 생성 Ant로 테스트 대상에 대해서 일괄적 생성 Method Signature에 따른 템플릿 기반 테스트케이스 생성 테스트 데이터 생성 Properties의 기본값 활용 VOFactory, Excel기반으로 다양한 테스트케이스 관리 개발자의 UI 테스트 케이스 재사용 (송/수신 로그 활용) 자동화 테스트 실행 및 점검 CTIP 환경에서 주기적으로 실행, 결과 보고서 생성
20. 3. 현실적 수준 - 접근2 : 모니터링 반복 테스트 Feedback(테스트 품질 관리) 테스트 결과 보고 테스트 커버리지 기타 Software Metric 지표 측정
31. 3. 현실적 수준 - 접근3 : 현장의 눈높이 II 해당 프로젝트의 수준에 따른 단계적 접근 위험기반 단위테스트 전략 기반으로 테스트 우선순위 선정 단위테스트 코드 작성 Example 테스트가 가능한 영역 테스트가 수행되어야 하는 영역 현재 자원으로 테스트 가능한 영역 Cost and Quality Trade-off
32. 4. 나오는 말 시사점 시작점의 고민 누구에게 어떤 기능을 제공할 Tool 인가? 누가 어떤 용도로 사용할 Tool 인가? 세상에 기여할 욕심으로 프로젝트 수준에 맞는 단계적 확산 전략 지속적 모니터링, 밀착 지원을 통해 도구 사용 습관화 적응에 시간이 걸리는 훌륭한 제품 보다는 편하게 조금씩 개선하도록 지원 개발자는 또 다른 툴의 Beta Tester가 되기를 원하지 않는다. 현장에서 배운다 자동화 요구수준, 기능/범위의 유연성 지원
33. 4. 나오는 말 Testopia지향점 : 누구를 위한 Utopia인가? 개발자 : 내가 짜야하는 단위테스트 코드를 쉽고 간단하게 SA : 단위테스트 코드 작성을 별 고민 없이 도입!! QA : 테스트 강화를 통한 품질 확보 PM : 납기 준수, 믿을만한 개발/테스트 진척도 Test Engineer : 비즈니스 테스트때 단순 오류 이상의 테스트 가능 테스트 코드 작성은 테스트의 재 사용성을 높여주고 테스트에 대한 정량적 측정이 가능해지기 때문에 궁극적으로는 품질향상과 결함률 감소효과를 가져온다.