다라다라V
article thumbnail
728x90
반응형
본 글은 "최은만"님의 [소프트웨어 공학의 모든 것]의 연습 문제 답을 공유하고자 작성되었으며, 필자가 직접 문제를 풀며 작성한 것이기에 오류가 있을 수 있습니다. 댓글로 알려주시면 반영하도록 하겠습니다.

시리즈 보기
[소프트웨어 공학의 모든 것] 1장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 2장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 3장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 4장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 5장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 6장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 7장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 8장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 9장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 10장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 11장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 12장 연습 문제 해답 및 풀이 해설

 

💡 

테스팅과 디버깅의 목적을 올바로 설명한 것은?


① 테스팅과 디버깅 모두 오류를 찾아내는 작업이다.
② 테스팅과 디버깅 모두 오류를 수정하는 작업이다.
③ 테스팅은 오류를 찾는 작업이며 디버깅은 오류를 수정하는 작업이다.
④ 테스팅은 오류를 수정하는 작업이며 디버깅은 오류를 찾는 작업이다.

 

💡 

소프트웨어 테스트에 대한 설명으로 옳은 것은?


① 코딩 후만이 아니라 소프트웨어 개발의 전 단계에 걸쳐 발생되는 작업이다.
② 코딩 후 프로그램이 바로 동작하는가를 확인하는 작업만을 의미한다.
③ 완벽한 시험에 의하여 소프트웨어가 오류가 없음을 증명할 수 있다.
④ 실시간 소프트웨어의 시험은 타이밍 제약으로 시험하기 쉽다.

 

💡 

테스팅에서 프로그램의 실제 실행 결과가 올바른 결과인지를 판단하는 메커니즘은?


① 테스트 하니스(test harness)
② 테스트 적합성 기준(test adequacy criteria)
③ 테스트 오라클(test oracle)
④ 테스트 종료 기준(test completion criteria)

 

💡 

〈명세〉는 어떤 과목의 통과 여부를 결정하는 프로그램에 대한 명세이다.〈코드〉의 프로그램은〈명세〉에 따라 작성하였지만 오류가 있다.〈코드〉의 오류를 검출할 수 있는 테스팅 기법과 테스트 입력을 바르게 짝지은 것은? [7급 국가직 공무원 시험, 2018]

입력 점수가 70보다 크거나 같으면 통과이고 그렇지 않으면 통과하지 못한다. 점수는 0이상 100이 하 범위를 갖는 정수형이다. 프로그램의 반환 값이 0이면 통과, 1이면 통과하지 못함,시이면 입력 이 범위를 벗어났음을 나타낸다.

 

① 경계 값 분석 기법,70
② 경계 값 분석 기법, 100
③ 동등 분할 기법. 50
④ 동등 분할 기법,80

 

💡

단위 테스팅에 대한 설명 중 옳지 않은 것은?


① 화이트박스 테스팅을 위하여 우선 테스트 검증 조건을 결정하여야 한다.
② 화이트박스 테스팅을 위하여 테스트 드라이버와 스럽이 필요하다.
③ 화이트박스 테스팅을 위하여 동등 분할(equivalence partitioning) 작업이 필요하다.
④ 블랙박스 테스팅은 모듈의 입출력과 수행하는 기능만 테스트한다.

 

💡 

블랙박스 테스팅 기법이 아닌 것은?


① 동등 분할(Equivalence partitioning)
② 경계값 분석(Boundary value analysis)
③ 원인 결과 그래프(Cause and effect graphing)
④ 의사 결정 검증 조건(Decision coverage)

 

💡 

같은 유형의 소프트웨어 테스트 기법으로만 묶은 것은? [7급 국가직 공무원 시험,2017]

ㄱ. 기본 경로 테스트
ㄴ. 페어와이즈 테스트
ㄷ. 모델 기반 테스트
ㄹ. 분기 커버리지
ㅁ. 직교 배열 테스트

 

① ㄱ, ㄴ, ㄹ

② ㄱ, ㄷ, ㄹ

