스마트 모바일 환경에서의
품질관리 전략
프로젝트지원팀 I 남종인 / 한동준
개요

    스마트 모바일 환경에서의
     품질관리 전략




일하는 방식         제품 = App.
시장상황 및 전략




  시장은?        우리는?          품질은?

지나친 공급과잉 상태    차별화
                             차별화와
                            핵심가치에 대한
                            품질활동강화
높은 무료앱 비중     핵심가치



사용자의 소비형 패턴   지속적 공급         Agile하게
              (지속적인 업데이트)
                            일하는 법 지원
Index


                 스마트 모바일 환경에서의
                 품질관리 전략

        일하는 방식               제품 = App.



         Agile                   테스트




1. 활동     2. 지원도구 3. 테스트케이스 4. 테스트 자동화
1. Agile 하게 일하는 법
kth의 시도




kth에서는?

                짧게!



          함께!         구체적으
                       로!
kth의 시도, 그리고 열정과 변화



                   kth에서는?




열정                                                                       변화

 이미지 출처: http://philosophyforchange.wordpress.com, http://community.qlikview.com/blogs
Agile 하게 일하는데 주의해야 할 것들



           Caution!

Iteration 산출물이 구체적이고 확인 가능 한가?

Prototype이 개발된 내용을 포함하고 있는가?

확정된 최소한의 문서는 유지 관리되고 있는가?

역할별로 서로 잘 논의하고 있는가?

결정되는 회의를 하는가?
Agile 하게 일하는 방법



          Suggestion!

핵심기능들은 구체화 하고 Iteration 시작

진행중인 Iteration은 끝내고 변경

필요한 문서는 미리 정의

Iteration 별로 체크리스트 활용

회고에서 나온 개선방안은 반드시 적용하고 확인
2. 지원도구
지원도구



활동과 도구
지원도구



                  JIRA와 Confluence


                                            kth에서 Agile하게
Issue 트래커(ex : Mantis)
                                            일하는 방식을
                                             지원하는 도구
                                               2010년 대비
기업용 WIKI                                    3배 이상의 사용량 증가



※ 두 도구 모두 Atlassian사 유료 제품으로 User 수에 따라 가격정책을 정하고 있음, kth에서는 2010년 도입
JIRA 활용 예제



JIRA를 통한 Agile Process 관리사례




     대기                진행   Doing           완료
  Backlog/To-do   설계   개발           검증   Done/Closed


     N개           N개   N개           N개      N개
JIRA 활용 예제


   대기                진행   Doing           완료
Backlog/To-do   설계   개발           검증   Done/Closed


   N개           N개   N개           N개      N개
Confluence 활용 예제



    Confluence 활용사례 1
        요청/관리 및 현황공유
                       ※ C: Confluence / J: JIRA




C            C




J
Confluence 활용 예제



     Confluence 활용사례 2
         기획 및 커뮤니케이션 (Sketch board)

요구사항구분
            요구사항 상세화

                                           반영

               확정



               피드백
JIRA와 Confluence

  Intranet
                  LDAP
                  (User account info.)

Static Analysis
                                         Trusted Application
CI Server
                                            XML Template
                                         Gadget, Filtered data
      Hooking Tool
                             JIRA                                Conf.

SCM Server
3. 테스트 전략
테스트 어떻게 하시나요?




   기획의도             테스트

  19.8도
          알칼리 수

숙취 완화                혹
          쓴맛 완화      시?
 안전성
          브랜드 명
   병뚜껑
              라벨
          병
테스트케이스 작성 및 관리 방법



           Suggestion!
핵심기능 식별

핵심기능 특성 파악
  단순 조합 기능  Pairwise, OA, etc

  Flow 기능  Flow 도식화


중요도별 케이스 작성

반복 요소 자동화 검토
핵심기능 도식화



도식화의 효과

                     Ⓑ열받다
          ①     강아지B


   Ⓐ까불다
                 ②      ③
     강아지A

                       강아지C
              형제관계
                        Ⓒ열받다
