[ Software Testing ]

 Intention

  - 프로그램이 의도 한대로 수행되는지 보여주기 위함

  - 사용하기 전에 프로그램의 결함을 찾기 위함

 Typical Process

  - 가상의 데이터를 이용해서 실행한다.

  - 테스트 실행의 결과를 확인해야 한다.(Error, Anomalies (변칙), 비기능적인 속성들의 정보)

 

[ Goals of Testing ]

 개발자와 고객에게 소프트웨어가 요구사항을 만족한다는 것을 입증한다.

  - 사용자와 시스템 요구 문서의 모든 요구사항에 대해 적어도 하나의 시험이 있어야 한다. 어떤 시스템 들은 고객이 인도된 제품이 명세서와 일치하는지 정형화된 점검을 하는 명시적인 인수 시험을 가질 수도 있.

  - 검증 시험으로 귀결된다. 시스템이 기대한 대로 사용되는 지를 반영하는 주어진 시험 사례의 집합을 이용하여 시스템이 예상대로 정확하게 실행되는 가의 여부를 시험한다.

 소프트웨어의 동작이 부정확하고, 바람직하지 않고, 혹은 명세서와 일치하지 않는 소프트웨어의 결함이나 결점을 발견한다.

  - 결점 시험은 시스템 폭주, 다른 시스템들과 원하지 않는 상호작용, 부정확한 계산 그리고 데이터 변조와 같은 모든 종류의 바람직하지 않은 시스템 동작을 근절하는 데 관련이 있다.

  - 결점 시험으로 귀결된다. 결점을 나타내기 위해 시험 사례들이 설계된다. 시험 사례들은 의도적으로 분명하지 않을 수 있고 시스템이 보통 어떻게 사용되는 지를 반영할 필요가 없다. 검증 시험의 경우, 성공적인 시험이란 시스템이 정확하게 수행되는 것이다. 결점 시험의 경우, 성공적인 시험이란 시스템을 부정확하게 수행되도록 만드는 결점을 찾아내는 것이다.

 

[ Defect vs Bug] 

 서로 바꾸어 사용되어 진다.

 소프트웨어에서 에러, 결함, 실수, 결점을 뜻한다. 올바르지 않거나 예기지 못한 결과를 발생시키며, 의도하지 않은 방법으로 수행했을 시 발생한다.

 Defect가 좀더 보편적으로 공식적인 문서에 사용된다.

 Defect는 고객이 원하는 것을 소프트웨어가 실패했을 시 사용하고, Bug는 소프트웨어가 프로그래머의 의도한 바를 실패했을 시 사용된다.

  

[ Traditional Testing Process ]

 Test Case : inputs + statements to be tested + expected outputs

 

[ Stages of Testing ]

Development testing

개발 팀원들이 개발을 하는 동안 버그와 결함을 찾으면서 테스트 하는 것이다.

Release testing

별도의 테스팅 팀이 배포 전에 완벽한 버전을 위해 테스트 한다.

시스템이 사용자의 요구사항을 충족시키는지 점검한다.

Acceptance testing

소프트웨어를 사용자에게 전달 할지 말지를 정하기 위해 시스템의 사용자가 그들의 환경에서 테스트 하는 것이다.

 

댓글이나 공감 남겨주는 사람 착한사람

 

'학사 그리고 석사 > 소프트웨어공학' 카테고리의 다른 글

UML 이란  (0) 2019.11.06
Test-Driven Development(TDD)  (0) 2019.11.06
Release Management  (0) 2019.11.03
System Building  (0) 2019.11.03
Version Management  (0) 2019.11.03

+ Recent posts