[CS] Software testing

mean_g·2022년 8월 7일
0

[ CS ]

목록 보기
2/8

1. Sotrware Testing 이란?

1) 오류를 확인하는 작업이다.

  • 실제로 서비스를 사용화하기 전 오류가 없는지 검증을 하고 서비스를 상용화하기 위해서 필요한 과정이다.
    서비스가 상용화되고 난 후 오류를 발견해서 수정하려면 금전적인 이슈와 함께 사용자가 불편을 겪기 때문이다.

2) 서비스의 결함을 확인할 수 있다.

  • 실제 서비스를 제공하기 직전까지 수정해서 소비자에게 결함이 노출되는 일을 사전에 방지한다. 또한 출시 후 지속적인 피드백에 답변하는 것보다 시간을 절약할 수 있다.

4) 서비스의 품질을 향상시킬 수 있다.

  • 리팩토링을 통해 서비스 구조나 품질 또한 개선할 수 있다.

4) 확장성이 좋아진다.

  • 새로운 코드를 붙일 때 더 간편하고 빠르게 붙일 수 있다.


    +) 나의 코드에서 원하는 결과들을 나오게 하기 위한 테스트 코드를 작성하여 테스트를 진행한다.
    그리고 테스트 코드에서 원치 않던 결과가 나오면 처음으로 돌아가 코드를 수정 후 다시 테스트를 진행한다.

2. Manual Testing & Automation Testing

1) Manual testing

  • 꼭 해봐야 하지만, 사람이 직접 하는 만큼 불안정성이 높고, 인력이 소모되며 비용이 높으며 속도는 느리다는 단점이 있다.

2) Automation testing

  • 안정성이 높고 속도가 빠르며 확장성도 높다. 또한 인력 소모는 줄어들고 비용은 낮아지는 장점이 있다.

3. System test 전략

1) E2E (End-toEnd) Tests

  • 프론트엔드와 백엔드의 완성된 코드를 직접 맞춰보는 작업이다. (전체적인 서비스의 flow를 맞춰보는 작업)
  • 구글에 따르면 전체 test에서 10% 정도의 중요도와 시간 소모를 가진다고 한다. 하지만 복잡도는 가장 높은 작업이다.

2) Integration Tests(통합 테스트)

  • 웹페이지, Postman 등을 사용해서 API 호출 시 올바르게 동작하는지 확인하는 작업이다. 모듈 간의 호환성을 검증하는 단계이다.
  • 중요도와 시간 소모는 20% 정도이다.

3) Unit Tests(단위 테스트)

  • 독립적으로 진행되는 가장 마이크로한 테스트로 class나 함수 하나하나를 테스트하는 것이다. (하나의 기능이나 메서드에 대한 테스트)
  • 전체적인 중요도와 시간 소모는 70%로 가장 크지만 복잡도는 낮다. 하지만 단위 테스트를 함으로서 빠른 문제 파악이 가능하며, 리팩토링 시 안정성을 확보하고 단위 테스트를 코드에 대한 문서로 활용할 수 있다.

+) 이론적으로는 굉장히 간단하다. 테스트 코드 작성도 익숙해지면 반복작업정도로 생각한다는데, 아직 작성해 보지 않아서 그런지 막연한 걱정만 가득하다...

profile
Backend Dev

0개의 댓글