전통적인 테스팅과 Shift-Left Testing의 차이
전통적인 소프트웨어 개발 라이프 사이클인 폭포수 모델은 요구사항, 아키텍처, 설계, 구현 후 테스팅을 수행하고, 전통적인 V모델(그림1) 측면에서 보면, 단위 테스팅, 통합 테스팅, 그리고 시스템 테스팅을 수행한다.
요즘에는 바로 시스템 테스팅을 시작한다. 단위 테스팅과 통합 테스팅을 하기 위해 많은 시간을 소비하지 않는다. 왜냐하면, 프로젝트의 거의 끝에서 시스템 테스팅을 수행하면, 어떤 문제를 찾아도 인도일 이전에 고칠 시간이 충분하지 못하다.
2016년 8월 2일 화요일
TDD(Test Driven Development)로 인한 솔루션 개발 효율화
소프트웨어가 제대로 만들어졌는지 확인하기 위해서는 테스트가 반드시 필요하기 때문에 아주 오래 전부터 효율적인 테스트를 위해 많은 노력이 이루어지고 있다. 테스트를 위해 SI(System Integration) 프로젝트에서는 다양한 테스트 프로세스가 만들어져 있고, 최근에는 TDD(Test Driven Development)와 테스트 자동화가 많은 주목을 받으면서 테스트의 중요성이 더 강조되고 있다. 이번 회에서는 전문 테스팅 연구실을 운영하면서 현장 업체에 전문 테스터를 지원하고 있는 국제대학교의 김성철 교수를 만나 자세한 사항을 들어본다.
Q: 본격적인 이야기 전에 소프트웨어 개발에서 테스트가 필요한 이유에 대해 간략히 말씀해 주시죠.
소프트웨어 테스트는 별다른 설명이 필요가 없을 정도로 개발자라면 누구나 알고 있을 겁니다. 하지만, 테스트가 소프트웨어 개발에 어떠한 영향을 미치는지는 크게 고민하지 않는 경우가 많습니다. 왜냐하면, 예전부터 테스트는 소프트웨어에 오류가 있는지 확인하는 것이라고 생각하는 사람이 많기 때문입니다. 틀린 얘기는 아닙니다만, 이 것은 테스트의 아주 일부에 해당하는 말입니다. 소프트웨어에 오류가 있는지 확인하는 것을 단위 테스트라고 말하지요. 초창기의 소프트웨어는 단위 테스트만으로도 충분했습니다. 소프트웨어 규모가 커지면서 전체적인 소프트웨어의 동작에 이상이 없는지를 확인하는 통합 테스트가 생겼고, SI 프로젝트가 나타나면서 사용자 요구사항을 충족하는지 인수 테스트가 생겼습니다. 누가, 언제, 어떤 테스트를 하냐에 따라 테스트의 목적이 달라지는 것이지요. 그림1이 목적에 따른 테스트 종류를 나타낸 것입니다.
Q: 본격적인 이야기 전에 소프트웨어 개발에서 테스트가 필요한 이유에 대해 간략히 말씀해 주시죠.
소프트웨어 테스트는 별다른 설명이 필요가 없을 정도로 개발자라면 누구나 알고 있을 겁니다. 하지만, 테스트가 소프트웨어 개발에 어떠한 영향을 미치는지는 크게 고민하지 않는 경우가 많습니다. 왜냐하면, 예전부터 테스트는 소프트웨어에 오류가 있는지 확인하는 것이라고 생각하는 사람이 많기 때문입니다. 틀린 얘기는 아닙니다만, 이 것은 테스트의 아주 일부에 해당하는 말입니다. 소프트웨어에 오류가 있는지 확인하는 것을 단위 테스트라고 말하지요. 초창기의 소프트웨어는 단위 테스트만으로도 충분했습니다. 소프트웨어 규모가 커지면서 전체적인 소프트웨어의 동작에 이상이 없는지를 확인하는 통합 테스트가 생겼고, SI 프로젝트가 나타나면서 사용자 요구사항을 충족하는지 인수 테스트가 생겼습니다. 누가, 언제, 어떤 테스트를 하냐에 따라 테스트의 목적이 달라지는 것이지요. 그림1이 목적에 따른 테스트 종류를 나타낸 것입니다.
빅데이터 사례 연구 - 아키텍처
데이터의 수가 이제 감당할 수 없을 만큼으로 늘어나고 있다. 불과 얼마 전만 하더라도 관계형 데이터베이스(Relation Database)를 통해 정형화된 데이터만 관리했지만 이제는 비정형 데이터가 주를 이루고 있다. 이미 분석이 완료되어 필요한 분류로 저장하는 정형화 데이터와는 다르게 비정형 데이터는 수집될 때 내포하고 있는 인사이트를 찾아내는 것이 관건이다. 이번 회에서는 빅데이터를 효율적으로 분석할 수 있는 아키텍처에 대해 사례를 살펴보며 알아보기로 한다. 성공적인 빅데이터 아키텍처 구성을 살펴보면서 빅데이터의 이해도를 높이길 기대한다.
사례 연구 전 확인 사항
빅데이터 아키텍처의 역할 구성
데이터를 수집해서 바로 활용하기는 어렵다. 수집된 데이터에서 불필요한 데이터를 걸러내면서 기준에 맞춰 정제 작업을 하게 된다. 그리고, 분석을 통해 필요한 정보를 얻게 된다(그림1).
사례 연구 전 확인 사항
빅데이터 아키텍처의 역할 구성
데이터를 수집해서 바로 활용하기는 어렵다. 수집된 데이터에서 불필요한 데이터를 걸러내면서 기준에 맞춰 정제 작업을 하게 된다. 그리고, 분석을 통해 필요한 정보를 얻게 된다(그림1).
2016년 8월 1일 월요일
Shift-left Testing - Agile/DevOps Shift-left Testing
③ Agile/DevOps Shift-left Testing
점진적인 Shift-left Testing과 비슷하지만 점진의 사이즈와 기간이 다르다. 그림4와 같이 애자일과 DevOps 프로젝트는 ①, ②의 단일이나 소수의 V 모델 대신 짧은 기간의 V모델 다수(스프린트라고 알려진)를 가진다. 스프린트가 기본적인 요구사항과 아키텍처를 적용하거나 테스트 기반 개발(TDD)이 수행되도록 작은 V모델들을 만든다.
오른쪽의 테스팅이 대형 V 모델의 왼쪽이 됨으로써 shift-left가 발생한다. 초기 점진에서 단위 테스팅, 통합 테스팅, 시스템 테스팅과 같은 개발 테스팅은 수행하지 않고 정보 보증(Information Assurance)과 같은 특별한 테스팅이 수행된다. 보안, 안전성, 신뢰성, 용량 테스팅, 부하 테스팅, 성능 테스팅과 같이 품질 속성의 테스팅이 점진적으로 수행된다.
<그림 4> Agile/DevOps Shift-Left Testing
④ Model-Based Shift-left Testing
앞에 설명한 Shift-left Testing들은 모델의 리뷰와 인스펙션, 그리고 정적 분석 같은 것으로 결함을 찾았다. 그러나, 모델이 실행 가능하다면 테스팅 바로 시작해도 된다. 이 때, 시퀸스 다이어그램이나 액티비티 다이어그램, 상태 차트와 같은 것을 이용할 수 있다. 이러한 것은 워크스루를 하면서 실행할 수 있다.
<그림 5> Model-Based Shift-left Testing
Shift-left Testing의 네가지 기법
① 전통적인 Shift-left Testing
그림1에 나타난 V모델 오른쪽의 상위 부분을 오른쪽의 하위로 이동시키는 것이다(그림2). GUI 테스팅을 강조하는 대신 단위 테스팅, 통합 테스팅, API 수준 테스팅을 더 강조한다. 이 Shift-left testing은 거의 적용되고 있다.
<그림 2> 전통적인 Shift-left Testing
블로그 그룹 포스팅 3기 모집
SW공학센터 블로그에 정기적으로 글을 게재하고 싶은 분을 찾습니다.
- SW공학 현장에서 본인이 수행하는 업무를 소개하고 다른 사람과 공유하면서 본인과 회사의 역량을 알릴 수 있는 기회가 될 것입니다.
- 1개월간 20회 이상 진행하는 분께는 소정의 원고료를 지급합니다.
- 신청마감: 2016. 08. 24 까지
- 참여하고 싶은 분은 아래 이메일로 약력을 보내주시기 바랍니다.
- 문의: nipasec@gmail.com
2016년 7월 29일 금요일
SW개발유형별 세부 평가항목별 프로세스 수준점수
SW개발유형별로 세부 평가항목에 대한 프로세스 수준점수 산정 결과는 다음의 표와 같다.대부분의
세부 평가항목에 있어서도 IT서비스의 경우 다른 SW개발유형에 비해 그 수준 점수가 높은 것으로
나타나고 있다.
피드 구독하기:
글
(
Atom
)