핵심기능 도식화



          핵심기능 도식화

           화면A             화면A          화면B    화면C
 Client
                                  Setting


Network        Data x, y

          Status a         Status b
 Server
                 Processing
품질을 좌우하는 개발자
  개발자는 정보의 생산자

당신의 경험이 품질이 됩니다




      이미지출처: http://www.mastersoftrivia.com/blog, http://www.romania-insider.com
4. 스마트 모바일 앱
  테스트 자동화
주요 내용 및 대상




  주요내용
도구, 적용 방법, 좋았던 점, QA가   삽질한 것 공유

  대상
테스트 자동화를 준비하고 진행하고 있는 QA
자동화에 관심 있으며 적용하고 싶은 개발자
Index




kth의 테스트 자동화

앱 기능 테스트 자동화

서버 개발 테스트 자동화
kth의
테스트 자동화
테스트 자동화는 왜 해야하지?




  테스트 자동화 목적

수작업 테스트보다 저렴한 비용

반복을 자동으로

지속적인 통합에 대한 확신
비용으로 바라본 테스트 자동화



  수동              자동
  테스트            테스트
Testcase 작성       툴 도입
Testcase 수행     스크립트 작성

                  학습!!
kth의 테스트 자동화 고려사항


              주기적
             업데이트




Mobile APP            Server
언급하지 않는 내용



단위 테스트는 언급하지 않아요

           단위테스트는,
           개발자의 테스트
           CI와 Agile에서는 기본
           Continuous Integration




           QA는,
     QA는
           커버리지 목표 협의
     거들뿐
           테스트 기법 조언
단위 테스트가 궁금하다면…
앱 기능
테스트 자동화
앱 기능 테스트 자동화


숙련자가 기능 하나 자동화에 1.5시간 걸린다면…




   필요하지만 아직은 시기상조
서버 개발
테스트 자동화

푸딩얼굴인식새버전개발을예로…
알아 볼 것은?



서버 개발 테스트 자동화


   API 테스트

   성능 테스트

   정적 분석
API 테스트 자동화


   API 테스트, 왜 필요한가?
    새 버전이 출시되어도 기존버전을 유지 해야 함




V 1.0




V 2.0


                      Server
V 3.0
soapUI - API 테스트 자동화



 API 테스트에 좋은 soapUI


무료로 사용할 수 있는 테스팅 도구

SOAP 방식과 REST 방식 테스트 가능

시나리오 기반 테스트 가능
soapUI - API 테스트 자동화


QA도 할 수 있는 응답결과에 대한 간단한 검사
soapUI - API 테스트 자동화



무엇을 테스트 하면 되는가?


 기본은 API 예제 확인

 다양한 매개변수 처리 확인

 API 간 시나리오 처리 확인
알아 볼 것은?



서버 개발 테스트 자동화


   API 테스트

   성능 테스트

   정적 분석
성능 테스트 자동화



   성능테스트, 왜 필요한가?


  앱 사용자는 3초 안에 결과를 원함
  이를 위해선 API는 1초 이내 응답 필요


도구도 중요하지만 적절한 테스트   설계도 중요
loadUI - 성능 테스트 자동화


soapUI의 데이터를   그대로 사용할 수 있는 loadUI
알아 볼 것은?



서버 개발 테스트 자동화


   API 테스트

   성능 테스트

   정적 분석
정적 분석



    정적 분석, 왜 필요한가?


   냄새 나는 코드의 사전 제거
   프로젝트 코드 작성 표준의 역할


PMD는 사전 정의된 룰로 검증하는 오픈 소스 도구
PMD - 정적 분석



1.   300개의 룰을 엑셀로 정리
PMD - 정적 분석



2.   필요한 룰은 한글로 번역
PMD - 정적 분석



3.   QA, 개발자 둘러앉아 꼭 필요한 룰 재정의
PMD - 정적 분석



        4.   웹을 통한 룰 배포

     개별 배포 필요 없음
     룰 개선 관리가 쉬워짐
             IntelliJ


IP                           Maven




                        IP
PMD - 정적 분석