③ ㄴ, ㄷ, ㅁ

④ ㄱ, ㄴ, ㄷ, ㄹ

 

💡 

개발과정에서 실시되는 시험의 순서를 바르게 나열한 것은?

ㄱ. 모듈 내부적인 오류를 발견하기 위한 시험
ㄴ. 사용자의 요구사항을 만족하는지 판단하는 시험
ㄷ. 모듈간의 인터페이스 오류를 발견하기 위한 시험

 

① ㄱ → ㄴ  → ㄷ

② ㄴ  → ㄱ  → ㄷ

③ ㄱ  → ㄷ  → ㄴ

④ ㄴ  → ㄷ  → ㄱ

 

💡 

소프트웨어 테스트에 대한 설명으로 옳지 않은 것은?


① 동료 검토(peer review)는 개발한 원시 코드나 여러 가지 산출물에 대한 검토를 의뢰하여 오류를 찾는 방법이다.
② 기본 경로 테스트(basic path test)는 원시 코드의 독립적인 경로가 최소한 한 번은 실행되는 테스트 케이스를 찾아 테스트를 수행한다.
③ 회귀 테스트(regression test)는 한 모듈의 수정이 다른 부분에 미치는 영향을 최소화하기 위해 필요하다.
④ 블랙박스 테스트(black box test)는 입력 값에 대한 예상 출력 값을 정해 놓고 그대로 결과가 나오는지 원시 코드를 보며 확인한다.

 

 

💡 

개발자 A는〈명세〉에 따라〈코드〉를 작성한 후 테스팅을 수행하였다. A는 100% 문장 커버리지를 달성하면서 동시에 프로그램의 오류를 발견할 수 있었다 A가 사용한 테스트 입력은? (단,단축 연산(short-circuit evaluation)^ 수행하지 않는다) [7급 국가직 공무원 시험, 2019]

두 정수를 입력 받아 두 정수 중 적어도 하나가 음수이면 두 정수의 곱을 반환하고 그렇지 않다면 두 정수의 합을 반환한다.

 

[정답] ① (v1 = -2, v2 = 2)

 

💡 

다음 제어 흐름 그래프에 나타난 프로그램을 테스트할 때,옳지 않은 것은? [7급 국가직 공무원 시험,2017]

 

① 분기 커버리지를 만족하는 최소의 테스트 케이스는 2개이다.
② 기본 경로의 개수는 3개이다.
③ 문장 커버리지를 만족하는 최소의 테스트 케이스는 1개이다.
④ {(x:l, y:2, z:0), (x:5, y:0, z:0)}은 분기 커버리지를 만족하지 못한다.

 

💡 

다음 코드에서 McCabe의 싸이클로매틱 복잡도는 얼마인가? [7급 국가직 공무원 시험, 2013]

 

① 1

② 2

③ 3

④ 4

💡 

다음 C 프로그램이 조건 커버리지(condition coverage) 100% 만족하기 위한 테스트 데이터 집합은? 단 short-circuit evaluation은 수행하지 않음. [7급 국가직 공무원 시험, 2012]

 

