해당 프로젝트는 건국대학교 컴퓨터공학부 4학년 1학기 - '소프트웨어 검증 / Software V&V' 수업에서 진행한 프로젝트를 설명합니다.
프로젝트는 다음의 Project Activity 를 수행하며 진행이 되며 3학년 "소프트웨어 모델링 및 분석(현 객체지향개발방법론)" 수업과 연동해서 3학년 팀이 만든 모든 SW 개발 산출물을 이용하여 System Testing / Static Analysis 를 수행합니다.
Project Activity
- CTIP for Java 환경 구축
- System Testing 수행 및 결과 분석
- Static Analysis 수행 및 결과 분석
프로젝트는 한 학기 동안 진행되며 중간고사 이후 부터는 "소프트웨어 모델링 및 분석 (현 객체지향개발방법론)" 수업을 듣는 한 팀이 매칭되어 협업을 진행합니다.
프로젝트에서 수행한 활동은 발표를 기준으로 설명하며 상세 내용은 다음과 같습니다.
Junit, Eclipse 및 빌드환경 구축
첫 단계는 개발 및 Unit Testing 을 위한 Junit & Eclipse (IDE) 설정 및 CI /CD (Continuous Integration and Continuous Development / Deployment) 를 위한 CI 서버 (ex. Jenkins, Bamboo 등) 및 빌드 도구 (ex. maven, gradle 등) 설정 및 구축하는 단계입니다.
이슈 관리, 요구사항 관리, 형상관리 툴 구축 및 연계
두 번째 단계는 이슈 관리 툴 (ex. Redmine, Jira, Mantis 등) 과 요구사항 관리 툴 (ex. JFeature, DOORS, PTC Integrity 등) 그리고 형상관리 툴 (ex. Github, Slack, bitbucket 등) 각각의 구축 및 빌드환경 (CI/CD 서버) 와의 연계입니다.
정적분석 도구, 시스템 테스트 도구 구축 및 연계
세 번째 단계는 정적 분석 도구 (ex. PMD, FindBugs, Checkstyle 등) 와 시스템 테스트 도구 (ex. Testlink) 각각의 구축 및 빌드 환경 과의 연계입니다.
1st Testing - System Test
네 번째 단계는 "소프트웨어 모델링 및 분석" 팀과의 첫 협업 단계로, 구축한 CTIP 환경을 전수해주고 "소프트웨어 모델링 및 분석" 팀에게 전달받은 프로그램, 프로그램 메뉴얼, 요구사항 및 설계 문서를 전달받아 문서 리뷰 및 시스템 테스트를 수행합니다. 문서 리뷰 및 테스팅 결과를 분석하여 "소프트웨어 모델링 및 분석" 팀에게 전달합니다.
2nd Testing - System Test & Static Analysis (정적분석)
다섯번째 단계는 Feedback 을 통해 수정된 S/W 를 대상으로 2차 시스템 테스트를 수행하며 구축한 CTIP 환경 내에 포함된 Static Analysis 도구를 이용하여 정적 분석을 수행합니다. 2차 시스템 테스트 및 정적 분석 결과를 분석하여 "소프트웨어 모델링 및 분석" 팀에게 전달합니다.
정리
해당 프로젝트는 개발자가 아닌 테스터의 (Test Manager, Test Engineer) 역할을 맡아 진행한 프로젝트로서 대상 시스템을 개발의 관점이 아닌 테스팅 관점으로 보게된 경험을 했습니다. 그리고, 이전 프로젝트에서는 신경쓰지 않았던 개발 환경 등에 대해서 고민하게 된 사례로 S/W 개발에 대해 견문을 넓힐 수 있는 기회였다고 생각합니다.