[ICDL Computing(PYTHON)] 5장. 테스트, 디버그, 릴리즈

2023. 4. 5. 20:16자격증/ICDL Computing PYTHON

5.1 테스트

  5.1.1 프로그램 개발 단계

1. 요구사항 분석Requirements Analysis; 사용자의 정확한 요구사항, 즉 정보를 파악. 사용자와의 대화와 업무 범위를 파악하는 과정.

2. 소프트웨어/시스템 설계Software/System Design; 개발될 프로그램을 설계. 객체의 표현 방식을 택하고 각각의 연산을 위한 알고리즘을 작성.

3. 프로그래밍Programming, Coding; 설계된 논리를 직접 프로그램 언어로 바꾸는 작업.

4. 테스트 Software Testing; 실제 데이터나 모의 데이터를 이용하여 검증.

5. 배포/사용Release/Use; 프로그램을 사용자가 받아서 사용.

6. 유지보수Maintenance; 사용자가 사용하는 중에 발생하는 오류나 새 기능, 운영체제변경upgrade을 재개발하는 과정.

 

  5.1.2 테스트

- 단위 테스트unit test; 최소 단위들인 기능, 함수 등을 대상으로 테스트 수행.

- 구성 테스트component test; 프로그램의 각 단위를 연동하여 각 단위가 예상대로 동작하는지 확인하여 여러 단위를 복합적으로 확인하는 과정.

- 시스템 테스트system test; 프로그램을 구상하고 있는 모든 단위와 그 프로그램이 동작하는 HW(서버, PC 등) 등을 대상으로 시스템 전체가 상호작용에 문제가 없는지 확인하는 과정.

- 베타 테스트beta test; 사용자에게 공개하기 직전의 종합 테스트. 전체적인 사용이나 활용에 문제가 없는지 최종 확인.

 

  5.1.3 실행run

# 윈도우 바탕화면에서 파이썬 명령을 호출한다.(X) ->파이썬 아이콘이 있을 경우 실행시킬 수 있다.

 

5.2 프로그래밍 에러와 디버그

  5.2.1 에러의 구분

# 시스템 에러는 프로그램 에러의 종류는 아니다.

 

  5.2.2 문법 에러(구문 에러, Syntax error) - 프로그램을 실행하지 않고 오류 발견.

1. 인용부호 에러 

>>>'hello"

Syntax error: EOL while scanning string literal

2. 들여쓰기 에러

unexpected indent

3. 구두점punctuation 에러

조건문 같은 거에 콜론 빠져있으면.

invalid syntax

 

  5.2.3 런타임 에러 (runtime error), 예외처리

; 실행하는 동안 발생하는 에러. 처리하고자 하는 값이 잘못되어 발생하거나, 실행되는 컴퓨터의 리소스(메모리, 디스크용량)가 부족한 경우 등 다양한 환경에서 발생할 수 있음.

1. 연산자 오류

문자열은 /, - 사용할 수 없음.

TypeError: unsupported operand type(s) for /: 'str' and 'str'

2. 0으로 나누기 에러ZeroDivisionError

숫자를 0으로 나누려고 할 때.

ZeroDivisionError: division by zero

3. 잘못된 명명naming

잘못된 변수 이름을 사용하면.

NameError: name '변수' is not defined

 

예외exception처리

에러로 인해 프로그램이 강제종료된다면 프로그램을 처음부터 다시 수행하거나 자료를 다시 입력해야 하는 등의 문제가 생길 수 있어 종료되지 않게 처리해야만 함.

while True:
    x=int(input('분모'))
    y=int(input('분자'))
    try:
    	print(x/y)
    except ZeroDivisionError:		#except 에러종류:
    	print('분모가 0으로 입력되었습니다.')
# 에러의 종류 확인할 수 없을 때
except Exception:
	print('에러발생')

  5.2.4 논리에러logic error

; 설계 및 개발자의 실수 등에 의해 발생할 수 있음. 문법오류는 없음. 아무런 오류 메시지 출력하지 않음.

 

5.3 디버그 기능

디버깅: 프로그램에서 잘못된 부분을 찾아서 수정하거나 처리하는 과정

Shell메뉴에서 Debug->Debugger를 실행. 확인해보고 싶은 부분에 커서를 위치시킨 후 오른쪽 마우스를 이용하여 'Set Breakpoint'를 설정. 중단점이 설정되면 관련 부분은 노란색으로 표시됨.

 

5.4 버전과 릴리스

구분된 제품도 프로그램이 갱신되거나 변경된 주기에 따라 버전version을 통해 구분하게 됨.

배포release: 실제 개발행위가 완료되어 사용자에게 전달됨.

각 배포들은 배포 시점에 따른 기능상의 차이를 표기하기 위해 version을 표시하여 관리되는 것.

버전은 일반적으로 개발단계에서는 0.1과 같은 소수점 아랫자리로 부여. 여기서 버그패치등을 하면 추라고 한자리 더 붙여서 0.11과 같이 수정.

이후 기능 개선과 같이 좀 더 많은 수정 있으면 0.2와 같은 버전올림 수행.

최종 테스트 후 사용자에게 배포하여 사용하게 하는 베타 테스트 단계에서는 0.9같은 1과 가까운 수 부여.

최종 배포 시 1.0 부여한 후 지속적으로 관리.

 

- 웹서비스의 배포; 서비스하고있는 웹서버나 WAS 상에 작성한 프로그램을 사용자가 사용할 수 있도록 설치하는 행위를 지칭.

-PC 프로그램 배포; PC에서 단독적으로 실행할 수 있도록 .exe와 같은 실행파일 형태로 만들어 배포.

 

# 소프트웨어의 변경을 나타내는 숫자를 버전이라고 함.