① (x:10, y:10, z:10), (x:20, y:10, z:3)
② (x:10, y:20, z:10), (x:20, y:20, z:20)
③ (x:20, y'10, z:3), (x:20, y:20, z:20)
④ (x:20, y:10, z:10), (x:10, y:20, z:0)

 

💡 

다음 설명에 해당하는 테스트는?

• 소프트웨어의 설계 한계를 넘어서는 부하를 준다.
• 시스템의 장애 행동을 테스트한다.
• 시스템이 최대 부하가 걸렸을 때만 보일 수 있는 결함을 드러나게 한다.

 

① 보안(security) 테스트
② 회귀(regression) 테스트
③ 스트레스(stress) 테스트

④ 조합(combinatorial) 테스트

 

💡 

통합 테스트에 대한 설명으로 옳은 것은?


① 통합 테스트 동안 발생하는 주요 어려움은 오류들을 지역화(localization)하는 것이다.
② 상향식 통합은 시스템의 계층구조와 상위층의 중요한 인터페이스를 조기에 테스트할 수 있다.
③ 하향식 통합은 최하위 모듈을 먼저 통합하여 테스트하는 방식이다.
④ 단위 모듈 테스트를 철저하게 하면 통합 테스트를 수행할 필요가 없다

 

 

💡 

통합 테스트 단계에 적용할 기법을 바르게 선택한 것은?


① 명령어 처리 모듈을 먼저 구현하고 시험하기 위하여 상향식을 채택하였다.
② 시스템 구조도의 최하위 층에 있는 모듈을 먼저 구현하고 테스트하기 위하여 하향식을 채택하였다.
③ 특수하고 중요한 기능을 수행하는 최소 모듈 집합을 먼저 구현하고 테스트하기 위하여 연쇄식을 채택하였다.
④ 일정 계획의 융통성을 획득하기 위하여 빅뱅 통합을 채택하였다.

 

 

💡 

테스트에 대한 설명으로 옳지 않은 것은?


① 회귀 테스트는 이미 테스트했던 부분을 다시 실행해보고 새로운 변화로 인한 부작용이 있는지 확인하는 과정이다.
② 통계적 테스트에서는 운영 프로파일을 반영하는 테스트 데이터의 집합을 구성한다.
③ 상향식 통합 테스트에서는 테스트케이스 입출력을 조정하기 위한 스럽(stub) 프로그램을 추가로 작성한다.
④ 스트레스 테스트는 소프트웨어 설계 한도를 넘는 상황이 되도록 만들어서 시스템이 어떻게 처리하는가를 테스트하는 것이다.

 

💡 

다음은 테스트 방법에 관한 설명이다. 각 테스트 방법에 대한 설명과 해당되는 테스트 방법의 이름이 가장 잘 짝지어진 것은? [정보시스템 감리사 자격시험,2016]

가. 개발된 소프트웨어를 사용자가 실제 운영 환경에서 수행하는 테스트
나. 시스템의 변경된 부분이 기존 시스템에 부작용을 일으키는지 여부를 파악하기 위한 테스트
다. 개발자의 통제 하에 사용자가 개발 환경에서 수행하는 테스트
라. 시스템에 고장이 발생하더라도 시스템이 정상적으로 작동하는지 여부를 파악하기 위한 테스트

 

① 가: 알파 테스트 나: 뮤테이션 테스트 다: 베타 테스트 라: 복구 테스트
② 가: 베타 테스트 나: 뮤테이션 테스트 다: 알파 테스트 라: 스트레스 테스트
③ 가: 알파 테스트 나: 회귀 테스트 다: 베타 테스트 라: 스트레스 테스트
④ 가: 베타 테스트 나: 회귀 테스트 다: 알파 테스트 라: 복구 테스트

 

💡 

테스트를 수행하여 결함이 발견되면 발견된 결함에 대한 정보가 개발자에게 제공되며,이러한 문서를 결함 보고서(defect report, bug report, anomaly report 등) 라고 부른다. 결함 보고서에서 일반적으로 포함되어야 할 항목과 가장 거리가 먼 것은?


① 결함을 유발한 입력값
② 테스트 케이스의 실행에서 관찰된 실제 수행 결과
③ 테스트 케이스의 실행에서 기대된 값
④ 발견된 결함을 제거하기 위한 해결 방안

 

 

💡 

자동화 테스팅 도구의 정적분석 도구에 대한 설명으로 옳은 것은? [7급 국가직 공무원 시험,2010]


① 프로그램의 실행 상태를 순간 포착하여 감시하는 프로그램 모니터링 도구
② 스럽 (stub)과 드라이버
③ 프로그램에서 오류 가능성이 있는 부분을 지적하는 코드 분석 도구
④ 테스트 케이스에 의해 프로그램 각 문장이 실행된 횟수를 측정하는 도구

반응형
profile

다라다라V

@DaraDaraV

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!