PMD 룰 번역 파일과 룰셋 파일을 공유




    룰 번역 파일: http://goo.gl/mqJ7D

    푸딩얼굴인식 룰셋 파일: http://goo.gl/DAAKF
푸딩얼굴인식 서버 개발 구조



      JUnit, Cobertura, PMD,
       JavaNCSS, JDepend
             Maven



                          J
                          E    S                  앱
                          N    O                  스
                                   soap
IDE          git          K    N                  프
                                    UI
                          I    A                  레
                          N    R                  소
                          S



           LoadRunner
개발자와 QA가 함께 고민하세요
Q&A



  3층 코스모스 홀에서, 경품도 있어요
  경품받기 테스트케이스
 TC #    사전조건    입력값          절차             예상 결과         실제 결과

                       1. 세션 종료 후 3층 코스모스
                                          1. 발표자와 의견을 주 1. 발표자와 의견을 주
                          홀을 찾는다
H3_001                                       고 받는다         고 받는다
                       2. 1번째로 발표자에게 입력값
                                          2. 경품을 받는다    2. 경품을 받는다
                          을 전달한다


                 궁금증   1. 세션 종료 후 3층 코스모스
                                          1. 발표자와 의견을 주 1. 발표자와 의견을 주
                          홀을 찾는다
H3_002   H3 참가    및                          고받는다          고 받는다
                       2. 2번째로 발표자에게 입력값
                                          2. 경품을 받는다    2. 경품을 받는다
                 조언       을 전달한다

                       1. 세션 종료 후 3층 코스모스
                                          1. 발표자와 의견을 주 1. 발표자와 의견을 주
                          홀을 찾는다
H3_003                                       고 받는다         고 받는다
                       2. 3번째로 발표자에게 입력값
                                          2. 경품을 받는다
                          을 전달한다
처음 질문이나 조언을 주신 2분께는 선물을 드려요


애자일 테스팅 번역본 2권
    (12월 출간 예정)
감사합니다.
         기업문화실 / 프로젝트지원팀 / PD
       남종인                     한동준
whddls76@kthcorp.com   handongjoon@gmail.com
                           @dongjoonhan

