정보시스템 감리 기출해설/소프트웨어공학 해설

(제 24회) 소프트웨어 공학 / (46)~(47) 해설

아이티신비 2024. 7. 26. 09:00

46. 다음은 JUnit4의 코드 골격이다. 테스트 수행시에 메소드들의 수행순서로 가장 적절한 것은?

public class TestSample {
@BeforeClass
public static void a() { }
@AfterClass
public static void b() { }
@Before
public void c() { }
@After
public void d() { }
@Test
public void t1() { }
@Test
public void t2() { }
}

① a(), b(), c(), d(), t1(), t2()

② a(), c(), t1(), t2(), d(), b()

③ a(), c(), t1(), d(), c(), t2(), d(), b()

④ a(), c(), t1(), d(), b(), a(), c(), t2(),d(), b()

 

▣ JUNIT 4 어노테이션

@ BeforeClass : 테스트 클래스 내에서 수행 전 한 번만 실행, static method 여야 함

@ AfterClass : 테스트 클레스 내에서 수행 후 한 번만 실행, static method 여야 함

@ Before : 테스트 케이스 수행 전 반복실행

@ After : 테스트 케이스 수행 후 반복실행

@ Test : 테스트 메소드 지정

 

● JUNIT 4 어노테이션 실행 순서

 

 

정답 : ③

 

47. 다음 중 Release testing에 대한 설명으로 가장 적절한 것은?

 

① 심각한 결함을 유발하는 버그들을 검출하기 위해 결함 테스팅을 수행한다.

② 시스템을 개발한 팀원들로 구성된 검증팀을 따로 만들어 테스팅을 수행한다.

③ 외부 배포 이전에 시스템의 요구명세 기반 블랙박스 테스팅을 수행한다.

④ 시스템 테스팅에서 확인된 요구사항은 제외하고 변경 항목들을 테스트한다.

 

▣ 릴리스 테스팅(Release Testing)

  • 개발팀 외부에서 사용하기로 의도된 시스템의 특정 릴리스를 테스팅 하는 프로세스
  • 보통 시스템 릴리스는 고객과 사용자를 위한 것임
  • 그러나 복잡한 프로젝트에서는 릴리스가 관련된 시스템을 개발하는 다른 팀을 위한 것일 수 있음
  • 소프트웨어 제품의 경우 릴리스는 판매를 준비하는 제품 관리자를 위한 것
  •  
  • 개발 프로세스 중에 릴리스 테스팅과 시스템 테스팅 간 두 가지 중요한 구분이 있음

- 시스템 개발팀이 릴리스 테스팅의 책임을 지면 안된다

- 릴리스 테스팅은 시스템이 요구사항에 맞고 시스템의 고객에게 사용되기에 충분히 괜찮다는 것을 보장하기 위한 확인 점검 프로세스 이다. 개발 팀에 의한 시스템 테스팅은 시스템에 있는 버그를 발견하는데 집중하여야 한다(결함 테스팅)

 

  • 릴리스 테스팅 프로세스의 주 목표는 시스템이 사용하기에 충분히 괜찮다는 것을 시스템의 공급자에게 확신시키는 것
  • 만일 그렇다면 제품이나 고객에게 인되되는 것으로 시스템이 릴리스 될 수 있음
  • 그러므로 릴리스 테스팅은 시스템이 명시된 기능, 성능, 확실성을 제공하며 일반적인 사용 중에 장애가 발생하지 않는다는 것을 보여주어야 함
  • 릴리스 테스팅은 보통 테스트가 시스템 명세로 부터 유도되는 블랙박스 테스팅 프로세스
  • 시스템은 그 행동이 시스템의 입력과 연관된 출력을 조사하는 것으로만 결정될 수 있는 블랙박스로 취급됨
  • 블랙박스 테스팅의 다른 이름은 소위 기능적 테스팅인데, 테스터가 기능만 고려하고 소프트웨어의 구현은 고려하지 않기 때문

 

정답 : ③

 




 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