원리[3]에는 “개발 초기에 테스팅을 시작하라.”라고 하는데, 테스트는 개발이 완료된 후에 하는 거 아닌가요? 테스팅을 어떻게 개발 초기에 시작하나요?
ISTQB Syllabus 2018
소프트웨어 테스트는 결함이나 버그를 식별하기 위해 소프트웨어 또는 응용 프로그램을 구현하는 절차입니다.
응용 프로그램이나 소프트웨어를 테스트하려면 제품 결함을 없애고 테스트 엔지니어가 노력과 시간을 들여 소프트웨어를 테스트하는 데 도움이되는 몇 가지 원칙을 따라야합니다.
"테스팅을 일찍 시작한다."는 말에서 품고 있는 시간 순서의 기준은 SDLC(Software Development Life-Cycle)의 전체 구조 중 앞단에서 테스팅을 수행하라는 의미입니다.
위 그림에서 보시는 바와 같이 소프트웨어 개발에는 어느 정도 정형화된 순서가 존재하며, 어떤 개발 방법론을 사용하던 위의 구조가 큰 틀에서 변경되거나 해체되지는 않습니다. 그러므로, 소프트웨어 종사자라면 프로그래머이든, 테스터이든, PM이든, 누구든지 간에 기본적으로 이해하고 있어야 하는 내용입니다.
이에 대해서는 자세한 소개를 할 기회가 있을 때 다시 긴 이야기를 나눌 수 있도록 하겠습니다. 본 글을 읽으시는 독자분들 중 궁금한 점이 있으시면, 일단 잘 정리된 사이트들이 많으므로 인터넷 검색을 통해 지식을 정리하시면 좋겠습니다.
자세한 내용을 다루기 전에 소프트웨어 테스팅과 관련한 일반적인 내용으로 「소프트웨어 테스팅의 7가지 원칙」 중 3번째 원리는 다음과 같습니다.
간단히 생각하면 쉽습니다. 요구사항 분석 단계에서 찾아낸 이슈는 해당 요구사항을 정리한 사람과만 이야기 하면 되지만, 개발이 완료되고 서비스 중인 경우에는 고객 관리자, 프로그래머, 테스터, 기획자, 사업 부서 관리자 등 많은 사람들과 협의를 거쳐야 합니다. 그 모든 것이 비용이죠.
소프트웨어 개발 단계 별 투입되는 비용의 비율은 대략적으로 아래와 같습니다.
이에 대한 이야기는 프로젝트의 ROI(Return On Investment)에 대한 이야기입니다. ROI를 쉽게 설명하면 "투자 회수율" 혹은 "투자 대비 수익률"을 이야기합니다. 더 쉽게 이야기하면 "얼마 정도를 투자해서 어느 정도의 수익을 거두는가"에 대한 이야기입니다.
ROI 개념은 다양한 분야에서 사용하고 있는 개념이므로, 이와 관련한 자세한 자료들을 보고 싶으시면 검색 사이트에서 "ROI 분석 사례 (구글 링크)"라는 키워드에서부터 찾기 시작하시면 됩니다.
ROI는 다음 그림에서 보는 바와 같이 조기에 해결하면 빠르고, 뒤로 미룰수록 해결하기 위한 비용이 늘어나는 경우가 일반적입니다. 조금만 투자하고 많이 수익을 내는 것이 비즈니스의 기본이기 때문에 투자 비용이 늘어난다는 의미는 수익률이 나빠진다는 의미입니다.
일반적으로 '요구사항 취합/분석' 단계에서의 발견한 이슈 처리와 '고객에게 출시된 후'의 이슈 처리의 차이는 소프트웨어 개발에서는 약 100배~1000배 정도가 난다고 알려져 있습니다.
그러므로, ROI 효율을 높일 수 있는 가장 좋은 방법은 사실 "테스팅 활동" 그 자체보다는 "리뷰(Review)"라고 부르는 활동들입니다. 이와 관련된 설명은 본 블로그의 다른 필자들이 작성하신 "시스템이나 문서에 대한 엄격한 테스팅"에 대한 의미는 무엇인가요? 포스팅을 참고하여 주세요.
일반적으로 "테스팅" 활동은 "개발이 완료된 후" 진행한다고 생각하는 경우가 많습니다. 그래서 개발 초기에 진행하는 테스팅이 낯설기도 하고, 어렵게 느껴지기도 합니다. 개발 초기 테스팅을 진행하실 때는 아래의 사항들을 고려하여 진행하시면 됩니다.
위 가이드라인을 참고하시면서 잊지 않으셔야 하는 건 "소프트웨어에서의 이슈를 조기 탐지(Early Detection on Issues of Software)할수록 투자 비용이 줄어들고, 고로 수익률이 개선된다."라는 점입니다.
해외의 전문가가 발표한 일반적인 소프트웨어에서의 오류 분포는 아래와 같습니다.
앞서 여러 전문 서적, 지식 체계, 해외 전문가들의 증명을 통해 "조기 탐지한 이슈의 조기 처리"가 ROI를 개선한다고 하였습니다. 그리고 위 그림에서 보는 바와 같이 요구사항 및 설계 오류가 오류 원인의 80% 이상을 차지하므로, 개발 초기에 테스팅을 진행하여 개발 초기에 예상되는 이슈들을 모두 처리한다면 ROI 효율이 향상되는 것입니다.
그러므로, 개발 초기 단계부터 테스트가 병행되어야 한다는 의미입니다.
• 검토한이 : Bykj, 복어수, 아이티마니, 현의노래
소프트웨어 테스팅의 7가지 원리에 대해 설명해 줄 수 있나요? (Episode 1/2)
목차 질문 소프트웨어 테스팅의 7가지 원리에 대해서 설명해 줄 수 있나요? ISTQB 버전 ISTQB Syllabus 2018 답변 본 글은 「소프트웨어 테스팅의 7가지 원리」에 대해 설명하지만, 글이 너무 길어져 2개
softwaretestingreference.tistory.com
※ STEEG 개인 의견은 각 전문가 개인이 경험한 경력에 따른 의견이므로, 주관적 견해가 개제될 수 있습니다. 개인 의견에 대한 내용은 본 블로그와 관련이 없습니다. |
[STEEG - 실무 적용편] “개발 초기에 테스팅을 시작하라.”
목차 개발 초기에 테스팅 적용하기 - 원글 링크 : softwaretestingreference.tistory.com/135?category=834116 테스팅의 원리[3] - “개발 초기에 테스팅을 시작하라.” 라고하는데, 테스트는 개발이 완료된 후 목..
qa-testing.tistory.com
※ 아래는 필자들이 선정한 관련 외부 자료입니다. 아래 자료들은 필자들이 작성한 본문 의견과 다를 수 있으며, 필자들과 관련되지 않았을 수 있습니다. |
소프트웨어 개발 수명 주기 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 소프트웨어 개발 수명 주기(Software Development Life Cycle, SDLC)란 시스템 엔지니어링, 정보 시스템, 또는 소프트웨어 공학에서 정보 시스템을 계획, 개발, 시험, 채용
ko.wikipedia.org
Software development process - Wikipedia
From Wikipedia, the free encyclopedia Jump to navigation Jump to search Process by which software is developed In software engineering, a software development process is the process of dividing software development work into distinct phases to improve desi
en.wikipedia.org
Introduction to Software Engineering/Process/Life Cycle - Wikibooks, open books for an open world
Model of the Systems Development Life Cycle Model of the Systems Development Life Cycle The Systems Development Life Cycle (SDLC), or Software Development Life Cycle in systems engineering, information systems and software engineering, is the process of cr
en.wikibooks.org
눈덩이 효과(Snow Ball Effect)(요르돈법칙)
눈덩이 효과(Snow Ball Effect)는 갈등을 관리하지 않고 방치하여 시간이 지날수록 상황이 더욱 악화되...
blog.naver.com
1.6 The Benefits of Detecting Software Security Defects Early 5 | Why Is Security a Software Issue? | InformIT
Home > Articles > Security > Network Security By Gary McGraw, Julia H. Allen, Sean Barnum, Robert J. Ellison, Nancy R. Mead Jun 2, 2008 📄 Contents ␡ 1.1 Introduction 1.2 The Problem 1.3 Software Assurance and Software Security 1.4 Threats to Software
www.informit.com
Return on Investment - PMI
www.pmi.org
Return on investment - Wikipedia
This article is about the term in investing. For articles on other subjects having the same abbreviation, see ROI. Return on investment (ROI) is a ratio between net profit (over a period) and cost of investment (resulting from an investment of some resourc
en.wikipedia.org
Software Maintenance Overview - Tutorialspoint
Software Maintenance Overview Software maintenance is widely accepted part of SDLC now a days. It stands for all the modifications and updations done after the delivery of software product. There are number of reasons, why modifications are required, some
www.tutorialspoint.com
What is “Shift Left”? Shift Left Testing Explained
BMC Software
www.bmc.com