현장에서적용한살아있는 테스트자동화사례및팁 작성자 : 여용구 NAVER c NAVER Corp.
들어가는말
자기소개및주제에대해.. 주제선정의키워드 인사이트 거짓말하지않기 내것 Test Automation 이섹션을 TEST 라고한다면, 이섹션의성공의기준은 아, 한번해볼수있겠다 라는생각이들면성공! 3 / 17 회 SW Quality Insight
전반적인테스트절차
테스트절차 ( 전체 ) PLAN DESIGN TEST 배포모니터링 회고 Wrap-up 5 / 17 회 SW Quality Insight
테스트절차 PLAN / DESIGN 6 / 17 회 SW Quality Insight
테스트절차 PLAN / DESIGN (ACC (Attribute / Component / Capability) 접근방법 ) ACC (Attribute / Component / Capability) 접근방법 Google의 James Whittaker 가 10 Minutes Test Plan 을기치로접근한방법 시스템의가져야할속성 (Quality Attribute), 구성요소 (Building Block), 그리고구성요소가해당속성을달성하기위해가져야할능력인 Capability로시스템을분석하는방법. 7 / 17 회 SW Quality Insight
테스트절차 PLAN / DESIGN ( 탐색적테스팅접근방식 ) 8 / 17 회 SW Quality Insight
테스트절차 Test Sanity 테스트 QA 기능테스트 단위기능 시나리오 리그리션 비기능테스트 서버성능 FE 성능 보안검수 개발 보안검수 9 / 17 회 SW Quality Insight
테스트절차 배포모니터링 소스배포 오픈모니터링 QA 개발 10 / 17 회 SW Quality Insight
테스트절차 회고및 Wrap-up Plus Minus Interest 회고 Case Study 테스트패턴을만들어볼수있을까에대한고민에서시작 S.T.A.R.R 방식의문서 Situation (Context) Task Actions Result Reflections 11 / 17 회 SW Quality Insight
테스트절차 회고및 Wrap-up Bug Infographic 테스팅에서중요할수있는 big data는무엇일까? BUG를모아보자 Tableau public edition 을사용함. 테스트자동화대상추가 과제진행하면서자동화는현실적으로불가능 중요하고의미있는테스트가자동화보다더중요함. 리그리션테스트자동화셋으로추가함. 12 / 17 회 SW Quality Insight
자동화 ( 자둥이 ) 의하루 CLICK
OASIS 를활용한자동화
시작은 실환경의오류로부터 검색광고더보기의로그처리오류 특정질의에대해컬렉션노출오류 그리고.. 하반기에는 QA 팀의가장중요한 misson 으로보시고진행을부탁드려요! 15 / 17 회 SW Quality Insight
목표! GOAL~! real( 실환경 ) 에서간단히명확하게확인할수있는대상으로리그리션테스트셋을자동화하자 노출 / 클릭 / 과금에대한검증 질의패턴별노출에대한검증 16 / 17 회 SW Quality Insight
테스트자동화절차 시나리오선택 ui 시나리오 programming automation plan fitnesse test suite 작성 junit test case 작성 빌드 & 배포 fitnesse 실행 test run - 결과저장 - 로그 - 이미지캡처 주기적인수행 ci server - 매일 - 매주 결과리포팅 - wiki - mail 17 / 17 회 SW Quality Insight
툴 OASIS 사막의오아시스와같은회사님의선물오아시스 웹및모바일웹 / 앱에대한자동화에서사용할수있는자동화 API를 wrapping하여만든클래스 자동화스크립트를작성할때에쉽고편하게클래스의메소드를호출하여작성 WebDriver OASIS 18 / 17 회 SW Quality Insight
툴 - OASIS jenkins ci fitnesse junit sikuli api iedriver chromedirver firefoxdriver safaridriver operadriver htmlunitdriver selendroid iphonedriver jdbc file io http request (api) webdriver oasis 19 / 17 회 SW Quality Insight
툴 - OASIS : WebDriver / Selendroid / Sikuli WebDriver Selenium 2.0 web automation 영역전세계에서가장많이사용 google 에서지속적인업데이트관리 크로스브라우징환경지원 ( 각브라우저 driver) 모바일웹, 앱지원 (selendroid, iphone driver) UI 엘리먼트찾는방식 id, class, xpath, css selector 등 이미지식별방식을사용하여 UI 엘리먼트식별및사용 안드로이드의앱및모바일웹테스트자동화프레임워크 WebDriver API 를사용하여테스트작성 20 / 17 회 SW Quality Insight
툴 - FitNesses 지속적인업데이트관리 latest 20140418 acceptance testing framework collaboration tool wiki page 방식 SLIM mode 장점사용 21 / 17 회 SW Quality Insight
특징 보고서를보는사람중심의테스트결과 테스트목적을달성했는지를보여주는간략한테스트결과 ( 위키 ) 모바일디바이스의브라우져를통한모바일웹테스트자동화 + HTML 파싱과이미지식별의두가지방법모두를사용 + 테스트환경세팅 ( 전처리 / 후처리 ) 에대해자동화수행 22 / 17 회 SW Quality Insight
자동화구조 (Automation Testware Structure) - Static 23 / 17 회 SW Quality Insight
자동화구조 (Automation Testware Structure) - Dynamic OASIS 24 / 17 회 SW Quality Insight
DEMO 25 / 17 회 SW Quality Insight
Deep Dive : 스크립트들여다보기 - Hello Naver! 내용추가 브라우져크롬설정 브라우져열기 검색창클릭 계산기 입력후엔터 7, +, 2, = 클릭 덧셈결과검증 (assertion) 스크린캡쳐 OASIS 사용선언 주석처리 변수설정 26 / 17 회 SW Quality Insight
Deep Dive : 스크립트들여다보기 - Hello Naver! 27 / 17 회 SW Quality Insight
나도해보고싶다면? OASIS GitHub 나공유플랫폼에서는찾아볼수없습니다. 개별연락주시면성심성의껏대응해드립니다. Selenium 2.0 (with WebDriver) http://docs.seleniumhq.org/projects/webdriver/ Selendroid http://selendroid.io/ Sikuli / Sikuli Slides http://www.sikuli.org/ FitNesse http://www.fitnesse.org/ GenyMotion http://www.genymotion.com/ Jenkins http://jenkins-ci.org/ Cubrid http://www.cubrid.com/zbxe/home 28 / 17 회 SW Quality Insight
WebDriver + Cucumber 를활용한자동화
목표! GOAL~! 체크아웃시나리오에대한자동화 구매자의행위와 판매자의행위를엮어체크아웃에서발생할수있는주문 / 클레임시나리오에대한검증 30 / 17 회 SW Quality Insight
툴 Ruby 기반 Cucumber (BDD) Capybara / WebDriver (FrontUI) Savon (SOAP Request) 31 / 17 회 SW Quality Insight
특징 BDT (Behavior Driven Test) 시나리오 (Feature) 작성 정의되지않은 Step 얼럿 해당 Step 구현 구매자의액션은 UI 테스트로작성하고, 판매자의액션은 API 테스트로검증함. 구매자액션 주문, 구매확정, 클레임요청등 판매자액션 발송처리, 클레임처리등 평문형식의시나리오 (Feature) 자체가서비스스펙이해에도움을줄수있음. 32 / 17 회 SW Quality Insight
자동화구조 (Automation Testware Structure) - Static 33 / 17 회 SW Quality Insight
자동화구조 (Automation Testware Structure) - Dynamic 34 / 17 회 SW Quality Insight
DEMO 35 / 17 회 SW Quality Insight
Deep Dive : 스크립트들여다보기 - Hello Naver! helloworld.feature 시나리오설명 Given / When / Then 구문작성 default_step.rb Given / When / Then 의 Step 구현 네이버접속 검색창에 계산기 입력후검색 7, +, 2, = 클릭 덧셈결과검증 (assertion) 36 / 17 회 SW Quality Insight
Deep Dive : 스크립트들여다보기 - Hello Naver! 37 / 17 회 SW Quality Insight
나도해보고싶다면? Cucumber http://cukes.info/ Capybara http://jnicklas.github.io/capybara/ Savon http://savonrb.com/ 38 / 17 회 SW Quality Insight
GUITAR 를활용한자동화
목표! GOAL~! 네이버메인의시보광고및타임보드에대한상시모니터링 네이버메인타임보드 매시 2분에예정된타임보드광고가정상노출되는지여부확인 네이버메인시보광고 매시정각에예정된시보광고가기존접속자와신규접속자에게정상으로노출되었는지여부확인 40 / 17 회 SW Quality Insight
툴 GUITAR (GUI Test Automation framework) 이미지기반웹테스트자동화프레임워크 한글스크립트사용 ( 대상과명령 ) 41 / 17 회 SW Quality Insight
특징 이미지식별을통한검증 플래시광고중에해당이미지컷이들어있는지확인 보고서를보는사람중심의테스트결과 테스트목적을달성했는지를보여주는간략한테스트결과 ( 위키 ) 42 / 17 회 SW Quality Insight
자동화구조 (Automation Testware Structure) - Static 43 / 17 회 SW Quality Insight
DEMO - 타임보드광고노출 44 / 17 회 SW Quality Insight
Deep Dive : 스크립트들여다보기 - Hello Naver! 대상 ( 파란색 ) 과명령 ( 빨간색 ) 브라우져 IE 열기 네이버접속 검색창클릭 계산기 입력후검색버튼클릭 7, +, 2, = 클릭 덧셈결과검증 (assertion) 스크린캡쳐 45 / 17 회 SW Quality Insight
Deep Dive : 스크립트들여다보기 - Hello Naver! 46 / 17 회 SW Quality Insight
나도해보고싶다면? GUITAR NAVER 개발자센터에공개되어있음 http://dev.naver.com/projects/guitar/ 47 / 17 회 SW Quality Insight
공유하고싶은자동화의팁!!
자동화의팁 자동화가 TESTING 의 Goal 이아닙니다. 사람이할수있는테스트에더욱집중할수있게해주는지원도구일뿐입니다. 작은것부터시작하십시오. (7 + 3 =?) 하나의툴또는프레임워크만을고집하지마십시오. 테스트결과를명확하게표현하십시오. 결과를볼사람들이이해할수있는방식으로표현하고, 기계가뱉어낸상세결과는필요할때만보도록숨기십시오. Test Automation Engineer ( 개발능력이좋은 ) 가같은조직에함께있으면좋습니다. 툴커스트마이징에대한요구사항을반영하여, Test Engineer 가쉽게스크립트를작성하도록도와주십시오. 내조직에서해야합니다. 아웃소싱은생각도마십시오. 자동화의동인 ( 트리거 ) 가필요합니다. 기존방식을버릴강력한무엇을찾으십시오. ( 평가시즌바로앞에떨어진상위조직장의명령등..) 49 / 17 회 SW Quality Insight
End of Document