회사 내부 교육(소개)용으로 만든
현재 팀이 일하고 있는 프로세스를 정리한 자료 - 의료 소프트웨어 제품
- Dev & Test Process(V-Model)
1) Review / Planning
2) Test Execution
3) Other types of Testing
4) Release / Operation
개발이 테스트를 만났을 때(Shift left testing)SangIn Choung약 6개 프로젝트 대상으로 초기부터 테스트 전담자가 테스트 전략 수립, 교육, 설계, 자동화 테스트, 짝 테스트 등으로 협업을 한 사례.
이를 통해 향후 테스트 전담자의 역할을 확대해 보고, 테스트 안에서 다양한 역할자를 정의해 보려고 함
(애자일) 테스트 계획서 샘플SangIn ChoungIn agile development, do we need a test plan documents?
Yes, this is an test plan sample with the traditional test plan template.
SW 테스트 프로세스& 메뉴얼_V 모델KU HUISEONG예전에 인턴하면서 프로젝트해서 만든 자료인데 공유하고 싶어서 올립니다.
한국어로된 자료가 별로 없더라구요.
많은 레퍼런스 보고 만든 문서인데 혹시 필요하신분 있으면 참고하세요.
물론 이건 표준이고 현실에서는 표준을 따르지 않을 때도 많습니다.
프로젝트마다 테스트 강도를 조절하는 것이 좋다고 생각합니다.
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드 SangIn Choungrest api test automation with Postman, newman, jenkins
rest api에 대해 Postman, newman+Jenkins로 테스트를 수행하고 자동화하는 가이드 입니다
Soap uiEPAM_Dnipropetrovsk_Testing_CommunityThis document provides an overview and instructions for using SoapUI, an open source testing tool. It discusses SoapUI's system requirements, key features like functional testing, security testing, load testing and test automation, and the technologies it supports including SOAP, REST, HTTP and JDBC. It also provides steps for creating a SoapUI project, adding REST services, test cases with different step types and assertions.
Selenium HandbookSuresh ThammishettyThe document is a guide to Selenium that discusses:
1. The history and types of Selenium including Selenium IDE, Remote Control, Core, and Grid.
2. How to install and use Selenium IDE with features like recording, commands, locators, and test suites.
3. An overview of Selenium commands and how to perform actions like clicking, typing, and selecting.
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)SangIn Choung2014년 사내 세미나에서 발표했던 애자일 테스트 사례 발표
기존의 테스트(인력)가 애자일에서 어떤 형태로 일하는지를 소개
테스트 자동화 외에 다른 관점을 가진 다른 역할자간의 협업이 핵심 메시지 입니다
[기본과정] 코드 테스트와 커버리지 기본 교육(개념)SangIn Choung코드레벨 테스트의 필요성과 테스트 커버리지에 대해 기본적인 수준에서 설명하고 있는 자료입니다. 개념 위주의 Basic 내용과 실습 위주의 Advanced 내용을 더해 개발자 교육을 목적으로 하고 있습니다
Selenium with javaGousalya RamachandranThe presentation answers your why, what and how questions on Selenium in simple and most convenient way to be understood by everyone
Spring BootJiayun ZhouThis document provides an overview of Spring Boot and some of its key features. It discusses the origins and modules of Spring, how Spring Boot simplifies configuration and dependency management. It then covers examples of building Spring Boot applications that connect to a SQL database, use RabbitMQ for messaging, and schedule and run asynchronous tasks.
Selenium topic 1- Selenium BasicITProfessional AcademyThis document provides an overview and introduction to a Selenium automation testing course offered by IT Professional Academy. The summary includes:
- IT Professional Academy is a team of highly skilled trainers that provide both classroom and online training in areas like software testing, big data, Linux, and more. They provide job assistance services.
- The Selenium automation testing course covers topics like introduction to automation testing, Selenium components, Selenium IDE, WebDriver, validations, assertions, framework development, and more.
- The document demonstrates using Selenium IDE for recording and playing back tests on a demo site. It also provides examples of locating elements, storing values, verifying tests, and converting recorded tests to Java code using WebDriver.
Spring boot jpaHamid GhorbaniThe document discusses Spring Boot, a framework for creating stand-alone, production-grade Spring based applications. It describes how Spring Boot allows creating projects quickly with features like embedded servers and auto-configuration. It then covers how to develop a basic Spring Boot web application including creating the project structure with Maven, adding controllers and properties files, and connecting to databases using Spring Data. Overall, the document provides an overview of Spring Boot and guidance on starting a Spring Boot web application project.
Python seleniumDucatSelenium is a powerful tool that manages web browsers by programs and automates browsers. It runs on all popular Operating System browsers, and its scripts are written in different languages, such as Python, Java, C#, Java etc.
Uber mobility - Build & ReleaseDhaval PatelSpeakers: Chirayu Krishnappa & Daniel Liem (Uber), Christian Legnitto (Pocketship), Jacek Suliga (LinkedIn), Robbert Van Ginkel & Gautam Korlam (Uber), Rachel Brindle (Pivotal Labs)
Tools for building and releasing mobile applications provided by Google and Apple are geared towards smaller mobile application development teams. However, once development teams start to grow, the requirement from your build and release tooling change drastically. This meetup was all about building & releasing mobile applications at scale: How does your build infrastructure need to evolve to support increasingly complex code-bases? How can you build an automated release pipeline that tracks every build and rolls out your mobile applications safely? What kind of unexpected problems can arise from adopting new technologies when you have a larger team?
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2tobewareAgitarOne은 Java로 개발중인 Eclipse 프로젝트에 자동화된 단위 테스트의 환경을 제공하여 테스트 시간을 대폭 단축 시켜 개발 비용을 절감하게 하며, 작성된 소스 코드들이 실질적으로 수행되는지 명확히 파악할 수 있도록 하여 소스 코드의 품질을 향상시켜 줄 수 있는 Java 개발자의 단위 테스트 자동화 솔루션 입니다.
(애자일) 테스트 계획서 샘플SangIn ChoungIn agile development, do we need a test plan documents?
Yes, this is an test plan sample with the traditional test plan template.
SW 테스트 프로세스& 메뉴얼_V 모델KU HUISEONG예전에 인턴하면서 프로젝트해서 만든 자료인데 공유하고 싶어서 올립니다.
한국어로된 자료가 별로 없더라구요.
많은 레퍼런스 보고 만든 문서인데 혹시 필요하신분 있으면 참고하세요.
물론 이건 표준이고 현실에서는 표준을 따르지 않을 때도 많습니다.
프로젝트마다 테스트 강도를 조절하는 것이 좋다고 생각합니다.
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드 SangIn Choungrest api test automation with Postman, newman, jenkins
rest api에 대해 Postman, newman+Jenkins로 테스트를 수행하고 자동화하는 가이드 입니다
Soap uiEPAM_Dnipropetrovsk_Testing_CommunityThis document provides an overview and instructions for using SoapUI, an open source testing tool. It discusses SoapUI's system requirements, key features like functional testing, security testing, load testing and test automation, and the technologies it supports including SOAP, REST, HTTP and JDBC. It also provides steps for creating a SoapUI project, adding REST services, test cases with different step types and assertions.
Selenium HandbookSuresh ThammishettyThe document is a guide to Selenium that discusses:
1. The history and types of Selenium including Selenium IDE, Remote Control, Core, and Grid.
2. How to install and use Selenium IDE with features like recording, commands, locators, and test suites.
3. An overview of Selenium commands and how to perform actions like clicking, typing, and selecting.
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)SangIn Choung2014년 사내 세미나에서 발표했던 애자일 테스트 사례 발표
기존의 테스트(인력)가 애자일에서 어떤 형태로 일하는지를 소개
테스트 자동화 외에 다른 관점을 가진 다른 역할자간의 협업이 핵심 메시지 입니다
[기본과정] 코드 테스트와 커버리지 기본 교육(개념)SangIn Choung코드레벨 테스트의 필요성과 테스트 커버리지에 대해 기본적인 수준에서 설명하고 있는 자료입니다. 개념 위주의 Basic 내용과 실습 위주의 Advanced 내용을 더해 개발자 교육을 목적으로 하고 있습니다
Selenium with javaGousalya RamachandranThe presentation answers your why, what and how questions on Selenium in simple and most convenient way to be understood by everyone
Spring BootJiayun ZhouThis document provides an overview of Spring Boot and some of its key features. It discusses the origins and modules of Spring, how Spring Boot simplifies configuration and dependency management. It then covers examples of building Spring Boot applications that connect to a SQL database, use RabbitMQ for messaging, and schedule and run asynchronous tasks.
Selenium topic 1- Selenium BasicITProfessional AcademyThis document provides an overview and introduction to a Selenium automation testing course offered by IT Professional Academy. The summary includes:
- IT Professional Academy is a team of highly skilled trainers that provide both classroom and online training in areas like software testing, big data, Linux, and more. They provide job assistance services.
- The Selenium automation testing course covers topics like introduction to automation testing, Selenium components, Selenium IDE, WebDriver, validations, assertions, framework development, and more.
- The document demonstrates using Selenium IDE for recording and playing back tests on a demo site. It also provides examples of locating elements, storing values, verifying tests, and converting recorded tests to Java code using WebDriver.
Spring boot jpaHamid GhorbaniThe document discusses Spring Boot, a framework for creating stand-alone, production-grade Spring based applications. It describes how Spring Boot allows creating projects quickly with features like embedded servers and auto-configuration. It then covers how to develop a basic Spring Boot web application including creating the project structure with Maven, adding controllers and properties files, and connecting to databases using Spring Data. Overall, the document provides an overview of Spring Boot and guidance on starting a Spring Boot web application project.
Python seleniumDucatSelenium is a powerful tool that manages web browsers by programs and automates browsers. It runs on all popular Operating System browsers, and its scripts are written in different languages, such as Python, Java, C#, Java etc.
Uber mobility - Build & ReleaseDhaval PatelSpeakers: Chirayu Krishnappa & Daniel Liem (Uber), Christian Legnitto (Pocketship), Jacek Suliga (LinkedIn), Robbert Van Ginkel & Gautam Korlam (Uber), Rachel Brindle (Pivotal Labs)
Tools for building and releasing mobile applications provided by Google and Apple are geared towards smaller mobile application development teams. However, once development teams start to grow, the requirement from your build and release tooling change drastically. This meetup was all about building & releasing mobile applications at scale: How does your build infrastructure need to evolve to support increasingly complex code-bases? How can you build an automated release pipeline that tracks every build and rolls out your mobile applications safely? What kind of unexpected problems can arise from adopting new technologies when you have a larger team?
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2tobewareAgitarOne은 Java로 개발중인 Eclipse 프로젝트에 자동화된 단위 테스트의 환경을 제공하여 테스트 시간을 대폭 단축 시켜 개발 비용을 절감하게 하며, 작성된 소스 코드들이 실질적으로 수행되는지 명확히 파악할 수 있도록 하여 소스 코드의 품질을 향상시켜 줄 수 있는 Java 개발자의 단위 테스트 자동화 솔루션 입니다.
[IMQA] performance consultingIMQA 급증하는 온라인 사용자 증가, 부하테스트가 필요하지 않으신가요?
요즘 인터넷 뉴스에는 홈페이지 접속자 폭증으로 인한 서버 다운, xx은행 모바일 앱 접속 에러, 인터넷 뱅킹 장애 등 온라인 시장과 모바일 시장이 급격하게 성장함에 따라 이에 따른 장애 소식이 끊이지 않고 전해지고 있습니다.
그렇다면, 우리는 이런 장애들을 어떻게 대비할 수 있을까요?
웹∙앱 부하테스트 (성능 진단) 및 컨설팅 안은 웹∙앱 부하테스트(성능 진단 테스트) 진행 과정과 이를 기반으로 어떻게 컨설팅을 진행하고 있는지 소개하고, 나아가 관련 장애들을 대비할 수 있는 방법에 대해 설명합니다.
(공유드리는 파일은 slideshare에 업로드되었던 웹∙앱 부하테스트 성능 진단 및 컨설팅 안을 업데이트한 최신 본입니다.)
웹∙앱 부하테스트 (성능 진단) 및 컨설팅 자료는 아래와 같이 구성되어있습니다.
• 웹∙앱 성능을 진단하고 문제에 대한 원인 분석 및 개선방향을 제시합니다.
• 컨설팅 안에는 여러 실 성능 진단을 예시로 들고 이에 대한 원인 분석 및 개선방향을 도
출한 내용이 포함되어 있습니다.
1. 앱 성능 진단
• 앱 진단 절차
• 앱 진단 상세 내용
2. 웹 서버 성능 진단
• 웹 진단 절차
• 웹 진단 방향
3. 부하 테스트
• 현 테스트 시나리오 분석
• 테스트 시나리오 보완 방법
• 부하 테스트 진행 방안
• 부하 테스트 전략
• 클라우드 기반 테스트 방안
모바일 성능 모니터링, 웹 서버 성능 진단 및 부하테스트 컨설팅에 관심이 있으신 분은 아래 연락처로 연락해주시면, 전문 컨설턴트가 안내해드리겠습니다.
hhjung@onycom.com l 02-6395-7722
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링OpenStack Korea Community- 발표자: 고려대학교 임재민
- 자료: /openstack_kr/openinfra-days-korea-2018-track-4-grafana-openstack
테스트개선지원 사례 - 웹어플리케이션대상SangIn Choung약식으로 프로젝트/조직에 대해 테스트 진단을 수행하고 단기(한달)개선 지원 및 중장기 개선 계획을 수립한 사례. 테스트 진단은 프로세스 뿐만이 아니라 아키텍처 레벨에서 테스트 현황과 개선 우선순위를 선정하여 진
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기SangIn Choung종종 관제적인 접근에서 매뉴얼 테스트에 대한 코드 테스트 커버리지를 측정하려는 시도가 있습니다. 이 접근이 맞는지 틀리는지에 대해서 할 말은 많지만 뒤로 미뤄두고, 무료 커버리지 도구인 Jacoco를 이용하여 서버 배포 후 매뉴얼 테스트에 코드 테스트 커버리지 측정 사례를 공유합니다.
서버측만 측정이 됩니다.
UI 테스트는 코드 영역(화이트박스스러운)보다는 명세(블랙박스) 기반의 테스트 목적을 갖는 테스트 유형입니다.
다양한 테스트 접근과 유형을 가져가지 않기 때문에
테스트의 목적과 그 과정, 결과를 제대로 매핑하지 못합니다.
이 테스트 커버리지 측정에 앞서 적절한 테스트 전략과 계획을 세워야 합니다.
코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018SangIn Choung조직의 코드레벨 테스트와 커버리지에 대해 현재 상황을 파악(설문, 코드 검토)하고 몇가지 개선계획 중 현실성 있는 2가지 개선안을 선정하여 진행한 사례입니다. 2018년 Pilot 수행 후 2019년 확산하여 진행.
[고급과정] 코드 테스트와 커버리지 교육(실습위주)SangIn Choung개념 위주인 Basic 내용에 이어 '애완동물(spring-petclinic)' 어플리케이션 코드 대상으로 실제 테스트 코드를 작성하고 커버리지를 측정하는 교육입니다. 명세로부터 테스트를 도출하는 블랙박스 테스트 접근 이후, 코드 커버리지 정보로부터 추가 테스트를 작성하는 화이트박스 기법을 차례로 적용하고 있습니다
SDET 인력 양성을 위한 프로젝트 지원 사례 정리SangIn ChoungSDET은 개발관점을 포함한 테스트 역할자로, 주로 애자일 기반 프로젝트에서 역할을 수행한다. SDET의 다양한 프랙티스 중 특정 프로젝트/제품 대상, 양성인력 2명을 대상으로 지원한 사례를 정리한 내용이다.
When develpment met test(shift left testing)SangIn ChoungSharing my thoughts and cases about co-work with test and developemnt. Two big approaches.
One is Engineering approach (
1. Early testing education
2. Test design
3. Test code guide
4. Pair-testing, programming
5. Test-Automation),
Second is Strategic activities (
1. Test Strategy/Plan
2. Test analysis/report)
Also, I wanted to mention tester's various career paths.
Thank you.
UI 정적분석툴 소개와 활용사례SangIn Choung서버단에 비해 상대적으로 UI는 분석 및 테스트 수행 여부를 파악하기 쉽지 않습니다. 웹 UI의 HTML 또는 XML 형태의 엘리멘트와
다양한 이벤트들을 정적으로 분석하고 이를
1) 테스트 대상으로 활용
2) 개발완료 여부, 표준 준수 여부 등을 검사
3) 개발 완료 이후 변경 부분 히스토리 관리
등으로 활용한 사례를 공유합니다
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)SangIn Choung상업적 이용 및 출처없는 무단전재를 금합니다.
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일의 스크럼, XP에 대한 기본적인 소개와 스크럼 팀 안에서 테스트 역할자로써 사용자 스토리 리뷰, 테스트 설계, 짝 테스트, 테스트 자동화 등에 대한 내용을 사례 기반으로 소개하고 있습니다.
2. 2
Contents
Overview
• SQE Team
• What is ‘Product Quality’ for SQE
• CASES : Quality Failures
How we work
• Dev & Test Process(V-Model)
• Software Life-cycle
• Details
1) Review / Planning
2) Test Execution
3) Other types of Testing
4) Release / Operation
Conclusion
• Summary
• Goals and Concerns
• Messages
4. 4
What is “Product Quality”?
product
Quality?
https://kalyan-city.blogspot.com/2013/05/what-is-product-quality-definition.html
Product(or Service) meets
customer needs(wants) and expectations
사용자의 요구사항과 기대사항을 충족시키는 것
5. 5
Lunit INSIGHT Quality
‘Product Quality’ for SQE
제품
파트너사,DE팀
인허가, 인증
비즈니스
제품 사용자
(환자, 의사,)
- 제품이 기대한 대로 잘 동작하는지
- 정해진 절차와 방식으로 개발하고
검증하고 있는지
- 설치하고 사용하기 용이한지
- 문제가 발생했을 때 문제의 현상과
추정 원인 파악이 용이한지
- 우리 고객의 needs를 빠르게 반영
- 우리 제품만의 강점을 잘 표현하고
있는지
- 환자들의 병변을 적절하고 효과
적으로 알려주는지
- 의사들의 업무를 더 효율적이고
쉽게 지원하고 있는지
SQE
다양한 이해관계자의 요구사항과 기대사항을 충족시키는 것!!
!?!
6. 6
Quality Failure Cases : General
New Coke의 실패 방사선 치료기(Therac25)
가상화폐 거래소(일본,Zaif) 오류
직접적인 손실 외에도 회사 이미지, 신뢰도에 큰 타격
코카콜라 회사의 마케팅 부서가 눈을 가리고 Coca
Cola와 Pepsi Cola를 시음하는 테스트를 했는데 다수
가 펩시를 선호함.
따라서 코카콜라 측이 Coke를 Pepsi의 맛과 유사하게
변경했지만 기존 Coke 제품에 강한 애착을 가진 고객
들이 이 New Coke를 거부하고 불만을 표출함. 4개월
후 회사는 Classic Coke라는 이름으로 원래 제품을 되
돌려 놓았으며 New Coke는 완전 중단
제품 전략 실패
7. 7
Quality Failure Cases : Lunit
MMG Contour가
엉뚱한 곳에 그려짐
내부 공통 라이브러리에서
메모리 누수 의심
참조 라이브러리
(버전)호환 오류로 분석실패
~~
~~
~~
8. How we work
- Validation Strategy & Approach
- Dev & Test Process(V-Model)
9. 9
Dev & Test Process(V-Model)
V-Model 상에서 개발 프로세스와 검증 프로세스
Detailed
Software
Design
Unit
Implement
ation
Unit/
Module
Test
Software
Integration
Software
System
Testing
- 요구사항 검토
- 검증요구사항분석
- 코드 리뷰
- 코드 정적분석
- Alpha Test
- RC Test
- Aging 테스트
- Score 비교 테스트
- 마이그레이션 테스트,…
- Unit Test(pytest,…)
- Dev Test
- 개발계획 수립
- 요구사항 분석
- 상위 기획
- 상세 기획
- 기본/상세설계
- 코드 구현
- (API) Test Automation
- pytest /coverage
(*IEC 62304 based)
- 검증계획 수립
Requirements
Analysis
- 아키텍처/설계 검토
- 테스트 설계
- 테스트 데이터 정의,확보
- 테스트 환경 구성
Verification
&
Validation
10. 10
Software Life-cycle
SW
개발계획
SW
요구사항
분석
개발단계별 QA Process
(*IEC 62304 based)
Customer
Needs
SW
아키텍처
설계
SW
상세설계
SW
유닛 구현
및 검증
SW
통합 및
통합테스
트
SW
시스템
테스팅
SW
릴리즈
SW
설치 및
운영
Customer
Needs
Satisfied
. 전체 검증계획 수
립
(검증 목표, 공수,
일정)
. 요구사항 검토
. 테스트 요구사항
분석
. 검증계획 상세 수
립
. 아키텍처 검토
. 테스트환경
구상
. 테스트 설계
. 테스트 데이터 정
의, 확보
. 테스트 환경 구성
. 코드 리뷰
. 개발자 테스트
. 코드 정적 검사
(pylint, sonarlint,
…)
. 알파 테스트
. RC 테스트
(회귀테스트)
. Dicom Set
테스트
. API 테스트
. 에이징 테스트
. 장비 설치 테스트
(버전 호환, 데이터
마이그레이션 등)
. 릴리즈 노트 작성
. known-issue 정
리
. 릴리즈 히스토리
관리
. 운영 모니터링 및
이슈 대응
*검증 일정 *QC Plan *QC Plans *TestCase
*QC Plan
*pytest/coverage
*개발자테스트 체
크리스트
*테스트결과(결함) *테스트결과 *release note
*QC Summary
11. 11
Details
1) Review / Planning
- Requirements, Architecture/Design Review
- Planning(QC Plan, Test Design)
- Test Design
12. 12
요구사항 검토
(1)_Review for Requirements, Architecture
요구사항이 논의되고, 제품 아키텍처/설계를 고민하는 단계에서부터 같이 검토
아키텍처/설계 검토
SW
요구사항
분석
SW
아키텍처/
상세설계
. 요구사항 정제 : 요구 사항에 오류가 없는지, 제품 특성과 맞지
않은 요구사항 인지, 이미 존재하는 기능에 대한 중복 요구사항
인지 등의 관점에서 검토 및 논의
. 요구사항 상세화 : 사용자의 요구사항으로부터 숨어있는 시나
리오(비기능 요구사항 포함)를 찾아내어 구체적으로 요구사항을
정리
A 사용자의 요구사항이 다른 B 사용자의
요구사항과 유사한 점이 있어, 2가지를 묶
어 같이 검토되면 좋을 것 같습니다
이 요구사항을 반영하면, 기존에 존재하는
기능과 다양한 상황이 발생할 수 있어, 각
상황별 동작을 정의할 필요가 있습니다
. 아키텍처/설계 검토
- 배포 및 설치에 용이한 구조인지(문제가 없을지)
- 비기능적 특성(사용성, 유지보수성, 재사용성, 신뢰성, 성
능 등)에 따른 문제가 발생하지 않을지
- 상세 기획 내용과 상이함이 없는지
이 기능, 제품을 더 범용적으로 사용하
기 위해서 이런(#) 구조로 가져가는건
어떨까요?
현재 구현방안으로는 원래 얘기됐던
요구사항을 부분적으로만 만족시킬수
있을 것 같습니다.
13. 13
검증계획 수립
(2)_Planning
신규 버전에 반영할 기능에 대해 검증 대상,
범위, 공수, 일정 등의 계획을 수립
필요한 테스트 도구나 필요 기술 사전 스터디
전체 릴리즈 일정에 대한 계획 수립 -> 주요 반영 Feature별 검증 계획 -> 상세 기능단위 테스트 계획 수립
[ 작성항목 ]
각 검증대상 기능별
. 개요
. 영향받는 제품(모델) 확인
. 필요인원 및 예상 기간
. 테스트 환경 구성 계획
상세 QC Plan 작성 테스트 설계
분석한 테스트 포인트에 대해 상세 테스
트 케이스를 작성
[ 작성항목 ]
- 테스트 목적
- 사전 설정 조건
- 테스트 데이터
- 수행절차
- 기대결과
- 실제 테스트결과
기획서, 구현방안 등을 참조하여 상세내용
을 파악한 후 상세 QC Plan을 작성
[ 작성항목 ]
. 테스트 목적
. 테스트 대상(범위)
. 테스트 환경
. 테스트 일정
. 주요 검증 내용
Test Point#N
Feaures#N
SW
개발계획
SW
요구사항
분석
14. 14
(3)_Test Design
제품 App Type 구분
Feature
(테스트 목적)
Prio
rity
테스트
데이터
사전조건 절차
기대
결과
테스트
결과
GW CXR3
기본
흐름
dicom분석
병변이 있는 환자
의 영상 분석
P1
“A_patient.dcm
”
GW Admin을 통해
SC(Report), color
map, 출력 설정
1.storescu 기능을 이용하여 환자의
x-ray 영상을 전송
2.GW(BE 및 IS)의 로그 모니터링
3.GW의 received, repository 저장
소 확인
4. GW Admin의 Task 결과 확인
5. 결과 dicom이 요청한 설정대로
정상 생성되었는지 확인
2.정상분석 로그 출력
3.원본 dicom파일 및 결과 sc
jpg 이미지가 각각 received,
repository 폴더에 생성된다
4.분석결과가 Task 메뉴에 조회
된다
5.결과 dicom 정상생성
(상세 옵션 : ~ )
GW CXR3
에러
흐름
dicom분석
출력설정이 잘못된
경우
P1
GW Admin 설정에
서 출력 정보가 잘못
설정
: 미존재 ip address
1.storescu 기능을 이용하여 환자의
x-ray 영상을 전송
2.GW(BE 및 IS)의 로그 모니터링
3.GW Admin의 Task 결과 확인
2. 사전 설정값에 따라 {30}초단
위로 {3}회 재전송 시도 후 최종
실패 로그 출력
3. 최종 결과 Fail로 조회된다
BE CXR3
기본
흐름
API: (POST)
/{app}/dcm/
정상업로드 P1 “A_patient.dcm”
BE Admin 기본(#)설
정
API 호출 후 응답 결과 확인
200(ok)응답 및 BE상에 저장된
uuid를 반환한다
IS CXR3
기본
흐름
API: (POST)
/predict/
기본동작 P1
[요청파라미터]
filtering=true
threshold = 0.15
……
API 호출 후 응답 결과 확인
200(ok)응답 및 분석결과과
json 형태로 반환된다
각 제품 개별/통합 관점에서
상세히 확인해야지
테스트 설계
• 다양하게 발생하는 있는 상황과 기대하는 동작을 분석하여 다양한 “테스트 케이스” 를 설계
• 각 제품별 개별 접근, 전체 제품 통합 관점에서 테스트를 고민
• 테스트하기 위해 필요한 테스트 환경과 데이터 확인
SW
상세설계
15. 15
Details
2) Test Execution
- Typical Test Procedure
- Alpha / RC Test
- Products Integration vs Isolated Test
- API Test (Automation)
16. 16
(4)_General Test Procedures - 1/5
안녕하세요. Lunit여러분!!
저는 의사 sue예요.
저는 XX 제품이 제공해 주는
SC 영상을 이용해 환자분의 상태를 잘 파악하고, 환자
분에게도 잘 설명해 드리고 싶어요.
17. 17
(4)_General Test Procedures - 2/5
Admin
PACS
dicom-gateway insight-backend insight-inference-server
0) settings
1) Dicom received
2) Upload dicom
3) Request to analyze
5) Get the results
4) predict
insight
engine
6) Send result
제품 구성과
동작
• 어드민 기능을 이용해 제품의 상세 설정
• 3개의 제품- GW(Dicom-Gateway), BE(Insight-Backecn), IS(Inference-Server) 으로 구성
• 요청받은 영상 이미지를 GW-BE-IS의 연동을 통해 결과 제공
미리 설정어드민을
통해 원하는 결과가
출력되도록 설정
GW는 BE에 분
석 요청
BE는 IS에 분석
요청
분석 결과를 반
환
18. 18
(4)_General Test Procedures - 3/5
설치 설정값 수정/
제품설치
어드민 설정 변경 영상 입력 명령 실행 각 제품 로그 확인
결과 파일(dicom)확
인
( Docker settings )
- TIMEZONE
- ~
테스트 수행
다양한 테스트 케이스에 따라 필요한 환경을 구성하기 위해
• 제품 설치 시 설정 값 변경 및 docker 기반 설치
• 각 제품의 어드민 설정을 이용해 상세 설정 변경
- Docker start
( ADMIN settings )
- Network (Input/ Output)
- Output Dicom
- SC Display mode
- SC Result type
- Language
…
19. 19
(4)_General Test Procedures - 4/5
테스트 수행
각 제품 로그 등을 통해 분석 과정 확인
• 테스트 케이스에 맞는 테스트 데이터(영상)를 준비하고, 해당 영상을 업로드
• 각 제품의 로그 모니터링
• 분석 결과에 대한 상세 확인
설치 설정값 수정/
제품설치
어드민 설정 변경 영상 입력 명령 실행 각 제품 로그 확인
결과 파일(dicom)확
인
별도 Viewer를 이용해 결과 상세 확인
- 테스트를 위한 영상 dicom 파일 준비
- DIMSE 프로토콜로 전송
20. 20
(4)_General Test Procedures - 5/5
제품 App Type 구분
Feature
(테스트 목적)
Prio
rity
테스트
데이터
사전조건 절차
기대
결과
테스트
결과
GW CXR3
기본
흐름
dicom분석
병변이 있는 환자
의 영상 분석
P1 “A_patient.dcm”
GW Admin을 통해
SC(Report), color
map, 출력 설정
1.storescu 기능을 이용하여 환자의 x-
ray 영상을 전송
2.GW(BE 및 IS)의 로그 모니터링
3.GW의 received, repository 저장소
확인
4. GW Admin의 Task 결과 확인
5. 결과 dicom이 요청한 설정대로 정
상 생성되었는지 확인
2.정상분석 로그 출력
3.원본 dicom파일 및 결과
sc jpg 이미지가 각각
received, repository 폴더에
생성된다
4.분석결과가 Task 메뉴에
조회된다
5.결과 dicom 정상생성
(상세 옵션 : ~ )
PASS
GW CXR3
에러
흐름
dicom분석
출력설정이 잘못된
경우
P1
GW Admin 설정에
서 출력 정보가 잘
못 설정
: 미존재 ip address
1.storescu 기능을 이용하여 환자의 x-
ray 영상을 전송
2.GW(BE 및 IS)의 로그 모니터링
3.GW Admin의 Task 결과 확인
2. 사전 설정값에 따라 {30}
초단위로 {3}회 재전송 시도
후 최종 실패 로그 출력
3. 최종 결과 Fail로 조회된
다
PASS
BE CXR3
기본
흐름
API: (POST)
/{app}/dcm/
정상업로드 P1 “A_patient.dcm”
BE Admin 기본(#)설
정
API 호출 후 응답 결과 확인
200(ok)응답 및 BE상에 저장
된 uuid를 반환한다
FAIL
IS CXR3
기본
흐름
API: (POST)
/predict/
기본동작 P1
[요청파라미터]
filtering=true
threshold = 0.15
……
API 호출 후 응답 결과 확인
200(ok)응답 및 분석결과과
json 형태로 반환된다
PASS
앗, 문제가 있어!!
개발팀과 확인해 봐야겠다.
테스트 수행
• 각 테스트 케이스 별 실제 결과를 작성
• 결함이나 이슈가 있는 경우 별도 관리시스템(Asana)를 통해 기록을 남기고, 개발팀과 확인
21. 21
(5)_Alpha / RC Testing
구분 Test Target Test Environment Test Results
Alpha Test
New and Changed features only
각 기능별 테스트 케이스, 데이터
각 기능 또는 QE별 개별 테스트 환경 구축 신규/변경된 기능의 테스트 결과
RC Test
전체 테스트 케이스
(Regression Test)
통합된 테스트 환경 전체 테스트 결과
점진적 통합 : Alpha 테스트에서는 주요한 신규/변경 기능을, RC 테스트에서는 기존 기능 포함 전체 테스트를 수행합니다
* RC: Release Candidate
Alpha Test RC Test
a1
a2
a3
feature A
feature B,C
feature D
issue#N~ fix
issue#M~ fix
code freezing
New/Changed
Features
Not changed
Features
…
(RTM)
Release
SW
통합테스트
rc2
rc1
rc...
* RTM: Release To
Manufacturing
22. 22
A Product Isolation Testing
Products Integration Testing
(6)_개별 제품 테스트
GW BE IS
요청,
정상 응답
제품간의 연동 상황에서
임의의 에러상황이나 특정 결과
를
반환하게 하고 싶다!!!!
요청 요청,
정상 응답
GW
요청
요청,
비정상 응답
(더미서버 응답 설정)
400(bad request),
{
‘message’:’request…’
}
BE IS
요청,
정상 응답
각 제품간에 발생할 수 있는 다양한 상황을 임의로 발생시켜 테스트 커버리지 향상
실제 제품이 아니라,
임의로 동작을 지정할 수 있는
‘더미서버'를 활용
상황 예1) 특정 API의 응답이 오래 걸리거나, 응답이 안 오도록 설정
상황 예2) 다른 제품에서 오는 분석 결과를 원하는 특정 응답으로 오도록 상세 설정
상황 예3) 임의의 응답 에러(404 Not Found, 400 Bad Request, 500 Server Error,...)와
메시지가 발생한 상황에서 제품 동작 확인 등
dummy
-BE
dummy
-IS
SW
통합테스트
23. 23
(7)_API 테스트(자동화) SW
통합테스트
검증 공수 절감을 위해 반복적이고 결과가 명확한 부분에 테스트 자동화 적용 검토
- 코드레벨에서는 개발팀이 테스트 코드 작성(pytest 등), QE팀에서는 테스트 결과/커버리지 결과 확인
- QE팀에서는 HTTP API에 대해 PostMan, Jmeter, pytest(requests)를 이용하여 테스트 스크립트 작성
자동화 대상 선정
기본 동작 확인 외에도,
반복적이고 결과가 확실한 부분
을 API 테스트 자동화 대상으로
선정
테스트 스크립트 작
성
Python/Requests (PostMan,
JMeter) 등을 이용하여 자동으
로 반복적으로 호출하고 그 결
과를 확인하는 스크립트를 작성
테스트 자동수행
스케쥴러(Jenkins)를 통해 매일
, 또는 코드 변경이 발생할 때마
다 자동으로 수행
테스트 결과 알림
테스트 결과 보고서를 생성하고
, 그 결과를 슬랙 등을 통해 실
시간으로 알림
pytest
/requests
GW BE IS
10개 결과 텍스트가
9개 언어별로 정상 출력되는지
매번 확인해야 하네…
10X9=…
24. 24
Details
3) Other types of Testing
- Pre-defined Dicom-Set Test
- Aging(Soak) Test
- Other Non-Functional Test
25. 25
CXR, MMG 스코어 비교 결과
(8)_Predefined Dicom-Set Test
미리 정해놓은 테스트 셋(Validation Dicom Set)에 대해 신규 버전의 유효성 검토 (오류, 기존 버전과의 스코어 차이 정도)
… …
신규 버전
기존 버전
-
- 비교 검사 셋
이번 MMG 5.7.2 모델에서
기존대비 전체적으로
Max Score가 높게 나온 현상
이…
아!! 특정 장비에 대한 fine-
tuning을 더해서 5.7.2.1로
내도록 하겠습니다!
(CXR 결과 예)
a) 각 병변별 스코어 차이 평균값,
b) 스코어 차이 구간별 분포도,
c) 스코어 차이가 가장 큰 top 3,
d) 비교 버전별 전체 대비 스코어 분포
SW
시스템
테스트
Pre-defined dicom set (CXR/MMG)
26. 26
테스트 결과(실시간 모니터링)
(9)_Aging(Soak) Test
Aging(Soak) Test : 오랜 시간동안 대량 부하(huge volume of load) 상황에서, 애플리케이션의 성능을 측정하는데 사용되는 비기능 테스트의
한 유형으로 저희는 긴 시간(2-3일)동안 반복적으로(ex.10초단위) 분석요청을 진행해서 테스트 시간에 따른 시스템의 메모리 증가, 성능 정보의
변화 등을 확인합니다
- 메모리 사용량
- 평균 분석 시간 등 추이 모니터링
각 제품의 성능 지표와 저장된 분석 소요 시간 등을
수집하여 Grafana로 시각화
SW
시스템
테스트
XX 제품의 메모리 사용량 추이
가 점점 높아지는데…
어딘가 메모리 누수가 있는 것
같아요!!
확인해 보니, 저희가 내부적으로
참조하는 외부 라이브러리의 특
정 로직을 타는 경우에...
27. 27
설치 환경 호환성, 이식성 / 파트너 제품 연동 네트워크 이슈 상황
버전 업데이트 확인 보안관점 테스트
(10)_Other types of validations
SW
시스템
테스트
- 이전 데이터에 대한 정상 유지, 이전(Migration) 확인
- 업데이트 시점에 분석 중인 건에 대한 동작 검토
- 네트워크 단절, 방화벽 상황에서 적절한 처리
- 의존 관계에 있는 다른 제품의 네트워크 단절 상황 등
- 인증된 키에 대한 적절한 체크
(유효하지 않은 접근에 대한 차단)
- 라이센스 정책에 따른 올바른 동작 확인
- 세션 타임아웃, 로그인/비밀번호 정책 적용 확인
- 비밀번호 변경 주기 적용 등
- NVIDIA(GPU), Jetson, OpenVINO 등 다양한 설치환
경에서 정상 동작 확인
- GE,FF 등 파트너 제품과의 연동 관점
기능 검증
//
29. 29
(11)_Product Release SW
릴리즈
- 테스트 결과 정리, 배포되는 기능 정보, 릴리즈 노트, Known-Issue 등 정리
- DE팀과 설치 및 현장 대응을 위한 인수인계
릴리즈 및 배포를 위한 DE팀 인수인계 세션
a) 반영된 주요 Feature 설명
b) 설치 시 유의사항
c) Known-Issue
d) 릴리즈 노트 설명
[QC
Summary]
~~
~~
제품 릴리즈 개요
주요 Feature
(상세링크)
상세 컴포넌트별
테스트 결과, 특
이사항 등
제품별
릴리즈 정보
설치시 유의사항
[ QC Summary ]
30. 30
(12)_현장이슈 1차 분석 및 대응
- 현장 이슈, 문의 내용에 대해서도 DE팀과 함께 확인 및 대응 (DE팀 - QE팀 - 개발팀)
SW
릴리즈
32. 32
Summary - SQE Activities & Strategy
Strategy & Approach
작은 단위에서 점점 더 큰 단위로
더 이른 단계에서
이해관계자와 협업
자동화 검토/적용
Review for Requirements, Architecture
Planning
Test Design
Alpha / RC Testing
Test Execution
API 테스트(자동화)
개별 제품 테스트
Validation Dicom SetTest
Aging(Soak) Test
Other types of Non-Functional Testing
Learning From Everything
Continuous Improvement
Activities
33. 33
고민중
목표
Goals and Concerns
제품 품질!!
고객의 만족
고객,
비즈니스
제품팀,
개발
회사 내,외부 다양한 이해관계자 간에
브릿지 역할을 하여 좋은 품질의 제품을 만드는 것!!
SQE!!!
- SQE Goals and Concerns
35. 35
Final Message
‘Product Quality’ for ALL
제품
파트너사,DE팀
인허가, 인증
비즈니스
제품 사용자
(환자, 의사,)
- 제품이 기대한 대로 잘 동작하는지
- 정해진 절차와 방식으로 개발하고
검증하고 있는지
- 설치하고 사용하기 용이한지
- 문제가 발생했을 때 문제의 현상과
추정 원인 파악이 용이한지
- 우리 고객의 needs를 빠르게 반영
- 우리 제품만의 강점을 잘 표현하고
있는지
- 환자들의 병변을 적절하고 효과
적으로 알려주는지
- 의사들의 업무를 더 효율적이고
쉽게 지원하고 있는지
Quality!!
37. 37
Software Life-cycle
SW
DEV Planning
SW
Requirem
ents
Analysis
Product QA Process in Software Life-cycle
(*IEC 62304 based)
Customer
Needs
SW
Architect
ure
SW
Detailed
design
SW
Unit
impleme
ntaion/T
est
SW
Integrati
on /IT
Test
SW
System
Test
SW
Release
SW
Release /
Operatio
n
Customer
Needs
Satisfied
. Release QC Plan . review
requirements
. test
requirements
analysis
. Feature QC Plan
. review
Architecture/desig
n
. plan test
environments
. test design
. design test data
. develop test
environments
. code review
. developer tests
. code inspection
(tools)
. Alpha Test
. RC Test
(Regression Test)
. pre-defined
dicom set Test
. API Test
. Aging(Soak) Test
. Deploy Test
(version update,
data migrations,...)
. Release notes
. known-issue
. release version
history managing
. onsite issue
monitoring,
analysis
*QC Schedule *QC Plan *QC Plan *TestCase
*QC Plan
*pytest/coverage
*developer test
checklist
*Test Results and
issues
*Test Results *release note
*QC Summary