2025/02 3

Junit In Action - TDD를 위한 테스트 원칙, 도구 및 활용 Review - BDD와 테스트 피라미드 전략

BDD 살펴보기행위 주도 개발의 개념은 댄 노스가 2000년대 중반에 창안했다. BDD란 비즈니스 요구 사항과 목표를 소프트웨어의 동작과 기능으로 변환하는 개발 방법론을 말한다. BDD를 실천한다면 애플리케이션이 어떻게 동작하는지 구체적인 사례를 가지고 여러 팀간에 원활하게 소통할 수 있으며, 이해관계자 간의 협력을 장려함으로써 의미 있는 소프트웨어를 만들 수 있게 된다.  BDD의 이점과 과제 ✔️ 사용자 요구 충족 : 사용자는 구현에 신경을 덜 쓰고 애플리케이션의 기능에 더 집중할 수 있다.✔️ 명확성 제공 : 시나리오는 소프트웨어가 수행해야 하는 작업을 명확히 한다. 시나리오는 기술에 친숙한 사람과 기술에 친숙하지 못한 사람 모두 이해할 수 있는 간단한 언어로 기술한다. 시나리오는 분할하거나 다른 ..

Dev/TDD 2025.02.25

Junit In Action - TDD를 위한 테스트 원칙, 도구 및 활용 Review - Junit5을 통한 TDD

TDD의 핵심 개념TDD란 요구 사항을 테스트로 뽑아 낸 다음, 테스트를 통과하는 프로그램을 개발하는 과정을 되도록 짧게 반복하는 프로그래밍 기법이다.TDD는 작동하는 클린 코드를 추구함으로써 단순한 설계를 유도하고 소프트웨어의 안정성을 제고한다. 따라서 TDD는 다음과 같은 개발 주기를 가진다. ✏️  테스트한다, 코드를 작성한다, 리팩터링한다, (반복한다) ... 리팩터링은 소스 코드의 외부 동작에는 영향을 주지 않고 내부 구조만을 개선하는 방식으로 소프트웨어를 수정하는 작업이다. 이때 외부 동작에 영향을 주지 않는다는 것을 증명하기 위해서 테스트를 사용할 수 있다. 장점분명한 목표를 가지고 코드를 짤 수 있을뿐더러, 애플리케이션이 해야 하는 일만 정확하게 개발할 수 있다.기존의 소스 코드에 버그가 ..

Dev/TDD 2025.02.23

Junit In Action - TDD를 위한 테스트 원칙, 도구 및 활용 Review - 데이터베이스 애플리케이션 테스트

개발환경IDE :  intelliJ FrameWork : springboot 3.4Launguage : java 17BuildTool : gradle TestTool : Junit5  데이터베이스 단위 테스트시 발생하는 임피던스 불일치 (Impedance Mismatch) 단위 테스트는 코드를 격리시켜 실행해야하고, 작성과 구동이 쉬워야하며, 실행속도가 빨라야한다.  그렇기 때문에 관계형 모델을 기반으로 작성된 데이터베이스와 애플리케이션을 연결할 때 차이가 발생하는데, 이를 임피던스 불일치라고 표현한다. 이러한 임피던스 불일치를 해소하기 위해 ORM, IBATIS를 사용한다. 이번 글에서는 ORM 을 사용할 것이다. 더보기더보기📝  ORM 관계형 데이터베이스의 데이터를 객체 지향 프로그래밍의 객체로 ..

Dev/TDD 2025.02.04