[팀블로그] 소프트웨어 테스팅 참고서

 

 

     

질문

“테스팅은 디버깅과 근본적으로 구분되는 개념이다.” 라는 말은 굉장히 당연한거 같은데 ISTQB에서 굳이 언급한 이유가 있나요?

 

ISTQB 버전

ISTQB Syllabus 2018

 

답변

ISTQB에서 말하는 테스팅과 디버깅의 차이

이 질문에 대해 ISTQB Syllabus는 아래와 같이 설명합니다.

 

  • 테스팅은 디버깅과 근본적으로 구분되는 개념이다. 테스팅은 결함에 의해 발생된 장애를 드러내는 활동
  • 반면, 디버깅은 결함의 원인을 밝히는 개발 활동으로, 코드를 수정하고 올바르게 수정되었는지 확인
  • 디버깅 이후에 테스터에 의해 확인 테스팅(Confirmation testing)이 발생하며, 이 과정에서 장애가 정말로 수정되었는지 확인

 

Software Testing Tutorials - Testing vs Debugging

 

사실 "테스팅(Testing)과 디버깅(Debugging)의 차이"에 대해 지금은 어느 정도 구분해서 사용하지만, 오랜 옛날에는 이를 혼용하여 사용했었습니다. 마치 요즈음에 "테스팅(Testing)과 QA의 차이"를 구분하지 못하는 것과 비슷했습니다.

 

소프트웨어 테스팅이라는 개념은 1957년까지는 별도로 구분되어 있지 않았습니다. 디버깅과 테스팅을 처음으로 구분한 것은 1957년에 발간된 『Digital Computer Programming - Danial D. McCraken』의 저서를 읽고 Charles L. Baker가 책을 리뷰하는 저널을 발표하여 정의하였습니다. 1957년에 Charles L. Baker는 "디버깅과 테스팅은 다른 활동이다. 이 두 활동은 서로 구분해야 한다."라고 선언하였고, 그 이후에야 소프트웨어에서 테스팅의 존재가 명확히 구분되기 시작하였습니다.

 

이후 1979년 발간된 『소프트웨어 테스팅의 기술(Art of software testing)』이라는 책에서 저자인 Glenford Myers는 소프트웨어 테스팅 활동을 다음과 같이 정의하였습니다. Glenford는 "소프트웨어 테스팅은 오류를 찾을 목적으로 수행하는 활동"이라 정의하였고, 이후 여러 국제 표준에서 이 정의를 차용 및 변형하여 사용하게 됩니다.

 

우리가 알아야 하는 소프트웨어 테스팅의 의미

소프트웨어 테스팅 기술이 발전함에 따라 온라인 사전인 Wikipedia에서 설명하는 Software testing 페이지에서는 "소프트웨어 또는 응용 프로그램에 버그가 없고, 설계 및 개발에 따라 기술 요구 사항을 충족하고 모든 예외 및 경계 사례를 처리하여 사용자 요구 사항을 효과적이고 효율적으로 충족하는지 확인하고 검증하는 프로세스 전체"를 의미하는 말로 통용되기 시작하였습니다.

 

이와 다르게 디버깅은 "소프트웨어의 버그를 수정하는 프로세스"라는 의미로 사용됩니다. 디버깅을 통해 발견한 오류를 식별, 분석, 제거하는 활동으로 정의할 수 있습니다. 이 디버깅 활동은 소프트웨어가 제대로 실행되지 않은 후 시작되며, 발생한 문제를 해결하고, 소프트웨어를 성공적으로 테스트하면 종료됩니다. 디버깅은 소프트웨어 생명주기의 모든 단계에서 발생하며, 매우 복잡하고 지루한 작업으로 간주되곤 합니다.

 

그 외, 자세한 비교 내용은 Differences between Testing and Debugging 페이지를 참고하세요.

 

참여자 정보

 글쓴이 : 현의노래, 천년나무

• 검토한이 : 아이티마니

 

STEEG 개인 의견

※ STEEG 전문가들의 개인 의견은 각 전문가 개인이 경험한 경력에 따른 주관적 견해입니다. 
    이런 개인 의견들의 경우는 그룹 전체의 의견을 대표하지 않음을 알립니다.

본문 내용에 대한 전문가 의견이 존재하지 않습니다.

 

관련 참고 자료

 ※ 아래는 필자들이 선정한 관련 외부 자료입니다. 
     아래 자료들은 필자들이 작성한 본문 의견과 다를 수 있으며, 필자들과 관련되지 않았을 수 있습니다.

 

Baker, C., Review of D.D. McCracken’s “Digital Computer Programming”. Mathematical Tables and Other Aids to Computation 1 I, 60, October. 1957 (실제 원문은 찾을 수 없으며, 해당 Reference 정보만 탐색 가능)

 

Difference between Testing and Debugging

Difference between Testing and Debugging Both Testing and Debugging are the most important steps or practices during the development and after the development of any software or application developed in any programming language. Now on the basis of feature

www.tutorialspoint.com

 

Differences between Testing and Debugging - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

Software testing - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search An examination of how efficient and reliable software is at performing its intended function Software testing is an investigation conducted to provide stakeholders with information abo

en.wikipedia.org

 

Glenford Myers - Wikipedia

Glenford J. MyersBorn(1946-12-12)December 12, 1946Saugerties, New York, U.S.Alma materClarkson UniversitySyracuse UniversityPolytechnic Inst, NYUKnown forSoftware testingIntel microprocessorsCommunications interceptionFounder and CEO, RadiSysFounder and

en.wikipedia.org

 

The Art of Software Testing

The Art of Software Testing

www.aladin.co.kr

 

이 글을 공유합니다.

facebook twitter kakaoTalk kakaostory naver band