• SWE(Software Engineer) ◦ 기능 개발 ◦ Unit Test 작성 • SET(Software Engineer in Test) ◦ Unit Test 작성 ◦ Integration Test, End to End Test 작성 ◦ 테스트 인프라 개발 • TE(Test Engineer) ◦ 품질에 관계된 모든 것을 감독 ◦ 사용자 관점의 접근
설계 문서 작성 설계 문서 리뷰 기능 구현 설계 문서 업데이트 자동화 테스트 계획 코드 리뷰 Mock, Fake 구현 테스트 인프라 개발 테스트 코드 작성 SWE SET 종합적인 퀄리티 검토 취약점, 호환성 검토 SWE, PM, SET 조율 테스트 케이스 생성 및 수행 TE
• 피쳐 개발팀 중심의 테스트 • QA는 개발 시작부터 끝까지를 감독 → Quality Assistant • 개발팀 가이드 라인 ◦ 다른 팀들이나 베타 테스트, 유저를 이용해서 버그를 찾으려고 하면 안 됨 ◦ 항상 배포 가능하도록 코드를 작성해야 함 ◦ QA나 다른 팀에 의존하지 않고 스스로 테스트 코드를 작성해야 함 ◦ 컨텍스트를 유지하고, 변화를 만들며, 결과를 보장해줘야 함
자동화는 Scalability 핵심 • Manual Test는 Scalable 하지 않음 • 테스트 자동화에 대한 프로세스 확립 필요 • 테스트 작성은 개발자의 업무 중 하나 • Unit Test > Integration Test > E2E Test 순서로 작성 ◦ 구글은 내부적으로 7:2:1 비율 가이드
정의 및 테스트 계획 PM Feature Developer Test Case 작성 및 리뷰 Manual Test QA 기능 개발 개발 테스트 Unit Test, Integration Test, E2E Test 작성 QA is failure Deploy Operating Developer 테스트 인프라 고도화 CI / CD 지원 Integration Test, E2E Test 지원
주요 요건 기획 PM Developer 세부 요건 논의 기능 개발 Manual Test QA 개발 테스트 Unit Test 작성 Test Case 작성 QA is failure Deploy Operating Developer CI / CD 지원 Manual Test 중심의 QA - High Cost - Not Scalable - 리소스 부족으로 기획 및 개발 단계에 참여가 어려움 프로세스 현황
주요 요건 기획 PM Developer 세부 요건 논의 기능 개발 Manual Test QA 개발 테스트 Unit Test 작성 Test Case 작성 QA is failure Deploy Operating Developer CI / CD 지원 개발 이전 요건 정의 부족 - 요건 디테일 부족 - PM 리소스 부족 프로세스 현황
주요 요건 기획 PM Developer 세부 요건 논의 기능 개발 Manual Test QA 개발 테스트 Unit Test 작성 Test Case 작성 QA is failure Deploy Operating Developer CI / CD 지원 개발 이후의 Test Case 작성 - 개발자는 이상적인 시나리오에 몰입 - 예외 상황에 대한 고려 부족 - 개발 테스트가 풍부하게 되지 않음 프로세스 현황
주요 요건 기획 PM Developer 세부 요건 논의 기능 개발 Manual Test QA 개발 테스트 Unit Test 작성 Test Case 작성 QA is failure Deploy Operating Developer CI / CD 지원 Integration, E2E 테스트 프로세스 부재 - 별도의 프로세스가 없는 상황 - 전체적인 스킬 셋이 부족 - 인프라 부족 프로세스 현황
요건 기획 PM Developer 세부 요건 논의 Test Case 작성 Manual Test QA 기능 개발 개발 테스트 Unit Test 작성 QA is failure Deploy Operating Developer CI / CD 지원 테스트 인프라 구축 Integartion, E2E 테스트 교육 및 주요 사례 구축
요건 기획 PM Developer 세부 요건 논의 Test Case 작성 Manual Test QA 기능 개발 개발 테스트 Unit Test 작성 QA is failure Deploy Operating Developer CI / CD 지원 테스트 인프라 구축 Integartion, E2E 테스트 교육 및 주요 사례 구축 목표는 QA 팀 리소스 확보 - 개발 : 개념적 TDD → Test 실패 감소 - 운영 : 테스트 쉽도록 지원 → Test 속도 증가
요건 기획 PM Developer 세부 요건 논의 Test Case 작성 Manual Test QA 기능 개발 개발 테스트 Deploy Operating Developer Unit Test, Integration Test Test Case 리뷰 CI / CD 지원 테스트 인프라 구축 Integartion, E2E 테스트 교육 및 주요 사례 구축 Regression Test
요건 기획 PM Developer 세부 요건 논의 Test Case 작성 Manual Test QA 기능 개발 개발 테스트 Deploy Operating Developer CI / CD 지원 테스트 인프라 구축 Integartion, E2E 테스트 교육 및 주요 사례 구축 Regression Test Unit Test, Integration Test Test Case 리뷰 추가적인 QA 팀 리소스 확보 - 운영 : Regression Test → Test 실패 감소 - 개발 : 연동 테스트 추가 → Test 실패 감소 - QA : 테스트 케이스 리뷰 → Test 실패 감소
요건 기획 PM Developer 세부 요건 논의 Test Case 작성 Manual Test QA 기능 개발 개발 테스트 Deploy Operating Developer CI / CD 지원 테스트 인프라 구축 Integartion, E2E 테스트 교육 및 주요 사례 구축 Regression Test Unit Test, Integration Test, E2E Test Test Case 리뷰 기획 리뷰
요건 기획 PM Developer 세부 요건 논의 Test Case 작성 Manual Test QA 기능 개발 개발 테스트 Deploy Operating Developer CI / CD 지원 테스트 인프라 구축 Integartion, E2E 테스트 교육 및 주요 사례 구축 Regression Test Unit Test, Integration Test, E2E Test Test Case 리뷰 기획 리뷰 QA 활동 전파 - DEV, QA : E2E 테스트 추가 → Test 실패 감소 - QA : 기획 리뷰 → Test 실패 감소
정의 및 테스트 계획 PM Feature Developer Test Case 작성 및 리뷰 Manual Test QA 기능 개발 개발 테스트 Unit Test, Integration Test, E2E Test 작성 QA is failure Deploy Operating Developer CI / CD 지원 테스트 인프라 구축 Integartion, E2E 테스트 교육 및 주요 사례 구축 Regression Test
Feature Developer QA Operating Developer 테스트 이론 교육 테스트 인프라 구축 주요 로직 퀄리티 강화 기획 디테일 강화 테스트 활동을 고려한 프로젝트 관리 QA 인입 전 퀄리티 강화 테스트 자동화 강화 개발 프로세스 전반에서 QA 활동 테스트 메트릭 구축 테스트 다양화 테스트 자동화
Google Tests Software(Book) • 대규모 애자일에서의 QA(Spotify, Facebook, Atlassian, Google 사례와 함께) • Google Test Blog • Software Testing Facebook Google • Experience of Test Automation at Spotify • Hot Atlassian does QA • Atlassian - QA at speed • How Giants Test the Software - Google, Apple, Facebook, Amazon & Spotify • Software Testing In Startups: Challanges, Process and Strategies