# code coverage

12개의 포스트

[Fuzzing book] 3. Code Coverage

Code Coverage Summary: Introduction Code coverage measures which parts of a program are executed during a test run. This measurement is crucial for test generators to maximize code coverage. CGI Decoder Explanation A brief about CGI encoding: Used in URLs to encode invalid characters like blanks and punctuation. Blanks are replaced by '+'. Other invalid characters are replaced by '%xx', where 'xx' is the hexadecimal equivalent. E.g.,

2023년 9월 7일
·
0개의 댓글
·
post-thumbnail

코드 커버리지(Code Coverage) 를 알아보자!

코드 커버리지란? 커버리지는 자동화된 테스트 중에 실행되는 코드의 줄 수의 측정치를 의미한다. 우리는 요구사항을 만족하는 애플리케이션을 개발해야 한다. 이때 코드의 퀄리티와 결점이 없게끔 개발을 해야 한다. 이를 위한 과정 중 하나가 테스트 코드이다. 우린 단위 테스트를 통해 구현된 기능들을 검증하고 버그를 잡아 코드의 퀄리티를 높일 수 있다. 하지만 반드시 그렇다고 단정지을 수는 없다고 한다. 코드 커버리지의 필요성 첫 번째, 코드 커버리지에 대한 정보가 없이 구현된 기능에 대한 테스트 코드를 작성한다고 우리의 서비스가 버그로부터 보호된다고 할 수없다. 단위 테스트를 작성한다고는 하지만, 제일 중요한 부분에 대한 테스트가 작성되어 있는지 알 수 없기 때문이다. 이때 코드 커버리지는 개발자에게 어느 부분이 테스트되지 않았는지 알려줄 수 있고 그로 인해 허점을 보완할 수 있게 된다. 두 번째, 프로젝트의 초기 단계부터 코드 커버리지를 사용하여 개발을 한다면 초

2023년 5월 6일
·
0개의 댓글
·
post-thumbnail

[Swift] Xcode로 단위 테스트 따라해보기 - 2

