본문 바로가기

개발일지/TIL

테스트의 필요성

반응형

'버그' 란?

  • 소프트웨어가 예상하지 못한 결과를 내는 것
  • 버그는 '소스 코드'나 '설계과정에서의 오류' 때문에 발생함

현업에서 '버그'란?

 1.사용자들에게 불편을 줌

  • 일부 기능이 동작하지 않음(이커머스 사이트에서 '주문'만 안됨)
  • 일부 기능이 의도와 다르게 동작(10만원 결제 -> 100만원 결제)
    • 잘못된 동작에 대한 고객 보상 및 데이터 보정 작업이 추가로 필요
  • 전체 기능 동작하지 않음( 서비스 접속 불가)

 2.회사에 악영향

  • 매출 감소
  • 신뢰도 감소
    • 필요할 때 내 곁에 없는 회사..
    • 회사정보, 개인정보 유출 가능성

3. "저녁 없는 삶, 주말 없는 삶, 휴가 없는 삶.."의 원인

  • 버그는 시간을 가려서 발생하지 않음
  • 소프트웨어는 스스로 치유되는 능력이 없음

개발 코드 배포 전, 버그를(최대한 많이) 찾아내는 법 (버그가 없다는건 매우 어려운 일이다.)

 1. 블랙박스 테스팅

 블랙박스 테스팅이란 소프트웨어 내부 구조나 동작원리를 모르는 블랙박스와 같은 상태에서, 즉 웹 서비스의 사용자 입장에서 동작을 검사하는 방법.

 장점

  • 누구나 테스트 가능 - 개발자부터 디자이너, 베타 테스터 혹은 사장님까지!

단점

  • 기능이 증가될 수록 테스트의 범위가 증가
    • 시간이 갈 수 록 테스트하는 사람이 계속 늘어나야함
  • 테스트 하는 사람에 따라 테스트 퀄리티가 다를 수 있음 -> QA직군이 있는 이유

2. 개발자 테스트

 개발자가 직접 "본인이 작성한 코드"를 검증하기 위해 "테스트 코드"를 작성
"개발자 본인이 작성한 코드는 본인이 가장 잘 안다."

 장점

  • 개발 시간이 오래 걸림
  • 테스트 코드를 유지보수하는 비용

  1. 블랙 박스 테스팅
    1. 장점
      • 누구나 테스트 가능 - 개발자부터 디자이너, 베타 테스터 혹은 사장님까지!
    2. 단점
      • 기능이 증가될 수록 테스트의 범위가 증가
        • 시간이 갈 수 록 테스트하는 사람이 계속 늘어나야함
      • 테스트 하는 사람에 따라 테스트 퀄러티가 다를 수 있음 → QA 직군이 있는 이유
  2. 개발자 테스트
    1. UI 테스팅
      • 장점: 실제 서비스를 사용하게 될 고객의 입장에서 기능을 검증해 볼 수 있음
      • 단점: 클라이언트 코드 (HTML, CSS, JS) 가 다 작성 되어야만 기능 검증이 가능함
        • 프론트 개발과 백엔드 개발이 동시에 진행되고 있다면??
    2. API 호출앱 사용 (ex. Advanced REST Client, Postman)
      • 장점: UI 없이 서버의 API 를 손쉽게 검증 가능
      • 단점: 여러개의 API 를 한번에 검증하기 어려움
    3. 스프링의 테스트 프레임워크 사용
      • 장점
        • UI 없이 서버의 API 를 손쉽게 검증 가능
        • 여러개의 API 를 한번에 검증 가능
        • 테스트 코드를 소스 코드와 함께 관리 가능
        • 코드 수정 후 바로 테스트 가능
        • Git 을 이용해 다른 개발자들과 테스트 코드 공유 가능
      • 단점
        • 테스트 프레임워크에 대한 추가학습이 필요
        • 테스트 코드 작성에 다소 시간이 소요
반응형

'개발일지 > TIL' 카테고리의 다른 글

JPA 영속성 컨텍스트 이해  (0) 2022.07.18
JPA 이해  (0) 2022.07.18
JPA  (0) 2022.07.17
Getter, Setter의 이해  (0) 2022.07.17
객체지향 복습  (0) 2022.07.16