테스트 관련 서적2018. 9. 15. 00:00
소프트웨어 개발의 모든 것
국내도서
저자 : 김익환,전규현
출판 : 페가수스 2010.06.01
상세보기


 



01. 주요키워드

 ◎ 기반시스템 : 기반시스템은 소프트웨어를 개발하는데 꼭 필요한 기초 환경이다. 기반시스템 없이는 생산적으로 소프트웨어를 개발할 수 없다. 기반 시스템은 소스코드를 체계적으로 안전하게 보관해주고, 프로젝트 구성원 간의 의사 소통을 원활하게 해주는 등 프로젝트의 모든 활동이 잘 진행되도록 돕는다. 




◎ 소스코드 관리시스템 : 소스코드 관리시스템은 형상관리시스템, SCM, SCCM, 버전관리시스템 등으로도 불린다. 경우에 따라 형상관리라는 말은 너무 광범위한 의미를 포함하게 되므로 혼란을 피하기 위해 가급적 사용하지 않는 것이 좋다. 


◎ 오픈소스 : 오픈소스 소프트웨어, OSS라고도 한다. 소프트웨어의 설계도에 해당하는 소스코드를 인터넷 등을 통하여 무상으로 공개하여 누구나 그 소프트웨어를 개량하고, 이것을 재배포할 수 있도록 하는 것 또는 그런 소프트웨어를 말한다. 


◎ 락킹 : 락킹 방법은 소스코드를 수정하려고 할 때 소스코드에 락을 걸어서 다른 사람이 수정할 수 없도록 하는 방법이다. 


◎ 머징 : 머징 방법은 소스코드에 락을 걸지 않고 여러 명이 동시에 수정을 하다가 나중에 소스코드를 체크인하는 사람이 먼저 갱신된 소스코드와 자신이 작성한 소스코드를 머지에서 등록하는 방법이다. 


◎ 저장소 : 프로젝트의 모든 프로그램 파일 및 그 변경 이력이 저장되는 곳이다. 소스코드 관리시스템의 클라이언트나 커맨드라인을 이용하여 여러 사람이 동시에 저장소에 접근할 수 있다. 


◎ 브랜치 : 브랜치란 필요에 의해서 소스코드를 분기하는 것이다. 브랜치를 얼마나 잘 통제하는가가 훌륭한 소프트웨어 회사와 평범한 소프트웨어 회사를 구별하는 핵심 요소 중 하나이다.


 

02. 요약정리


 ◎ 기반시스템은 소프트웨어를 개발하는데 꼭 필요한 기초 환경이다. 기반시스템 없이는 생산적으로 소프트웨어를 개발할 수 없다. 기반시스템은 소스코드를 체계적으로 안전하게 보관해주고, 프로젝트 구성원 간의 의사소통을 원활하게 해주는 등 프로젝트의 모든 활동이 잘 진행되도록 돕는다. 또 개발자들을 편하게 해주고, 불필요한 노력을 들이지 않게 해주며, 개발에 집중할 수 있게 해준다. 성공적인 프로젝트는 거의 다 적절한 기반시스템 하에서 개발된 것이라고 보면 된다. 




◎ 소스코드관리시스템을 도입하는 목적은 다음과 같다. 

- 소스코드관리에 대한 수십 년간 축적된 경험을 사용하게 해준다. 

- 소프트웨어의 품질을 향상시켜 준다. 

- 유지보수 비용을 절감시켜 준다. 

- 소프트웨어 개발 생산성을 향상시켜 준다. 


◎ 소프트웨어 관리시스템은 소프트웨어 개발에 있어서 가장 필수적인 요소이며, 이를 도입하면 구체적으로 다음과 같은 효과를 거둘 수 있다. 

- 소스코드의 변경을 감시하고 제어할 수 있다. 

- 소스코드로 인한 혼동이 최소화된다.

- 여러 버전의 병행개발을 쉽게 할 수 있다. 

- 소스코드와 개발문서, 프로그램의 일치성을 보장해준다. 

- 개발 과정의 투명성이 보장된다.

- 개발문서를 체계적으로 관리할 수 있다. 