🌟 Code Coverage 란? Code Coverage는 테스트의 가치를 측정하는 도구. (Code coverage is a tool to measure the value of your tests.) > 출처: 애플 문서 참고: 코드 커버리지(Code Coverage) 🌟 Code Coverage 적용하기 Step 1. Edit Scheme의 Test → Options로 이동한다. ![

2023년 3월 14일
·
0개의 댓글
·

[Swift] 코드 커버리지(Code Coverage)

🌟 Code Coverage란? Code Coverage는 테스트의 가치를 측정하는 도구라고 할 수 있다. 이를 통해서 테스터가 의도한 대로 테스트가 잘 되었는지 판단할 수 있는 자료 중 하나이다. 측정 기준은 여러가지가 있고 소스 코드를 기반으로 수행하는 화이트 박스1 테스트를 통해 측정한다. 1. 구문(Statement) 라인(Line) 커버리지라고 부르기도 한다. 프로덕션 코드의 전체 구문 중 몇 줄의 구문이 실행되었는지를 기준으로 판단한다. 세 가지 코드 커버리지 중에서 구문 커버리지가 가장 대표적으로 많이 사용 되어지고 있다. 조건 커버리지나 결정 커버리지의 경우는 코드 실행에 대한 테스트 보다는 로직의 시나리오에 대한 테스트에 더 가깝다고 볼 수 있기 때문이다. 조건문이 존재하지 않는 코드는 조건, 결정 커버리지의 대상에서 아예 제외된다. 즉, 아예 테스트를 하지 않는다는 것이다. 그

2023년 3월 8일
·
0개의 댓글
·
post-thumbnail

확장 가능한 parallel fuzzing 인프라 구축 및 성능 비교 분석 (1-1) AFL

0. 서론 Fuzzing은 프로그램에 무작위의 데이터를 삽입하여 버그 및 취약점을 찾아주는 기술이다. 예를 들어, 프로그램에 들어가는 입력(표준입력 or 파일)을 변조시켜 정상적인 동작이 아닌, crash를 유발시키거나 메모리 corruption을 일으키는 테스트 사례를 찾는다. Fuzzing 기술은 여러 취약점을 찾는데 아주 유용한 툴로써 최근에 활발하게 연구개발이 진행되어 왔다. 이 프로젝트는 fuzzing 기술을 적용하여 전에 알려지지 않았던 여러 open-source 소프트웨어의 버그 및 실제 취약점을 찾고, 패치를 생성하여 community에 제출하는 과제를 수행한다. 1. AFL && AFL++ Fuzzing는 프로그램 혹은 메모리 스택에 자동으로 반무작위 데이터를 주입하고 버그를 탐지하는 Fuzzer라는 소프트웨어 테스트 도구로 수행된다. 이 중 주로 AFL++라는 Fuzzer를 활용하여 여러 오픈소스 소프트웨어를 Fuzz

2023년 2월 22일
·
0개의 댓글
·

Unit Test

테스트를 왜 할까? 코드의 안정성 보장 유지 보수에 유리 스펙의 문서화 깔끔한 코드 1. 유닛 테스트(Unit Test) > 소스 코드의 특정 모듈이 의도대로 작동하는지 검증하는 절차 = 모든 함수와 메서드에 대한 테스트 케이스(Test case)를 만드는 절차 코드 변경으로 문제가 발생해도 단시간에 파악할 수 있음 테스트 케이스는 서로 분리되어야 함 -> 테스트를 위한 가짜 객체를 생성하기도 함 유닛 테스트는 다른 말로 단위 테스트라고 한다. 하나의 함수, 메서드를 기준으로 진행되는 가장 작은 단위틔 테스트이다. -> 메서드를 하나 하나 테스트해보는 개념 왜 유닛 테스트를 할까? 메서드에 대해 독립적으로 테스트해서 빠른 테스트 진행과 빠른 리팩터링이 가능 코드의 확장과 리팩터링 시 안정성을 확보 통합 테스트(UITest) > 단위 테스트보다 큰 단위로 주로 객체 사이의 동작에 대한 테

2022년 5월 8일
·
0개의 댓글
·
post-thumbnail

Code Coverage

Jetpack Compose 프로젝트에 code coverage를 위해 Jacoco를 적용해 보기로 하였습니다. dependencies 추가 plugins 추가 task 추가 testOptions 추가 test를 위해 robolectric 추가 targetSdk 버전 이슈가 있음. test code gradle command ![](https://images.velog.io/images/larvatus/post/51b174bd-9464-44

2022년 3월 21일
·
0개의 댓글
·
post-thumbnail

JWK 라이브러리를 만들어 보자! #8

8편 : 아... 제일 힘든 시간... 디버깅과 단위테스팅, 그 1부 6편부터 사실 라이브러리는 이미 만들었다고 말 했었다. 그런데 사실 다만 일단 코드만 다 짜고, 제대로 돌아가는지 그때는 확인이 안 된 상황이였다. 물론 대략적인 기능들은 잘 돌아가는지 확인했고, 내가 본 JWK 중에서 가장 대표적이라고 생각되는 Google API 에서 쓰는 https://www.googleapis.com/oauth2/v3/certs에서는 잘 돌아가는 걸 확인했었다. 하지만 단순히 몇몇 사례에서 정상적으로 돌아간다는 것 만으로 해당 라이브러리에 문제가 없는지 확

2022년 1월 5일
·
0개의 댓글
·
post-thumbnail

[Xcode] TDD를 위한 Code Coverage Setting

code coverage는 테스트의 가치를 측정하는 도구라고 할 수 있다. 이를 통해서 테스터가 의도한 대로 테스트가 잘 되었는지 판단할 수 있는 자료 중 하나다. Xcode에서 설정하는 법 스키마 수정을 클릭 coverage 체크 후 타겟 추가 test를 진행하고 나서 Report navigator에서 가장 최신의 테스한 것으로 Coverage를 클릭하면

2021년 11월 4일
·
0개의 댓글
·
post-thumbnail

코드 분석 도구 적용기 - 3편, SonarQube 적용하기

이 글은 우아한테크코스에서 진행한 프로젝트인 직고래의 기술 블로그에 함께 게시된 글입니다. 안녕하세요. 우아한테크코스 2기, 셀러리 컴퍼니에서 직고래를 개발하고 있는 스티치(이준영)입니다. stitch [코드 분석 도구 적용기 - 2편, JaCoCo 적용하기](https://velog.io/@lxxjn0/%EC%BD%94%EB%93%9C-%EB%B6%84%EC%84%9D-%EB%8F%84%EA%B5%AC-%EC%A0%81%EC%9A%A9%EA%B8%B0-2%ED%8E%B8-JaCoCo-%EC%A0%81%EC

2020년 12월 8일
·
1개의 댓글
·
post-thumbnail

코드 분석 도구 적용기 - 2편, JaCoCo 적용하기

이 글은 우아한테크코스에서 진행한 프로젝트인 직고래의 기술 블로그에 함께 게시된 글입니다. 안녕하세요. 우아한테크코스 2기, 셀러리 컴퍼니에서 직고래를 개발하고 있는 스티치(이준영)입니다. stitch [코드 분석 도구 적용기 - 1편, 코드 커버리지(Code Coverage)가 뭔가요?](https://velog.io/@lxxjn0/%EC%BD%94%EB%93%9C-%EB%B6%84%EC%84%9D-%EB%8F%84%EA%B5%AC-%EC%A0%81%EC%9A%A9%EA%B8%B0-1%ED%8E%B8-%E

2020년 12월 8일
·
0개의 댓글
·
post-thumbnail

코드 분석 도구 적용기 - 1편, 코드 커버리지(Code Coverage)가 뭔가요?

이 글은 우아한테크코스에서 진행한 프로젝트인 직고래의 기술 블로그에 함께 게시된 글입니다. 안녕하세요. 우아한테크코스 2기, 셀러리 컴퍼니에서 직고래를 개발하고 있는 스티치(이준영)입니다. stitch 이번에 직고래 프로젝트에 코드 커버리지 분석 도구를 적용하게 되었는데요, 코드 커버리지 분석 도구를 적용하는 과정에서 학습한 내용과 어떻게 적용했는지에 대해 소개해보고자 합니다. 총 3편의 글로 작성될 계획이며, 이번 글에서는 **코드 커버리지가 무엇인지, 그리고 저희 프로젝트에서는 어

2020년 12월 8일
·
0개의 댓글
·