시스템 테스트는 통합한 모듈들이 요구사항에 잘 맞게 작동이 되는지를 판단하게 되며 작동 시간, 처리 능력, 부하, 복구 등과 같은 비기능적인 요소들도 점검한다. 시스템 테스트는 White Box 레벨이 아닌 Black Box 레벨에서 주로 수행하게 되어서 블랙박스 테스트 분류에 속하며, 해당 시스템에 대한 지식이 없어도 테스트를 수행할 수 있다. 단위 테스트와 통합 테스트는 동일한 환경을 맞춰서 수행을 하지 않는다. 단위 테스트야 개발자가 만든 Dummy 객체 등을 이용해서 테스트를 수행할 수 있으며 컴포넌트 혹은 모듈이 정상적으로 돌아가는지 개별적으로 테스트하는 것에 목적을 두고 있으며, 통합 테스트는 각 모듈들이 잘 연결되는지 테스트하며 이를 위해 Test Driver나 Test Stub과 같은 마찬..
통합테스트는 모듈을 통합(Integrate)하는 단계에서 수행하는 테스트이다. 단위 테스트를 우선 수행하여 모듈들이 각각 정상적으로 작동이 되는 것을 확인했다면 이제 이 모듈들을 연동하여 테스트를 수행하게 되는데 이것이 통합 테스트이다. 단위 테스트에서 찾지 못하는 연동시 발생하는 버그 등을 찾을 수 있으며, 다른 모듈들과 동시 다발적으로 테스트를 수행해야 하기 때문에 단위 테스트와 다르게 일반적으로 테스트를 교육 받은 전문적인 테스터와 함께 수행하게 된다. 테스트 시 컴포넌트간의 I/F(인터페이스)를 테스트 하는 것은 물론이고, 운영체제, 파일 시스템, 하드웨어, 시스템간 인터페이스와 같은 시스템의 각기 다른 부부과 상호 연동하는 동작을 테스트하게 된다. 소프트웨어 상호작용 테스트, 통합 테스트통합 테..
테스트 드라이버(Test Driver)와 스텁(Stub)은 비슷한 상황에서 사용되는 용어이지만, 이 둘을 제대로 구분하는 개발자는 흔치 않다. (물론 전문적인 테스터들은 다 알겠지만) 일반적으로 어떤 모듈을 만들었을 때 이 모듈을 테스트해야 되는 경우가 있다. 즉, 완성된 모듈을 호출하여 테스트를 해야 하는데 호출하는 녀석이 완벽히 만들어지지 않을 경우 이 호출하는 녀석을 임시로 만들어서 호출을 할 수 있다. 테스트 드라이버(Test Driver) 컴포넌트나 시스템을 제어하거나 호출하는 컴포넌트를 대체하는 소프트웨어 컴포넌트 또는 테스트 툴. 스텁(Stub) 골격만 있는 또는 특별한 목적의 소프트웨어 컴포넌트를 구현한 것. 스텁을 호출하거나 또는 스텁에 의존적인 컴포넌트를 개발하거나 테스트할 때 사용됨...
개발을 한참 하던 시기, 국내에 ISTQB(International Software Testing Qualification Board)라는 자격증이 들어오면서 한 때 테스터에 대해서 진심으로 고민을 했던적이 있었다. 국내에 관련 자격을 취득한 사람이 매우 전무하던 시기이다 보니 왠지 모르게 선구자가 될 수 있다는 생각과 꽤 성장을 할 수 있는 분야로 느꼈으며, 내가 테스트를 꽤 잘하기도 했었기 때문이다. 개발을 1990년부터(Basic) 시작하다보니 남들보다 당연히 개발을 잘하기도 했었고, 추리 소설을 즐겨 읽는 성격이 가미되어 어느 부분에 문제가 발생할 지 등을 남들보다 잘 예측하기도 했다. 그리고, 반년 정도 테스팅 업무를 지원하기도 했는데(스크립트 만드는 것과 테스트 도구를 개발하는 것) 이때 테스..
인공지능이라는 개념을 제일 처음 만든 사람은 누구일까? "이미테이션 게임"이라는 영화를 본 사람은 튜링이 마지막에 기계와 인간 사이에서 혼란을 느끼는 장면에 의아해 했을 것이다. 앨런 튜링은, 최초의 컴퓨터(물론 기준을 어떤걸로 잡느냐에 따라서 최초냐 아니냐 말이 많다.)를 만드는 것부터 시작해서 인공지능의 개념까지 만든 컴퓨터계에서 입지전적인 인물이다. 베네딕트 컴버배치와 전혀 안 닮았지만, 왠지 튜링은 베네딕트와 더 어울린다.;;; 사람들마다 인공지능에 대한 기준이 존재한다. 누구는 정말 인간같이 똑같이 생각하는 마치 "매트릭스"에서의 컴퓨터 수준의 인공지능으로 볼 수 있지만, 앨런 튜닝은 간단했다. 인간이 컴퓨터와 대화를 하는데 컴퓨터를 사람으로 착각한다면, 해당 컴퓨터는 사고를 가지고 있고, 그것..