◎ 회사 규모가 어느 정도 이상이 되면 여러 개발자가 같은 파일을 동시에 수정해야 하는 소스코드 충돌현상이 벌어진다. 소스코드 관리시스템에서 소스코드를 충돌 없이 관리하는 방법은 락킹과 머징 두 가지가 있다. 이 방법들을 쓰지 않고 개발자들이 동시에 동일한 소스코드를 수정한다면 소스코드가 뒤죽박죽되고 말 것이다. 


◎ 소프트웨어의 버그 관리를 엑셀이나 워드로 하고 있는 회사가 상당히 많다. 엑셀이나 워드 파일로 만들어서 파일서버에 넣어놓고 공유하는 식인데, 이는 대단히 원시적인 방법으로 이런 방법으로는 버그를 체계적으로 관리하기가 너무 어렵다. 소프트웨어를 개발하고 있다면 전용 버그관리시스템을 사용하는 것이 필수적이다. 

대부분의 버그관리시스템은 웹으로 접근할 수 있고 쉽게 사용할 수 있다. 모든 버그는 DB에 안전하게 보관되며 추적이 가능하다. 버그에 수많은 정보와 파일을 첨부할 수도 있다. 버그의 담당자가 누구이며 현재 무슨 일을 하고 있는지도 파악할 수 있고, 현재 버그가 어떠한 상태에 있는지도 알 수 있다. 


◎ 이슈의 속성들은 항상 올바른 상태 및 정보를 유지해야 한다. 이슈를 등록하는 사람은 본인의 자의적인 판단으로 과도하게 심각하게 설정하거나 우선순위를 높이기도 하기 때문에, 프로젝트 관리자는 이슈를 단순히 보기만 하는 것이 아니라 각 필드의 정보가 맞는지 확인하여 올바르게 유지를 해야 한다. 그렇지 않으면 버그에 대한 통계자료의 의미가 떨어질 것이다. 


◎ 테스트관리시스템은 테스트케이스를 저장, 관리하고 체계적인 테스트를 도와주는 시스템을 말하며 테스트 자동화 툴은 수많은 테스트 케이스를 미리 입력한 조건에 의해서 자동으로 테스트를 수행하여 테스트 효율성을 높여주는 툴을 뜻한다. 

기존에 테스트관리시스템 없이 테스트케이스를 엑셀에 저장하여 무리 없이 테스트를 해왔을 수도 있다. 이러한 방법을 계속 사용해도 별 문제는 없다. 한편, 지금까지 테스트케이스 없이 주먹구구식으로 테스트를 해왔다면 당장 테스트관리시스템을 도입한다고 해서 크게 얻을 수 있는 것은 없을 것이다. 먼저 테스트에 대한 기본적인 준비가 되어 있어야 테스트관리시스템을 사용할 수 있다고 볼 수 있다. 


◎ 프로젝트관리시스템을 이용하면 프로젝트의 진행 상황을 한 눈에 알 수 있고, 각 인력이 프로젝트의 어느 업무에 투입되고 있는지도 알 수 있다. 일정이 지연되고 있는지도 바로 알 수 있고, 리스크 관리를 도와줘서 리스크에 적절히 대처할 수 있도록 해준다. 프로젝트 진행 상황을 누구나 공유함으로써 의사소통에도 도움을 준다. 


◎ 요구사항관리시스템은 쉽게 도입하기 어렵다. 일단 요구사항 분석 능력이 충분해야 하고, 시스템을 도입한 뒤에도 충분히 연습을 많이 해야 한다. 도입을 결정 했다면, 우선 도입할 툴을 선택해야 한다. 요구사항 관리 툴은 크게 RDBMS 타입과 문서 타입으로 나뉜다. 문서타입은 MS워드 같은 워드프로세서에 기능이 추가되는 형태로 제공된다. 회사의 개발환경이나 문화, 플랫폼을 고려하여 툴을 선택하면 된다. 

 

 

 


 


 

 


 

03.  다음 중 소스코드관리시스템을 도입하는 목적으로 옳지 않은 것은 무엇인가?




   임포트


비어 있는 저장소에 맨 처음 파일들을 넣는 작업이다. 이것을 할 때에는 신중하게 파일을 정리해서 나중에 불필요한 파일을 삭제하는 일이 없도록 해야 한다.


   

 


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터