저는 핀테크 서비스 개발 프로젝트에 참여하여 CI 구축과 QA 자동화 부분 개발을 담당하였습니다.
프로젝트가 시작하면 수 많은 개발자들과 기획자 그리고 QA 들이 다투는 것은 빈번한 일상입니다..
바쁜 개발 과정에서 기본적인 로그인 함수의 구현을 계속해서 체크해야 하는 것은 매우 불편하고 번거롭죠.
Selenium과 Jenkins를 통해 다음과 같은 상황을 자동화하여 개발자들과 QA/기획자들간의 갈등을 줄이고자 합니다.
스크린샷 중 가린부분들은 현재 회사 프로젝트 유출 방지를 위한 것이니 너그러이 용서해주시길..
저는 핀테크 서비스 개발 프로젝트에 참여하여 CI 구축과 QA 자동화 부분 개발을 담당하였습니다.
프로젝트가 시작하면 수 많은 개발자들과 기획자 그리고 QA 들이 다투는 것은 빈번한 일상입니다..
바쁜 개발 과정에서 기본적인 로그인 함수의 구현을 계속해서 체크해야 하는 것은 매우 불편하고 번거롭죠.
Selenium과 Jenkins를 통해 다음과 같은 상황을 자동화하여 개발자들과 QA/기획자들간의 갈등을 줄이고자 합니다.
스크린샷 중 가린부분들은 현재 회사 프로젝트 유출 방지를 위한 것이니 너그러이 용서해주시길..
회사 내부 교육(소개)용으로 만든
현재 팀이 일하고 있는 프로세스를 정리한 자료 - 의료 소프트웨어 제품
- Dev & Test Process(V-Model)
1) Review / Planning
2) Test Execution
3) Other types of Testing
4) Release / Operation
상업적 이용 및 출처없는 무단전재를 금합니다.
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일의 스크럼, XP에 대한 기본적인 소개와 스크럼 팀 안에서 테스트 역할자로써 사용자 스토리 리뷰, 테스트 설계, 짝 테스트, 테스트 자동화 등에 대한 내용을 사례 기반으로 소개하고 있습니다.
예전에 인턴하면서 프로젝트해서 만든 자료인데 공유하고 싶어서 올립니다.
한국어로된 자료가 별로 없더라구요.
많은 레퍼런스 보고 만든 문서인데 혹시 필요하신분 있으면 참고하세요.
물론 이건 표준이고 현실에서는 표준을 따르지 않을 때도 많습니다.
프로젝트마다 테스트 강도를 조절하는 것이 좋다고 생각합니다.
서버단에 비해 상대적으로 UI는 분석 및 테스트 수행 여부를 파악하기 쉽지 않습니다. 웹 UI의 HTML 또는 XML 형태의 엘리멘트와
다양한 이벤트들을 정적으로 분석하고 이를
1) 테스트 대상으로 활용
2) 개발완료 여부, 표준 준수 여부 등을 검사
3) 개발 완료 이후 변경 부분 히스토리 관리
등으로 활용한 사례를 공유합니다
회사 내부 교육(소개)용으로 만든
현재 팀이 일하고 있는 프로세스를 정리한 자료 - 의료 소프트웨어 제품
- Dev & Test Process(V-Model)
1) Review / Planning
2) Test Execution
3) Other types of Testing
4) Release / Operation
상업적 이용 및 출처없는 무단전재를 금합니다.
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일의 스크럼, XP에 대한 기본적인 소개와 스크럼 팀 안에서 테스트 역할자로써 사용자 스토리 리뷰, 테스트 설계, 짝 테스트, 테스트 자동화 등에 대한 내용을 사례 기반으로 소개하고 있습니다.
예전에 인턴하면서 프로젝트해서 만든 자료인데 공유하고 싶어서 올립니다.
한국어로된 자료가 별로 없더라구요.
많은 레퍼런스 보고 만든 문서인데 혹시 필요하신분 있으면 참고하세요.
물론 이건 표준이고 현실에서는 표준을 따르지 않을 때도 많습니다.
프로젝트마다 테스트 강도를 조절하는 것이 좋다고 생각합니다.
서버단에 비해 상대적으로 UI는 분석 및 테스트 수행 여부를 파악하기 쉽지 않습니다. 웹 UI의 HTML 또는 XML 형태의 엘리멘트와
다양한 이벤트들을 정적으로 분석하고 이를
1) 테스트 대상으로 활용
2) 개발완료 여부, 표준 준수 여부 등을 검사
3) 개발 완료 이후 변경 부분 히스토리 관리
등으로 활용한 사례를 공유합니다
스프링 프레임워크는 빈을 다루는 기술인데, 스프링 컨테이너는 base-package의 클래스를 검색해서 자동으로 자바 빈으로 등록하는 데 이에 해당하는 것이 @Component, @Repository, @Service, @Contoroller, @RestController 어노테이션인데 그와 관련하여 PPT로 간단히 소개 합니다.
스프링 프레임워크 기반 개발에서 가장 자주 사용되는 컨텍스트 설정과 관련된 어노테이션 @Scope, @Autowired, @Resource, @Inject, @Required, @Named, @Order, @PostConstruct, @PreDestroy와 관련된 간단한 설명 입니다.
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)DK Lee
The document provides instructions on setting up a Java web development environment and creating a simple "Hello World" web application using Java, Tomcat, Eclipse, and JSP. It discusses downloading and installing VirtualBox, Windows XP, JDK, Tomcat, Eclipse, and creating a basic JSP file to output "Hello World!". It then covers more advanced topics like connecting to a MySQL database using JDBC and performing CRUD operations.
iOS 에서 TDD 도전해보기.
2022년 11월 24일 새싹 세미나에서 공유.
-> 아래 피그마 링크에서 더 보기 편하게 보실 수 있습니다.
https://bit.ly/3ExvmaI
----------------------------
01. TDD 테스트 주도개발
1) TDD의 정의
2) 사용해야하는 이유
3) 장단점
4) TDD 방법
02. XCTest: iOS에서의 TDD
1) XCTest란
2) 작성할 수 있는 테스트
3) setUp, tearDown
03. UNIT TEST 실습: XCTest로 테스트하기
1) XCTest 세팅
2) 테스트 작성 방법
3) 테스트할 기능 미리보기
4) 단위테스트 해보기
04. epliogue: 덧붙이는 말
1) TDD 잘하는 방법
2) 참고문헌 및 링크
3) 감사의 말
AgitarOne은 Java로 개발중인 Eclipse 프로젝트에 자동화된 단위 테스트의 환경을 제공하여 테스트 시간을 대폭 단축 시켜 개발 비용을 절감하게 하며, 작성된 소스 코드들이 실질적으로 수행되는지 명확히 파악할 수 있도록 하여 소스 코드의 품질을 향상시켜 줄 수 있는 Java 개발자의 단위 테스트 자동화 솔루션 입니다.
개발은 혼자 할 수 있을까? 혹은 개발자들끼리 할 수 있을까? 저는 아니라고 생각합니다. 개발은 개발에 관여된 모든 부서와 종사자들이 함께하는 겁니다. 개발자가 어떻게 하냐에 따라 SE와 QA 그리고 심지어 Sales 까지 하나의 팀으로 공동의 목표를 쫓아 시너지를 낼 수 있습니다. 저는 그렇게 믿습니다.
2. 목차
• 2.1 다시 보기
• 2.2 개선
• 2.3 개발자를 위한 테스팅 프레임워크 JUnit
• 2.4 스프링 테스트 적용
• 2.5 학습 테스트로 배우는 스프링
3. 2.1 UserDaoTest 다시 보기
-1장에서 main메소드로 작성한 테스트 코드의 특징
1. 자바에서 가장 손쉽게 실행 가능한 main() 메소드 이용한다.
2. 테스트할 대상인 UserDao의 오브젝트를 가져와 메소드 호출한다.
3. 테스트에 사용할 입력 값(User 오브젝트)을 직접 코드에서 만들어 넣어준다.
4. 테스트의 결과를 콘솔에 출력해 준다.
5. 각 단계의 작업이 에러 없이 끝나면 콘솔에 성공 메시지로 출력해준다.
4. 2.1 UserDaoTest 다시 보기
-웹을 통한 DAO 테스트 방법의 문제점
-작은 단위의 테스트
-자동수행 테스트 코드
-지속적인 개선과 점진적인 개발을 위한 테스트
5. 2.2 UserDaoTest 개선
수정 전 테스트 코드
수정 후 테스트 코드
Junit 테스트로 전환
1. 메소드가 public으로 선언 돼야 함
2. 메소드에 @Test라는 애노테이션을 붙여주는것
검증 코드 전환
6. 2.2 UserDaoTest 개선
Junit을 적용한 UserDaoTest
Junit 테스트 실행
JUnit 프레임워크도 자바 코드로 만들어진 프로그램이므로 어디선가 한번은 JUnit 프레임워크를 시작시켜줘야 한다.
7. 2.3 개발자를 위한 테스팅 프레임워크 JUnit
Junit 테스트 실행 방법
IDE : 사실상의 표준 자바 IDE인 이클립스는 오래전부터 JUnit테스트를 지원하는 기능을 제공하고있다. @Test가 들어
있는 테스트 클래스를 선택한 뒤에, 이클립스 run메뉴의 Run As 항목 중에서 JUnit Test를 선택하면 자동으로 실행된
다. JUnitCore처럼 main()메소드를 만들지 않아도 된다.
8. 2.3 개발자를 위한 테스팅 프레임워크 JUnit
테스트 주도 개발(TDD, Test Driven Development)
만들고자 하는 기능의 내용을 담고 있으면서 코드를 검증도 해줄 수 있도
록 테스트 코드를 먼저 만들고, 테스트를 성공하게 해주는 코드를 작성하
는 방식의 개발 방법
테스트보다 코드를 먼저 작성한다고 해서 테스트 우선 개발(TFD, Test
First Development)이라고도 함
TDD 기본 원칙
"실패한 테스트를 성공시키기 위한 목적이 아닌 코드는 만들지 않는다“
테스트를 작성하고 이를 성공시키는 코드를 만드는 작업의 주기를 가능한
짧게 가져가도록 권장(오류가 발생했을때 쉽게 대응이 가능)
9. 2.4 스프링 테스트 적용
DI를 테스트에 이용하는 방법의 선택
-스프링 컨테이너 없이 태스트할 수 있는 방법을 가장 우선적으로 고려
: 테스트 수행 속도가 가장 빠르고 테스트 자체가 간결하다
-스프링의 설정을 이용한 DI 방식의 태스트
:여러 오브젝트와 복잡한 의존관계를 갖고 있는 오브젝트를 테스트해야 할 경우
:테스트에서 애플리케이션 컨텍스트를 사용하는 경우에는 태스트 전용 설정파일을
따로 만들어 사용하는 편이 좋다.
-컨텍스트에서 DI 받은 오브젝트에 다시 테스트 코드로 수동 DI 해서 태스
트하는 방법
:예외적인 의존관계를 강제로 구성해서 태스트해야 할 경우
:테스트 메소드나 클래스에 @DirtiesContext 애노테이션을 붙여야 함
10. 2.5 학습 테스트로 배우는 스프링
학습 테스트의 장점
• 다양한 조건에 따른 기능을 손쉽게 확인 해 볼수 있다.
• 학습 테스트 코드를 개발 중에 참고할 수 있다.
• 프레임워크나 제품을 업그레이드 할 때 호환성 검증을 도와준다.
• 테스트 작성에 대한 좋은 훈련이 된다.
• 새로운 기술을 공부하는 과정이 즐거워진다.
버그 테스트의 장점
• 테스트와 완성도를 높여준다.
• 버그의 내용을 명확하게 분석하게 해준다.
• 기술적인 문제를 해결하는 데 도움이 된다.