회사 내부 교육(소개)용으로 만든
현재 팀이 일하고 있는 프로세스를 정리한 자료 - 의료 소프트웨어 제품
- Dev & Test Process(V-Model)
1) Review / Planning
2) Test Execution
3) Other types of Testing
4) Release / Operation
회사 내부 교육(소개)용으로 만든
현재 팀이 일하고 있는 프로세스를 정리한 자료 - 의료 소프트웨어 제품
- Dev & Test Process(V-Model)
1) Review / Planning
2) Test Execution
3) Other types of Testing
4) Release / Operation
예전에 인턴하면서 프로젝트해서 만든 자료인데 공유하고 싶어서 올립니다.
한국어로된 자료가 별로 없더라구요.
많은 레퍼런스 보고 만든 문서인데 혹시 필요하신분 있으면 참고하세요.
물론 이건 표준이고 현실에서는 표준을 따르지 않을 때도 많습니다.
프로젝트마다 테스트 강도를 조절하는 것이 좋다고 생각합니다.
Unit Testing Concepts and Best PracticesDerek Smith
Unit testing involves writing code to test individual units or components of an application to ensure they perform as expected. The document discusses best practices for unit testing including writing atomic, consistent, self-descriptive tests with clear assertions. Tests should be separated by business module and type and not include conditional logic, loops, or exception handling. Production code should be isolated from test code. The goal of unit testing is to validate that code meets specifications and prevents regressions over time.
This document provides an overview of unit testing and isolation frameworks. It defines key concepts like units, unit tests, stubs, mocks and isolation frameworks. It explains that the goal of unit tests is to test individual units of code in isolation by replacing dependencies with stubs or mocks. It also discusses different isolation frameworks like Rhino Mocks and Moq that make it easier to dynamically create stubs and mocks without writing implementation code. The document covers different styles of isolation like record-and-replay and arrange-act-assert. It emphasizes best practices like having one mock per test and using stubs for other dependencies being tested.
This document provides an introduction to Behavior Driven Development (BDD) with Cucumber. It discusses that BDD uses examples expressed in a way that can be automated to reduce misunderstandings. Stories are written in business language and describe requirements and acceptance criteria. Scenarios specify conditions a story must meet to be complete. Cucumber is a tool that executes plain text functional descriptions as automated tests. It supports collaboration between stakeholders and allows writing scenarios before code.
This document provides an introduction to unit testing and mocking. It discusses the benefits of unit testing such as safer refactoring and value that increases over time. It provides a recipe for setting up a unit test project with test classes and methods using AAA syntax. It also covers what mocking is and how to use mocking frameworks to create fake dependencies and check interactions. Resources for learning more about unit testing and related tools are provided.
Automated testing is important to reduce the time and costs of manual testing. Cucumber is a behavior-driven development framework that allows writing automated acceptance tests in plain language. It executes tests written in its own language called Gherkin. Each Cucumber feature file describes a single feature or scenario using keywords like Feature, Scenario, Given, When, Then. Benefits of Cucumber include involving business stakeholders through human-readable tests, focusing on end-user experience, and easier code reuse and test execution.
예전에 인턴하면서 프로젝트해서 만든 자료인데 공유하고 싶어서 올립니다.
한국어로된 자료가 별로 없더라구요.
많은 레퍼런스 보고 만든 문서인데 혹시 필요하신분 있으면 참고하세요.
물론 이건 표준이고 현실에서는 표준을 따르지 않을 때도 많습니다.
프로젝트마다 테스트 강도를 조절하는 것이 좋다고 생각합니다.
Unit Testing Concepts and Best PracticesDerek Smith
Unit testing involves writing code to test individual units or components of an application to ensure they perform as expected. The document discusses best practices for unit testing including writing atomic, consistent, self-descriptive tests with clear assertions. Tests should be separated by business module and type and not include conditional logic, loops, or exception handling. Production code should be isolated from test code. The goal of unit testing is to validate that code meets specifications and prevents regressions over time.
This document provides an overview of unit testing and isolation frameworks. It defines key concepts like units, unit tests, stubs, mocks and isolation frameworks. It explains that the goal of unit tests is to test individual units of code in isolation by replacing dependencies with stubs or mocks. It also discusses different isolation frameworks like Rhino Mocks and Moq that make it easier to dynamically create stubs and mocks without writing implementation code. The document covers different styles of isolation like record-and-replay and arrange-act-assert. It emphasizes best practices like having one mock per test and using stubs for other dependencies being tested.
This document provides an introduction to Behavior Driven Development (BDD) with Cucumber. It discusses that BDD uses examples expressed in a way that can be automated to reduce misunderstandings. Stories are written in business language and describe requirements and acceptance criteria. Scenarios specify conditions a story must meet to be complete. Cucumber is a tool that executes plain text functional descriptions as automated tests. It supports collaboration between stakeholders and allows writing scenarios before code.
This document provides an introduction to unit testing and mocking. It discusses the benefits of unit testing such as safer refactoring and value that increases over time. It provides a recipe for setting up a unit test project with test classes and methods using AAA syntax. It also covers what mocking is and how to use mocking frameworks to create fake dependencies and check interactions. Resources for learning more about unit testing and related tools are provided.
Automated testing is important to reduce the time and costs of manual testing. Cucumber is a behavior-driven development framework that allows writing automated acceptance tests in plain language. It executes tests written in its own language called Gherkin. Each Cucumber feature file describes a single feature or scenario using keywords like Feature, Scenario, Given, When, Then. Benefits of Cucumber include involving business stakeholders through human-readable tests, focusing on end-user experience, and easier code reuse and test execution.
서버단에 비해 상대적으로 UI는 분석 및 테스트 수행 여부를 파악하기 쉽지 않습니다. 웹 UI의 HTML 또는 XML 형태의 엘리멘트와
다양한 이벤트들을 정적으로 분석하고 이를
1) 테스트 대상으로 활용
2) 개발완료 여부, 표준 준수 여부 등을 검사
3) 개발 완료 이후 변경 부분 히스토리 관리
등으로 활용한 사례를 공유합니다
AgitarOne은 Java로 개발중인 Eclipse 프로젝트에 자동화된 단위 테스트의 환경을 제공하여 테스트 시간을 대폭 단축 시켜 개발 비용을 절감하게 하며, 작성된 소스 코드들이 실질적으로 수행되는지 명확히 파악할 수 있도록 하여 소스 코드의 품질을 향상시켜 줄 수 있는 Java 개발자의 단위 테스트 자동화 솔루션 입니다.
TestExplorer 소개 - Android application GUI testing toolhyunae lee
TestExplorer is 100% automated testing solution for Android application based on GUI which is available in entire development process from development and verification.
- A dynamic GUI testing tool for detecting the abnormality of the application by running the event (Touch, Click, Swipe, Back Space, Rotate, etc.)
- 100% automated GUI testing tool in entire development process (App building with source, Installing App, Running App on target device, GUI Exploring, Generating GUI tree, Generating test script, Running test script and Reporting)
TestExplorer 소개 - Android application GUI testing toolhyunae lee
TestExplorer is 100% automated testing solution for Android application based on GUI which is available in entire development process from development and verification.
- A dynamic GUI testing tool for detecting the abnormality of the application by running the event (Touch, Click, Swipe, Back Space, Rotate, etc.)
- 100% automated GUI testing tool in entire development process (App building with source, Installing App, Running App on target device, GUI Exploring, Generating GUI tree, Generating test script, Running test script and Reporting)
This is a overview document about Function & Feature of the Agados Platform.
* Reference Links
AGADOS function & feature Chapter-01 UI define elements,
www.slideshare.net/YongkyooPark/agados-function-feature-chapter01-ui-define-elements
AGADOS function & feature Chapter-02 biz logic define
www.slideshare.net/YongkyooPark/agados-function-feature-chapter02-biz-logic-define
AGADOS function & feature Chapter-03 Visibility of AGADOS based app
https://www.slideshare.net/YongkyooPark/agados-function-feature-cvhapter03-visibility-of-agados-based-app
개발은 혼자 할 수 있을까? 혹은 개발자들끼리 할 수 있을까? 저는 아니라고 생각합니다. 개발은 개발에 관여된 모든 부서와 종사자들이 함께하는 겁니다. 개발자가 어떻게 하냐에 따라 SE와 QA 그리고 심지어 Sales 까지 하나의 팀으로 공동의 목표를 쫓아 시너지를 낼 수 있습니다. 저는 그렇게 믿습니다.
상업적 이용 및 출처없는 무단전재를 금합니다.
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일의 스크럼, XP에 대한 기본적인 소개와 스크럼 팀 안에서 테스트 역할자로써 사용자 스토리 리뷰, 테스트 설계, 짝 테스트, 테스트 자동화 등에 대한 내용을 사례 기반으로 소개하고 있습니다.
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기SangIn Choung
종종 관제적인 접근에서 매뉴얼 테스트에 대한 코드 테스트 커버리지를 측정하려는 시도가 있습니다. 이 접근이 맞는지 틀리는지에 대해서 할 말은 많지만 뒤로 미뤄두고, 무료 커버리지 도구인 Jacoco를 이용하여 서버 배포 후 매뉴얼 테스트에 코드 테스트 커버리지 측정 사례를 공유합니다.
서버측만 측정이 됩니다.
UI 테스트는 코드 영역(화이트박스스러운)보다는 명세(블랙박스) 기반의 테스트 목적을 갖는 테스트 유형입니다.
다양한 테스트 접근과 유형을 가져가지 않기 때문에
테스트의 목적과 그 과정, 결과를 제대로 매핑하지 못합니다.
이 테스트 커버리지 측정에 앞서 적절한 테스트 전략과 계획을 세워야 합니다.
개념 위주인 Basic 내용에 이어 '애완동물(spring-petclinic)' 어플리케이션 코드 대상으로 실제 테스트 코드를 작성하고 커버리지를 측정하는 교육입니다. 명세로부터 테스트를 도출하는 블랙박스 테스트 접근 이후, 코드 커버리지 정보로부터 추가 테스트를 작성하는 화이트박스 기법을 차례로 적용하고 있습니다
When develpment met test(shift left testing)SangIn Choung
Sharing 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.
1. (Agile) Test Plan Sample
1. INTRODUCTION
1.1 Purpose
1.2 Project Overview
2. BASIC STRATEGY
2.1 Development Objectives
2.2 Test Objectives
2.3 Core Strategy (Risk-Based approach)
3. Test Strategy
3.1 Test Scope in Business domain (Sprint / Integration / System Test)
2.2 Test Scope in Architecture level
3. Test R&R
4. Levles of Testing
5. Test Schedules
6. Test Environment (draft version)
7. Details of each Test Levels
♣ SDET Activities in Sprint (Co-work plan)
8. TEST MANAGEMENT
8.1 Sprint period
8.1.1 Test, Bug, Issue LifeCycle
8.1.2 (Sub)Task, Bug, Issue Management
8.2 Integration/System Test period
9. TEST AUTOMATION Environment
1. INTRODUCTION
1.1 Purpose
This test plan describes the testing approach and overall framework of the XXX Product Version 0.9.
The document introduces:
Test Strategy : rules the test will be based on, including the givens of the project (e.g.: start / end dates, objectives, assumptions);
description of the process to set up a valid test (e.g.: entry / exit criteria, creation of test cases, specific tasks to
perform, scheduling, data strategy).
Execution Strategy : describes how the test will be performed and process to identify and report defects, and to fix and implement
fixes
Test Management : process to handle the logistics of the test and all the events that come up during execution
(e.g.: communications, escalation procedures, risk and mitigation, team roster)
※ Do we need test (plan) documents in agile?
Yes!! The document is an essential method to share one's thoughts to anothers and getting feedbacks.why not?
1.2 Project Overview
- DELETED -
2. BASIC STRATEGY
2.1 Development Objectives
This implements Digital Engagement platform based on Healthcare information
Our platform provides :
- DELETED -
2.2 Test Objectives
2. We only cover Phase 1 development scope.
The objective of the test is to verify that the functionality and Non-Functionality of XXX according to the specifications.
Whole Test strategy is based on RISK BASED TEST STRATEGY (We only have limited resouce, so we focus on some area important,
ex) Mobile client)
Server Internally, Spec based test approach will be applied and will be automated.
Web UI and Mobile app UI will be tested based on Interfaces and Test Scenarios(Integration and Acceptace Level)
System must provide proper error messages, when users make unexpected behavior.
Not authorized user must not accessed or granted and the proper message should be provided.
UX/UI, Intuitive UI should be provided and any user should be able to use easily.
Non-functional - Performance, Security, etc - requirements must be tested to check product meets the expectiation
Also Cloud, Mobile specific test will be performed
If certain speciaized tests are required, the detail test plan will be established at the time needed
2.3 Core Strategy (Risk-Based approach)
- DELETED -
. Risk 1 : Sprint / Integration / System all
. Risk 2 : Integration / System
. Risk 3 : Integration
. Risk 4 : Not covered
3. Test Strategy
3.1 Test Scope in Business domain (Sprint / Integration / System Test)
3. 2.2 Test Scope in Architecture level
- DELETED -
3. Test R&R
Role Responsibility Owner
Product Owner,
Business Analyst
비즈니스 워크플로우 상 의사결정이 필요한 사항에 대해 이해관계자와 협의하고
영향 정도를 고려하여 결정한다
사용자 스토리에 대한 종료 조건을 검토하고 피드백을 준다
통합 테스트 시나리오에 대해 리뷰한다
가
Developers 사용자 스토리에 대한 테스트의 완료 조건을 SDET과 협의하여 정의한다
SDET과 짝테스트/프로그래밍을 수행한다
등록된 결함에 대해 리뷰하고 조치한다
개별 API의 성능 이슈가 있는 경우 원인을 파악하고 조치한다
통합 테스트 시나리오에 대해 리뷰한다
SDET Common 사용자스토리에 대한 을 정의하고 관리한다완료 조건(AC)
결함 발생 시 결함 등록 및 조치 여부를 확인 한다
개발자와 짝 테스트를 수행 한다
통합 테스트 시나리오를 작성하고 개발팀과 같이 리뷰한다
Jenkins를 이용하여 자동화된 테스트 환경을 구성하고 모니터링 한다
테스트 환경(개발 및 테스트 서버, 자동화 테스트 수행 서버)를 구축하고 유지한다
테스트 자동화 결과를 리포팅하고 관련 툴과의 연계를 검토한다
A,
B
REST API Functional SDET 에 대응하는 테스트 케이스 작성 및 API에 대한AC 또는 REST API 스펙
테스트 자동화 스크립트를 작성한다
테스트를 수행하고 그에 대한 결과를 관리한다
API에 대한 보안 테스트 케이스를 도출하고 수행한다
A
REST API Performance SDET 개별 API에 대한 JMeter 성능 테스트 스크립트를 작성/수행한다
수행 결과가 실패(결과 오류, 특정 API의 수행시간이 과도하게 오래 걸리는 경우)인
경우
개발자와 같이 원인을 파악하고 재테스트한다
B
4. Levles of Testing
Test Level Name Description Target Method period Owner
4. Sprint Test Server Internal Test 서버 내부 개별 모듈에 대한 테스트 서버 Java 코드 JUnit 스프린트 개발자
REST API Functional
Test
개별 API 단위로 스펙 기반 기능 검증 each REST API Rest-Assured
or
SoapUI
스프린트 개발자,
SDET
REST API Performance
Test
개별 API 단위로 약식으로 동시 호출
테스트 수행
each REST API JMeter 스프린트 SDET,
개발자
Mobile UI Test 사용자스토리 단위로 구현된 모바일 UI 및
기능에 대한 테스트 수행
기능/업무 단위
모바일 UI
매뉴얼 테스트 스프린트 개발자,
SDET
Web UI Test 사용자스토리 단위로 구현된 웹 UI 및 기능에
대한 테스트 수행
기능/업무 단위
웹 UI
매뉴얼 테스트 스프린트 개발자
Integration
1st
Internal Integration
Test
내부 시스템간의 연동을 포함하여 사전에 정의한
통합 테스트 시나리오 기반으로 테스트를 수행한다
테스트 시나리오
(내부 통합)
매뉴얼 테스트 통합테스트
1차
개발팀,
SDET
Integration
2nd
External Integration
Test
외부 시스템 연동을 포함하여, 실제 운영 환경에서
사전에 정의한 통합 테스트 시나리오 기반으로
테스트를 수행한다
테스트 시나리오
(전체 통합)
매뉴얼 테스트 통합테스트
2차
개발팀,
SDET
System Test Performance Test 실제 운영 환경에서 정의한 성능 여건을 만족하는지
확인하는 성능 테스트를 수행한다. 주요 성능 요건은
모바일 어플리케이션이 요청하는 API호출 영역이며,
클라우드 환경을 포함한 전체 환경에 대한 테스트를
진행한다
성능 테스트
시나리오
별도 수행 계획에
따라 수행
시스템테스트 별도 성능
전담 인력
Mobile compatibility
Test
OS 종류/버전 및 다양한 해상도에서 모바일
어플리케이션의 UI 및 기능이 정상 동작하는지를
검증한다
모바일
어플리케이션
mTworks 시스템테스트 수행
시점
정의
Mobile Non-Functional
Test
모바일 어플리케이션에 대해
배터리 소모량,
CPU/메모리 사용률,
발생 트래픽, Front-end 반응 속도
등에 대해
검증 필요성을 검토하여 수행한다
모바일
어플리케이션
mTworks 시스템테스트 수행
시점
정의
Server Security Test . 접속 및 권한이 제한된 기능에 대한 호출,
. 악의적인 반복호출 공격 등
사전에 보안 관련 테스트 시나리오를 작성하고
해당 내용에 따라 테스트를 수행한다
보안 테스트 대상 매뉴얼 테스트 등 시스템
테스트 기간
- SDET
리소스
논의
필요-
개발팀
5. Test Schedules
7. 7. Details of each Test Levels
-DELETED-
♣ SDET Activities in Sprint (Co-work plan)
8. TEST MANAGEMENT
8.1 Sprint period
8.1.1 Test, Bug, Issue LifeCycle
User story will be the main item to manage dev lifecycle. Testing and defects will be connected with user-story in JIRA system
8. 8.1.2 (Sub)Task, Bug, Issue Management
8.2 Integration/System Test period
-deleted-
9. TEST AUTOMATION Environment
-deleted-