Recommended
PDF
KGC2010 - 낡은 코드에 단위테스트 넣기
PPTX
PDF
PPTX
katagaitai CTF勉強会 #3 crypto
PPT
PDF
Level Up Your Integration Testing With Testcontainers
PDF
Real-time personalized recommendation using embedding
PDF
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
PDF
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
PPTX
코딩테스트 합격자 되기 C++ 06_07장 스택과 큐에 대한 강의 입니다.
PDF
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]
PDF
PDF
Functional Domain Modeling - The ZIO 2 Way
PPTX
AtCoder Beginner Contest 012 解説
PDF
PDF
Object Oriented Programming in JavaScript
PDF
Regular Expressions Cheat Sheet
PDF
PDF
스프링 시큐리티 구조 이해
PPTX
String Builder & String Buffer (Java Programming)
PDF
PDF
PDF
PPSX
Collections - Lists, Sets
PDF
競技プログラミングにおけるコードの書き方とその利便性
PDF
PPTX
PDF
Finally, easy integration testing with Testcontainers
PDF
C++ Unit Test with Google Testing Framework
PPTX
How Google Tests Software (구글의 소프트웨어 테스팅)
More Related Content
PDF
KGC2010 - 낡은 코드에 단위테스트 넣기
PPTX
PDF
PPTX
katagaitai CTF勉強会 #3 crypto
PPT
PDF
Level Up Your Integration Testing With Testcontainers
PDF
Real-time personalized recommendation using embedding
PDF
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
What's hot
PDF
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
PPTX
코딩테스트 합격자 되기 C++ 06_07장 스택과 큐에 대한 강의 입니다.
PDF
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]
PDF
PDF
Functional Domain Modeling - The ZIO 2 Way
PPTX
AtCoder Beginner Contest 012 解説
PDF
PDF
Object Oriented Programming in JavaScript
PDF
Regular Expressions Cheat Sheet
PDF
PDF
스프링 시큐리티 구조 이해
PPTX
String Builder & String Buffer (Java Programming)
PDF
PDF
PDF
PPSX
Collections - Lists, Sets
PDF
競技プログラミングにおけるコードの書き方とその利便性
PDF
PPTX
PDF
Finally, easy integration testing with Testcontainers
Viewers also liked
PDF
C++ Unit Test with Google Testing Framework
PPTX
How Google Tests Software (구글의 소프트웨어 테스팅)
PPT
Google C++ Testing Framework in Visual Studio 2008
PPTX
Benefit From Unit Testing In The Real World
PDF
PDF
Rundeck's History and Future
PDF
How do I do DevOps when all I have is Ops?
PDF
How will DevOps benefit enterprise?
PPTX
PPTX
PDF
테스트 가능한 소프트웨어 설계와 TDD작성 패턴 (Testable design and TDD)
PDF
Similar to 구글테스트
PDF
아꿈사.C++ api 디자인.20140315 a
PPTX
TDD - Test Driven Development
PDF
PDF
KSUG 스프링캠프 2019 발표자료 - "무엇을 테스트할 것인가, 어떻게 테스트할 것인가"
PDF
『Effective Unit Testing』 - 맛보기
PDF
PDF
PDF
xUnitTestPattern/chapter7
DOCX
PDF
Istqb 2-소프트웨어수명주기와테스팅-2015
PDF
xunittestpatternchapter15
PDF
Effective unit testing - 좋은테스트 요약
PPTX
[GDG And Kor] 아장아장 테스트 첫걸음
PPTX
[2011 04 11]mock_object 소개
PDF
전통적인 개발과 테스트 주도 개발, 그리고 애자일
PDF
PPTX
PPT
xUnitTestPattern/chapter16
PDF
PPTX
More from 진화 손
PPTX
[C++ 20] [P1035R7] Input range adaptors.
PPTX
[C++ 20] [P0645R10] Text formatting 내용 정리
PPTX
C++20 constexpr default constructor of std::atomic and std::atomic_flag
PDF
[C++ 20][P0325R4] std::to_array() 내용 정리.
PDF
C++ 20 Efficient access to std::basic_stringbuf’s buffer
PDF
C++20 Remove std::weak_equality and std::strong_equality.pdf
PDF
C++20 std::execution::unseq.pdf
PDF
C++ 20 class template argument deduction for alias templates
PDF
C++ 20 Make stateful allocator propagation more consistent for operator+(basi...
PDF
C++ 20 Unevaluated asm-declaration in constexpr functions
PDF
C++20 Utility functions to implement uses-allocator construction
PDF
C++ 20 std__reference_wrapper for incomplete types
PDF
C++ 20 Stronger Unicode requirements
PDF
PDF
PDF
C++ 20 Relaxing the range-for loop customization point finding rules
PDF
C++ 20 Relaxing the structured bindings customization point finding rules
PDF
PDF
PDF
C++20 Comparing unordered containers
구글테스트 1. 2. 3. - 구글에서 만든 C++
테스트 프레임워크
- 단위 테스트, 통합 테스트,
시나리오 테스트 가능
- 구글에서도 쓴다(중요)
(크롬, Protocol Buffer 등)
Google Test?
4. - 소스 코드의 특정 모듈이 의도된
대로 정확히 작동하는지 검증하는
절차
- 모든 함수와 메소드에 대한 테스트
케이스(Test case)를 작성한다
단위 테스트
5. - 단위 테스트에서 확장된 것
- 둘 이상의 모듈을 하나의
그룹으로 테스트 하는 것
통합 테스트
6. - 문제점 발견이 쉽다
- 변경이 쉽다
- 통합이 간단하다
단위 테스트를 해야하는 이유
출처 : 위키
7. 8. - A rich set of assertions
- User-defined assertions
- Death tests
- Fatal and non-fatal failures
특징
9. 10. - 하나의 테스트는 다른 테스트와
독립되어 있고 반복 가능하다
- 실제 사용하는 것처럼 테스트 케이스
그룹을 만들 수 있어서 코드 파악에
도움이 된다
Google Test를
사용하게 된 이유?
11. - 플랫폼 중립적이라서 재사용이
용이하다
- 하나의 테스트 케이스를 실패해도 전체
테스트를 계속 진행할 수 있기 때문에
한번의 실행으로 여러 실패를 파악할
수 있다
Google Test를
사용하게 된 이유?
12. - 사용자가 사용할 테스트를 일일이
지정해주지 않아도 알아서 찾아준다
- 반복적으로 쓰이는 자원을 테스트끼리
공유할 수 있도록 있기 때문에 비용을
줄일 수 있다
Google Test를
사용하게 된 이유?
출처 : 공식 홈페이지
13. - 손목이 안 좋아져서
테스트 할 때 마우스를
적게 사용하고 싶었음
- 회사에서
사용하게 되었다
Google Test를
사용하게 된 이유? 사실…
14. TEST(테스트 그룹 이름,
그룹 내 하위 테스트 이름) {
/// 테스트 수행 내용
}
이렇게 선언을 해두면 자동으로
프로그램 수행 시 실행될 테스트로
등록된다
사용법 – 테스트 케이스
15. - 테스트가 수행되는 순서는 랜덤이다
- 테스트를 사용하지 않을 경우에는
앞에 DISABLED_ 키워드를
붙인다
- 필터로 원하는 테스트만 수행 가능
–gtest_filter
사용법 – 테스트 케이스
16. - 결과가 참인지 아닌지 확인한다
- 결과는 성공, 심각하지 않은 실패,
심각한 실패 3가지가 있다
- 매크로처럼 사용
사용법 - Assertions
17. - ASSERT_* : 조건문이 참이 아닐
경우 실패를 출력하고 현재 테스
트를 종료
- EXPECT_* : 조건문이 참이 아닐
경우 실패를 출력하고 다음 테스
트를 계속 진행
사용법 - Assertions
18. 19. - 여러 테스트에서 공통으로
사용하는 객체설정을 정의
- ::testing::Test 를 상속받아서
사용한다
사용법 – Test Fixtures
20. 21. 22. Class MyFixture : public testing::Test
{
Public:
User m_pUser*;
MyFixture();
~MyFixture();
virtual void SetUp();
virtual void TearDown();
}
사용법 – Test Fixtures
23. 24. TEST_F(MyFixture, 사용 테스트) {
m_pUser->SetMoney(100);
EXPECT_EQ(100,
m_pUser->GetMoney());
m_pUser->ConsumeMoney(5);
EXPECT_EQ(95,
m_pUser->GetMoney());
}
TEST_F(MyFixture, 획득 테스트) {
m_pUser->GetMoney(50);
EXPECT_EQ(50,
m_pUser->GetMoney());
}
사용법 – Test Fixtures
25. - Visual Studio .NET 2003 이상
이어야 한다
- https://github.com/google/go
ogletest 에서 프로젝트를
다운받는다
프로젝트에 적용하는 법
26. - 프로젝트 폴더에 압축을 푼다
프로젝트에 적용하는 법
- googletestmsvcgtest.sln
파일을 열고 빌드한다
27. 28. 29. 30. 31. 32. 33. 34. 35. - 프로젝트 시작과 함께 사용한 게
아니라 중간에 사용하게 되었다
-> 현재 작업 중인 기능들만 조금씩
테스트 코드를 작성
구글 테스트를 쓰게
되었을 때의 상황
36. - 테스트 메소드 내에 PC와
통신하는 기능이 존재
-> dummy socket 클래스를
정의하여 사용
구글 테스트를 쓰게
되었을 때의 상황
37. 38. 39. - DB와 통신하는 부분 존재
-> DB는 항상 결과가 맞다고
생각하고 DB로 부터 받은 결과를
갱신하는 부분이 제대로 되는지
검사
구글 테스트를 쓰게
되었을 때의 상황
40. 41. - 구현 전에 단위 테스트 시나리오
를 먼저 생각하고 구현한다면
발코딩?을 줄일 수 있을 것 같다
라고 생각하지만 현실은…
- 기능을 좀 더 분리해서 만들게
된다
해보고 느낀 점
42. - 코드를 변경하면 테스트 코드도
변경 해줘야 한다
- 테스트 코드를 다 통과해도
버그가 없는 건 아니더라…
- Private 코드는 어떻게 테스트
해야 좋을까?
해보고 느낀 점
43. - 손목에 부담이 덜 해졌다
- 시간이 충분하지 않으면 못 하겠다
- 습관을 들이기 위한 노력이
필요할 것 같다
아직 안됨…
해보고 느낀 점
44.