소프트웨어공학·테스트 핵심정리
개발 생명주기, 설계 원칙, 테스트 기법을 실제 문항 판단 기준으로 정리합니다.
생명주기 모델
폭포수는 단계와 산출물이 명확하지만 변경 대응이 어렵고, 반복·점진 모델은 피드백을 반영합니다. 애자일은 짧은 주기, 작동 소프트웨어, 고객 협업을 강조합니다.
- 프로토타이핑은 요구사항을 구체화하는 데 유리하다.
- 나선형은 반복과 위험 분석을 강조한다.
- DevOps는 개발과 운영의 협업·자동화를 지향한다.
결합도와 응집도
모듈 내부 요소가 하나의 목적에 집중할수록 응집도가 높고, 모듈 사이 의존이 적을수록 결합도가 낮습니다. 좋은 설계는 높은 응집도와 낮은 결합도를 지향합니다.
- 내용 결합도는 매우 강한 결합이다.
- 기능적 응집도는 높은 응집 형태다.
- 공통 데이터 영역의 공유는 공통 결합도와 관련된다.
테스트 설계
블랙박스 테스트는 명세와 입출력, 화이트박스 테스트는 내부 제어 흐름과 경로를 봅니다. 경계값 분석은 동등 분할의 경계 주변 오류를 집중적으로 찾습니다.
- 결정 커버리지는 각 분기 결과를 수행한다.
- 회귀 테스트는 변경이 기존 기능을 깨뜨렸는지 확인한다.
- 통합 테스트는 모듈 간 인터페이스 오류를 찾는다.
요구사항에서 적합한 개발·테스트 기법 고르기
문항의 핵심 단어를 변화 대응, 위험 분석, 빠른 피드백, 단계별 산출물 중 하나로 분류하면 생명주기 모델을 고르기 쉽습니다. 테스트는 대상의 내부 구조를 보는지, 명세의 입력·출력을 보는지, 변경 후 기존 기능을 확인하는지를 기준으로 구분합니다.
- 위험이 크고 반복적으로 분석한다는 표현은 나선형 모델의 단서다.
- 동등 분할·경계값·원인결과 그래프는 블랙박스 관점이다.
- 스텁은 하위 모듈을, 드라이버는 상위 호출 모듈을 대신한다.
요구사항·형상관리·테스트 수준
요구사항은 기능과 비기능으로 나누고 추적표로 설계·구현·테스트 산출물과 연결합니다. 형상관리는 변경 요청을 식별·통제·기록·감사하며, 테스트는 단위·통합·시스템·인수 수준별 책임과 목적을 구분해야 합니다.
- 성능·보안·가용성·사용성은 대표적인 비기능 요구사항이다.
- 베이스라인은 공식 검토와 승인 뒤 변경 통제를 받는 기준 산출물이다.
- 상향식 통합에는 드라이버, 하향식 통합에는 스텁이 필요할 수 있다.
- 알파 테스트는 개발 조직 내부, 베타 테스트는 제한된 실제 사용자 환경에서 수행하는 방식이다.
요구사항 분석·UI·인터페이스 설계
요구사항은 도출·분석·명세·확인 과정을 반복하며 모호성·충돌·누락과 시험 가능성을 검토합니다. UI는 사용자의 과업 흐름과 피드백·일관성·오류 예방을, 인터페이스는 송수신 주체·데이터 형식·호출 규약·예외와 재처리를 명세해야 합니다.
- 요구사항 추적성은 상위 요구와 설계·구현·테스트 산출물의 양방향 연결을 확인한다.
- 유스케이스의 include는 공통 기능의 필수 포함, extend는 조건부 확장을 표현한다.
- UI 프로토타입은 화면을 확정하는 산출물이 아니라 사용 흐름과 요구를 검증하는 수단으로 활용할 수 있다.
- 인터페이스 명세에는 데이터 타입·길이·필수 여부·코드 체계·오류 응답과 타임아웃·재시도 정책이 포함될 수 있다.
품질·추정·프로젝트·배포 관리
품질은 기능 적합성뿐 아니라 성능 효율성·호환성·사용성·신뢰성·보안성·유지보수성·이식성처럼 서로 다른 특성을 평가합니다. 프로젝트 문제는 작업 범위·일정·비용·위험을 산출물과 연결하고, 배포 문제는 버전·환경·롤백 가능성을 확인합니다.
- LOC는 코드 크기, 기능점수는 사용자 관점 기능을 바탕으로 규모를 추정하며 언어 의존성이 다르다.
- CPM/PERT에서는 선행관계로 네트워크를 만들고 여유시간이 0인 주공정을 확인한다.
- 형상 식별·통제·상태 기록·감사는 변경 요청의 승인 여부만이 아니라 어떤 버전이 배포됐는지 추적한다.
- CI는 변경을 자주 통합·검증하고, 지속적 전달은 배포 가능한 상태 유지, 지속적 배포는 검증된 변경의 운영 반영까지 자동화한다.
- 회귀 테스트는 수정된 기능만 다시 보는 것이 아니라 변경으로 기존 동작이 깨졌는지 확인한다.
시험에 바로 쓰는 비교표
| 구분 | 판단 기준 | 대표 예 | 출제 함정 |
|---|---|---|---|
| 응집도 | 한 모듈 내부 기능의 관련성 | 기능적 응집 | 높을수록 바람직 |
| 결합도 | 모듈 사이 의존 정도 | 자료 결합 | 낮을수록 바람직 |
| 블랙박스 | 명세·입출력 | 경계값·동등분할 | 내부 경로를 기준으로 하지 않음 |
| 화이트박스 | 제어 흐름·경로 | 분기·조건 커버리지 | 요구사항 누락을 단독으로 보장하지 않음 |
지문 표현을 판단 기준으로 바꾸기
- 입력 범위의 경계 주변을 검사한다 → 경계값 분석
- 변경이 기존 기능을 깨뜨렸는지 확인한다 → 회귀 테스트
- 모듈 내부가 하나의 기능에 집중한다 → 기능적 응집도
자주 틀리는 판단
- 응집도와 결합도의 바람직한 방향을 반대로 기억
- 인수 테스트와 단위 테스트의 수행 목적 혼동
- 경계값 분석을 화이트박스 기법으로 분류
개념을 확인했다면 실제 문제에서 판단 기준을 적용해보세요.
분야별 문제 풀기