본문 바로가기

Testing4

소나큐브 설치하기 (with Docker, macOS) 개요 최근에 devops 님께 3개의 sonarqube 프로젝트를 생성해달라는 요청을 드렸었다. devops 님께는 항상 감사한 마음을 가지고 있다. 참 수고가 많으신 것 같다. 요청 드린것은 요청 드린 것이고 한번쯤은 직접 어떤 과정을 통해 진행되는지 확인해보고 싶었다. 참고로 소나큐브는 20개 이상의 프로그래밍 언어에서 버그, 코드 스멜, 보안 취약점을 발견할 목적으로 정적 코드 분석으로 자동 리뷰를 수행하기 위한 지속적인 코드 품질 검사용 오픈 소스 플랫폼이다 라고 위키피디아에 소개되어있다. 본문 설치 환경 이 글에서는 Docker를 이용해서 설치하며, 로컬에 설치하기 때문에 macOS 를 기반으로 설명을 진행한다. 진행 순서 1. 도커 이미지 pull & run 공식홈페이지에 이미지에 따른 pul.. 2023. 8. 2.
7장 가치 있는 단위 테스트를 위한 리팩터링 단위테스트 (블라디미르 코리코프) https://jonghoonpark.com/identifying-the-code-to-refactor 에서 이어지는 글입니다. 복잡한 코드를 알고리즘과 컨트롤러로 나눠보자. 험블 객체 패턴을 사용해 일반화 하는 방법에 대해서 알아보자. 2.1 고객 관리 시스템 소개 사용자 등록을 처리하는 고객 관리 시스템을 샘플로 한다. 모든 사용자는 데이터베이스에 저장된다. 현재 시스템은 사용자 이메일 변경이라는 단 하나의 유스케이스만 지원한다. 이 연산에는 세 가지 비즈니스 규칙이 있다. - 사용자 이메일이 회사 도메인에 속한 경우 해당 사용자는 직원으로 표시된다. 그렇지 않으면 고객으로 간주한다. - 시스템은 회사의 직원 수를 추적해야 한다. 사용자 유형이 직원에서 고객으로, 또.. 2023. 7. 28.
5장 목과 테스트 취약성 (4) 3 목과 테스트 취약성과의 관계 이번 절에서 알아 볼 것 - 육각형 아키텍처 (hexagonal architecture) - 내부 통신과 외부 통신의 차이점 - 목과 테스트 취약성 관의 관계 3.1 육각형 아키텍처 정의 육각형 아키텍처는 앨리스터 코오번(Alistair Cockburn) 에 의해 처음 소개되었다. 전형적인 애플리케이션은 도메인(비지니스 로직)과 애플리케이션 서비스라는 두 계층으로 구성된다. 도메인 계층은 애플리케이션의 중심부이기 때문에 도표의 중앙에 위치한다. 도메인 계층은 필수 기능으로 비즈니스 로직이 포함되어 있다. 애플리케이션 서비스 계층은 도메인 계층 위에 있으며 외부 환경과의 통신을 조정한다. 애플리케이션의 API에 대한 모든 요청이 먼저 애플리케이션 서비스 계층에 도달한다. 애.. 2023. 7. 5.
테스트용 크롬 (Chrome for Testing) 원문 Chrome for Testing: reliable downloads for browser automation https://developer.chrome.com/blog/chrome-for-testing/ 23년 6월 12일 글 정리 크롬은 현시점 기준 사용자 점유율이 가장 높은 브라우저이다. 브라우저 테스트를 하면서 번거로웠던 점 중 하나는 브라우저 테스트 환경을 맞춰줘야 한다는 것인데 크롬의 경우에는 자동 업데이트를 권장한다. 이는 글에도 적혀있지만 사용자에게는 좋지만 테스트 개발자에게는 고통이다. 특히 크롬의 경우에는 특정 버전의 Chrome 바이너리 / 이에 맞는 Chrome Driver 를 찾기 어려운 부분이 있었는데 Google 에서는 의도적으로 사용자로 하여금 가능한 최신 버전으로 업.. 2023. 7. 2.