[H3 2012] 스마트모바일 환경에서의 App.품질관리전략

  • 2.
    스마트 모바일 환경에서의 품질관리전략 프로젝트지원팀 I 남종인 / 한동준
  • 3.
    개요 스마트 모바일 환경에서의 품질관리 전략 일하는 방식 제품 = App.
  • 4.
    시장상황 및 전략 시장은? 우리는? 품질은? 지나친 공급과잉 상태 차별화 차별화와 핵심가치에 대한 품질활동강화 높은 무료앱 비중 핵심가치 사용자의 소비형 패턴 지속적 공급 Agile하게 (지속적인 업데이트) 일하는 법 지원
  • 5.
    Index 스마트 모바일 환경에서의 품질관리 전략 일하는 방식 제품 = App. Agile 테스트 1. 활동 2. 지원도구 3. 테스트케이스 4. 테스트 자동화
  • 6.
    1. Agile 하게일하는 법
  • 7.
    kth의 시도 kth에서는? 짧게! 함께! 구체적으 로!
  • 8.
    kth의 시도, 그리고열정과 변화 kth에서는? 열정 변화 이미지 출처: http://philosophyforchange.wordpress.com, http://community.qlikview.com/blogs
  • 9.
    Agile 하게 일하는데주의해야 할 것들 Caution! Iteration 산출물이 구체적이고 확인 가능 한가? Prototype이 개발된 내용을 포함하고 있는가? 확정된 최소한의 문서는 유지 관리되고 있는가? 역할별로 서로 잘 논의하고 있는가? 결정되는 회의를 하는가?
  • 10.
    Agile 하게 일하는방법 Suggestion! 핵심기능들은 구체화 하고 Iteration 시작 진행중인 Iteration은 끝내고 변경 필요한 문서는 미리 정의 Iteration 별로 체크리스트 활용 회고에서 나온 개선방안은 반드시 적용하고 확인
  • 11.
  • 12.
  • 13.
    지원도구 JIRA와 Confluence kth에서 Agile하게 Issue 트래커(ex : Mantis) 일하는 방식을 지원하는 도구 2010년 대비 기업용 WIKI 3배 이상의 사용량 증가 ※ 두 도구 모두 Atlassian사 유료 제품으로 User 수에 따라 가격정책을 정하고 있음, kth에서는 2010년 도입
  • 14.
    JIRA 활용 예제 JIRA를통한 Agile Process 관리사례 대기 진행 Doing 완료 Backlog/To-do 설계 개발 검증 Done/Closed N개 N개 N개 N개 N개
  • 15.
    JIRA 활용 예제 대기 진행 Doing 완료 Backlog/To-do 설계 개발 검증 Done/Closed N개 N개 N개 N개 N개
  • 16.
    Confluence 활용 예제 Confluence 활용사례 1 요청/관리 및 현황공유 ※ C: Confluence / J: JIRA C C J
  • 17.
    Confluence 활용 예제 Confluence 활용사례 2 기획 및 커뮤니케이션 (Sketch board) 요구사항구분 요구사항 상세화 반영 확정 피드백
  • 18.
    JIRA와 Confluence Intranet LDAP (User account info.) Static Analysis Trusted Application CI Server XML Template Gadget, Filtered data Hooking Tool JIRA Conf. SCM Server
  • 19.
  • 20.
    테스트 어떻게 하시나요? 기획의도 테스트 19.8도 알칼리 수 숙취 완화 혹 쓴맛 완화 시? 안전성 브랜드 명 병뚜껑 라벨 병
  • 21.
    테스트케이스 작성 및관리 방법 Suggestion! 핵심기능 식별 핵심기능 특성 파악 단순 조합 기능  Pairwise, OA, etc Flow 기능  Flow 도식화 중요도별 케이스 작성 반복 요소 자동화 검토
  • 22.
    핵심기능 도식화 도식화의 효과 Ⓑ열받다 ① 강아지B Ⓐ까불다 ② ③ 강아지A 강아지C 형제관계 Ⓒ열받다
  • 23.
    핵심기능 도식화 핵심기능 도식화 화면A 화면A 화면B 화면C Client Setting Network Data x, y Status a Status b Server Processing
  • 24.
    품질을 좌우하는 개발자 개발자는 정보의 생산자 당신의 경험이 품질이 됩니다 이미지출처: http://www.mastersoftrivia.com/blog, http://www.romania-insider.com
  • 25.
    4. 스마트 모바일앱 테스트 자동화
  • 26.
    주요 내용 및대상 주요내용 도구, 적용 방법, 좋았던 점, QA가 삽질한 것 공유 대상 테스트 자동화를 준비하고 진행하고 있는 QA 자동화에 관심 있으며 적용하고 싶은 개발자
  • 27.
    Index kth의 테스트 자동화 앱기능 테스트 자동화 서버 개발 테스트 자동화
  • 28.
  • 29.
    테스트 자동화는 왜해야하지? 테스트 자동화 목적 수작업 테스트보다 저렴한 비용 반복을 자동으로 지속적인 통합에 대한 확신
  • 30.
    비용으로 바라본 테스트자동화 수동 자동 테스트 테스트 Testcase 작성 툴 도입 Testcase 수행 스크립트 작성 학습!!
  • 31.
    kth의 테스트 자동화고려사항 주기적 업데이트 Mobile APP Server
  • 32.
    언급하지 않는 내용 단위테스트는 언급하지 않아요 단위테스트는, 개발자의 테스트 CI와 Agile에서는 기본 Continuous Integration QA는, QA는 커버리지 목표 협의 거들뿐 테스트 기법 조언
  • 33.
  • 34.
  • 35.
    앱 기능 테스트자동화 숙련자가 기능 하나 자동화에 1.5시간 걸린다면… 필요하지만 아직은 시기상조
  • 36.
  • 37.
    알아 볼 것은? 서버개발 테스트 자동화 API 테스트 성능 테스트 정적 분석
  • 38.
    API 테스트 자동화 API 테스트, 왜 필요한가? 새 버전이 출시되어도 기존버전을 유지 해야 함 V 1.0 V 2.0 Server V 3.0
  • 39.
    soapUI - API테스트 자동화 API 테스트에 좋은 soapUI 무료로 사용할 수 있는 테스팅 도구 SOAP 방식과 REST 방식 테스트 가능 시나리오 기반 테스트 가능
  • 40.
    soapUI - API테스트 자동화 QA도 할 수 있는 응답결과에 대한 간단한 검사
  • 41.
    soapUI - API테스트 자동화 무엇을 테스트 하면 되는가? 기본은 API 예제 확인 다양한 매개변수 처리 확인 API 간 시나리오 처리 확인
  • 42.
    알아 볼 것은? 서버개발 테스트 자동화 API 테스트 성능 테스트 정적 분석
  • 43.
    성능 테스트 자동화 성능테스트, 왜 필요한가? 앱 사용자는 3초 안에 결과를 원함 이를 위해선 API는 1초 이내 응답 필요 도구도 중요하지만 적절한 테스트 설계도 중요
  • 44.
    loadUI - 성능테스트 자동화 soapUI의 데이터를 그대로 사용할 수 있는 loadUI
  • 45.
    알아 볼 것은? 서버개발 테스트 자동화 API 테스트 성능 테스트 정적 분석
  • 46.
    정적 분석 정적 분석, 왜 필요한가? 냄새 나는 코드의 사전 제거 프로젝트 코드 작성 표준의 역할 PMD는 사전 정의된 룰로 검증하는 오픈 소스 도구
  • 47.
    PMD - 정적분석 1. 300개의 룰을 엑셀로 정리
  • 48.
    PMD - 정적분석 2. 필요한 룰은 한글로 번역
  • 49.
    PMD - 정적분석 3. QA, 개발자 둘러앉아 꼭 필요한 룰 재정의
  • 50.
    PMD - 정적분석 4. 웹을 통한 룰 배포 개별 배포 필요 없음 룰 개선 관리가 쉬워짐 IntelliJ IP Maven IP
  • 51.
    PMD - 정적분석 PMD 룰 번역 파일과 룰셋 파일을 공유 룰 번역 파일: http://goo.gl/mqJ7D 푸딩얼굴인식 룰셋 파일: http://goo.gl/DAAKF
  • 52.
    푸딩얼굴인식 서버 개발구조 JUnit, Cobertura, PMD, JavaNCSS, JDepend Maven J E S 앱 N O 스 soap IDE git K N 프 UI I A 레 N R 소 S LoadRunner
  • 53.
  • 54.
    Q&A 3층코스모스 홀에서, 경품도 있어요 경품받기 테스트케이스 TC # 사전조건 입력값 절차 예상 결과 실제 결과 1. 세션 종료 후 3층 코스모스 1. 발표자와 의견을 주 1. 발표자와 의견을 주 홀을 찾는다 H3_001 고 받는다 고 받는다 2. 1번째로 발표자에게 입력값 2. 경품을 받는다 2. 경품을 받는다 을 전달한다 궁금증 1. 세션 종료 후 3층 코스모스 1. 발표자와 의견을 주 1. 발표자와 의견을 주 홀을 찾는다 H3_002 H3 참가 및 고받는다 고 받는다 2. 2번째로 발표자에게 입력값 2. 경품을 받는다 2. 경품을 받는다 조언 을 전달한다 1. 세션 종료 후 3층 코스모스 1. 발표자와 의견을 주 1. 발표자와 의견을 주 홀을 찾는다 H3_003 고 받는다 고 받는다 2. 3번째로 발표자에게 입력값 2. 경품을 받는다 을 전달한다
  • 55.
    처음 질문이나 조언을주신 2분께는 선물을 드려요 애자일 테스팅 번역본 2권 (12월 출간 예정)
  • 56.
    감사합니다. 기업문화실 / 프로젝트지원팀 / PD 남종인 한동준 whddls76@kthcorp.com handongjoon@gmail.com @dongjoonhan