software development
소프트웨어 개발 및 테스트 방법은 무엇입니까?
테스트는 소프트웨어 개발 프로세스의 필수 부분입니다. 소프트웨어 시스템의 타임 라인을 예측하는 데 도움이되는 표준 테스트 방법을 사용하여 견고하고 안정적인 소프트웨어 제품을 제공 할 수 있습니다.
소프트웨어 응용 프로그램은 많은 수의 플랫폼과 장치로 인해 더욱 복잡해질 수 있습니다. 더 중요한 것은 지정된 요구 사항을 충족하고 사용자의 컴퓨터에 효율적으로 설치 및 작동 할 수 있는지 여부를 확인하는 것입니다.
수단으로 보안 , 적합성 및 유용성에 대한 소프트웨어 제품은 적절한 테스트 방법을 사용하여 테스트해야합니다.
이 기사에서 , 테스트 방법론이 의미하는 바, 테스트 전략과 어떻게 다른지, 소프트웨어 테스트 방법 유형에 대해 자세히 설명합니다.
학습 내용 :
테스트 방법론의 의미
방법론은 단위 테스트에서 시스템 테스트에 이르는 소프트웨어 개발 수명주기에 사용되는 테스트 메커니즘의 집합으로 간주 될 수 있습니다. 적절한 테스트 방법을 선택하는 것이 테스트 프로세스의 핵심으로 간주됩니다.
Windows 10에서 .jar 파일을 실행하는 방법
테스트 기법
기본적으로 테스트에 사용되는 세 가지 테스트 방법이 있습니다. 화이트 박스 테스트, 블랙 박스 테스트, 그레이 박스 테스트 . 이것들은 또한 테스트 기법 . 이해를 돕기 위해 각 테스트 기술이 아래에 요약되어 있습니다.
# 1) 화이트 박스 테스트 :
화이트 박스 테스트 기법 프로그램 구조 및 비즈니스 논리를 검사하는 데 사용되며 응용 프로그램의 코드 또는 프로그램의 유효성을 검사합니다. 그것은 또한 클리어 박스 테스트, 글래스 박스 테스트 또는 오픈 박스 테스트 .
화이트 박스 테스트 기술에는 다음이 포함됩니다.
- 명세서 범위 : 모든 프로그래밍 문을 검사합니다.
- 지점 범위 : 모든 분기가 테스트되었는지 확인하기위한 일련의 실행 테스트.
- 경로 범위 : 가능한 모든 경로를 테스트하여 각 문과 분기를 포함합니다.
# 2) 블랙 박스 테스트 :
블랙 박스 테스트 방법 요구 사항 사양에 따라 응용 프로그램의 기능을 테스트하는 데 사용됩니다. White Box Testing과 달리 응용 프로그램의 내부 구조 / 코드에 초점을 맞추지 않습니다.
블랙 박스 기술에는 다음이 포함됩니다.
- 경계 값 분석
- 등가 분할 (Equivalence Class Partitioning)
- 의사 결정 테이블
- 도메인 테스트
- 상태 모델
- 탐색 적 테스트 (준비가 덜 필요하고 결함을 신속하게 찾는 데 도움이 됨).
# 3) 회색 상자 테스트 :
이 테스트 방법은 애플리케이션의 내부 구조에 대한 정보를 적게 사용하여 수행됩니다. 일반적으로 이것은 Black Box Testing처럼 만 수행되지만 일부 중요한 응용 분야에는 White Box Testing이 사용됩니다.
SDLC의 모델
적절한 테스트 방법을 선택하는 것은 SDLC에서 적절한 모델을 선택하는 것과도 통합됩니다.
모델에는 다음이 포함됩니다.
- 폭포 모델
- 모델에서
- 애자일 모델
- 나선형 모델
- RAD
간략한 설명과 함께 각 소프트웨어 개발 방법론을 자세히 살펴 보겠습니다.
# 1) 폭포 모델
폭포 모델 1970 년 Winston Royce가 개발 한 기본 라이프 사이클 모델입니다.이 모델은 점진적으로 아래로 흐르는 순차적 인 방식으로 여러 단계 또는 프로세스를 나타냅니다.
이 접근 방식은 요구 사항이 잘 알려져 있고 기술이 이해되고 필요한 전문 지식이있는 리소스를 사용할 수있는 경우에 유용합니다.
폭포 모델은 다음 단계로 정의됩니다.
- 요구 사항 수집 및 분석 : 모든 요구 사항을 캡처 및 분석하고 테스트 가능한지 여부를 확인하십시오.
- 시스템 디자인: 요구 사항 분석을 기반으로 디자인을 만들고 문서화합니다. 하드웨어 및 소프트웨어 요구 사항을 정의합니다.
- 이행: 설계에 따라 구성 요소에 대한 강력한 코드를 만들고 통합합니다.
- 시스템 테스트 : 통합 구성 요소는 전체 시스템을 형성하며,이 단계는 시스템이 요구 사항에 따라 작동하는지 확인하고 테스트 진행 상황을 추적 및보고하기 위해 수행됩니다.
- 시스템 배포 : 시스템이 버그없이 안정적인지 확인하고 모든 테스트 기준이
충족, 환경 설정 등을 확인하십시오. - 시스템 유지 관리 : 응용 프로그램이 적합한 환경의 요구 사항에 따라 효율적으로 작동하는지 확인합니다. 결함이 발견되면이를 수정하고 환경에 배포 (업데이트)해야합니다.
폭포 모델의 장점 :
- 간단하고 이해하기 쉽습니다.
- 각 단계마다 고유 한 결과물이 있으므로 관리가 쉽습니다.
- 단계의 겹침이 방지됩니다.
- 소규모 프로젝트에 적합합니다.
폭포 모델의 단점 :
- 위험과 불확실성의 증가.
- 테스트 단계에 들어가면 이전 단계에서 아무것도 변경할 수 없습니다. 예 : 디자인 및 코딩 등
- 복잡하고 큰 프로젝트에는 적합하지 않습니다.
- 요구 사항이 계속 변경되는 곳에 적합하지 않습니다.
# 2) 모델 내
V 모델 이다 폭포 모델 확장 프로세스 실행은 V-Shape에서 순차적 인 스타일로 이루어지며 Verification and Validation Model이라고도합니다. 이 접근 방식에서는 개발주기의 모든 단일 단계에 직접 연결된 테스트 단계가 있습니다.
테스트는 개발주기가 끝날 때가 아니라 각 개발 단계에서 수행되므로 폭포수 모델보다 유익하고 비용 효율적인 것으로 입증되었습니다.
V Model은 3 단계로 분류됩니다.
- 검증 단계
- 코딩 단계
- 검증 단계
a) 검증 단계 :
- 비즈니스 요구 사항 분석 : 고객의 기대와 요구 사항을 이해하기 위해 고객과 소통합니다.
- 시스템 디자인: 디자인완전한하드웨어 및 소프트웨어 요구 사항과 함께 시스템 및 구성 요소.
- 건축 설계: 이 단계에서는 아키텍처 사양이 캡처됩니다. 이를 고급 디자인이라고도합니다.
- 모듈 설계 : 이것은 지정된 모든 시스템 모듈에 대한 저수준 설계, 세부 내부 설계라고도합니다.
b) 코딩 단계 :
이 단계에는 개발 라이프 사이클의 실제 코딩 단계가 포함됩니다. 프로그래밍 언어는 이전 단계 기술 플랫폼에 지정된 시스템 및 아키텍처 설계를 기반으로 선택해야합니다. 코딩은 미리 정의 된 표준 및 지침에 따라 수행됩니다.
c) 검증 단계 :
- 단위 테스트 : 초기 단계에서 버그를 제거하기 위해 개별 모듈에서 수행되었습니다.
- 통합 테스트 : 시스템의 다른 모듈 간의 통신을 테스트하기 위해 수행되었습니다.
- 시스템 테스트 : 시스템 테스트 시스템 전체에서 수행됩니다.
- 수락 테스트 : 이것은 비즈니스 요구 사항과 관련이 있습니다. 사용자의 관점에서 사용자 환경에서 수행됩니다.
V 모델의 장점
- 간단하고 사용하기 쉽고 이해하기 쉽습니다.
- 단계가 한 번에 하나씩 실행되므로 겹침이 방지됩니다.
- 관리가 쉽고 소규모 프로젝트에 적합합니다.
V Model의 단점은 Waterfall 모델의 단점과 다소 비슷합니다.
# 3) 애자일 모델
애자일 모델 반복적이고 점진적인 접근 방식을 보여줍니다. 이 접근법은 제품을 작은 증분 단위로 분할하여 반복을 제공합니다. 그런 다음 각 반복에는 계획, 요구 사항 분석, 디자인, 코딩, 단위 테스트, 수락 테스트 등과 같은 단계가 포함됩니다.
이 접근 방식을 사용하면 정기적으로 요구 사항에 대한 피드백 및 수정을 위해 고객과 지속적으로 상호 작용할 수 있습니다.
다음 다이어그램은 애자일 모델 접근 방식을보다 정확하게 이해하는 데 도움이됩니다.
다음 이미지는 Agile 모델의 반복주기를 보여줍니다.
애자일 모델의 장점 :
- 소프트웨어 개발에 대한 현실적인 접근 방식.
- 팀워크를 촉진합니다.
- 요구 사항과 테스트 사례 간의 불일치를 제거합니다.
- 빠르고 최소한의 리소스가 필요합니다.
- 대규모 및 장기 프로젝트에 적합합니다.
- 변화하는 요구 사항에 적합합니다.
- 관리하기 쉽습니다.
애자일 모델의 단점 :
- 복잡한 프로젝트에는 적합하지 않습니다.
- 지연을 유발할 수있는 고객과의 많은 상호 작용이 필요합니다.
- 요구 사항이 잘못되면 소프트웨어 제품이 잘못 개발 될 수 있습니다.
- 유지 관리 위험 증가.
- 다른 팀으로의 양도는 상당히 어려울 수 있습니다.
# 4) 나선형 모델
나선형 모델은 폭포 모델의 체계적인 접근 방식과 함께 반복적 인 개발 접근 방식을 통합합니다. 증분 모델과 유사하며 위험 분석에 중점을 둡니다.
나선형 모델에는 4 개의 단계가 있습니다.
- 계획 단계
- 위험도 분석
- 엔지니어링 단계
- 평가 단계
1) 계획 단계 : 이 단계에서는 테스트 케이스를 마무리하기 위해 요구 사항을 수집하고 검토합니다.
2) 위험 분석 : 이 단계에는 관리 위험의 식별, 모니터링 및 추정이 포함됩니다. 브레인 스토밍, 연습 등과 같은 기술을 사용하여 위험을 식별하기 위해 요구 사항을 분석합니다.
3) 엔지니어링 단계 : 이 단계에서 소프트웨어는 마지막에 개발되고 테스트됩니다.
4) 평가 단계 : 이것은 고객이 프로젝트의 결과를 평가하고 다음 나선형 또는 승인에 대한 피드백을 제공하는 마지막 단계입니다.
나선형 모델의 그림 표현 :
나선형 모델을 사용하는 경우 :
- 고위험 프로젝트 용.
- 요구 사항이 복잡한 경우.
- 프로젝트가 큰 경우.
- 다음 단계에 대한 사용자의 피드백을받을 수있는 충분한 시간을 확보하십시오.
- 연구와 탐사로 인해 상당한 변화가 필요합니다.
- 사용자는 자신의 요구 사항을 잘 모릅니다.
나선형 모델의 장점 :
- 많은 양의 위험 분석이 수반되므로 위험 회피.
- 급속 성장.
- 요구 사항의 변경은 쉽게 수용됩니다.
- 요구 사항을보다 정확하게 획득 할 수 있습니다.
나선형 모델의 단점 :
- 복잡한 관리.
- 소규모 프로젝트에는 적합하지 않습니다.
- 아니오를 포함 할 수 있습니다. 나선의 (무한).
- 비용이 많이 듭니다.
- 프로젝트의 성공을 위해 많은 양의 위험 분석 및 전문 지식이 필요합니다.
# 5) RAD 모델
RAD (Rapid Application Development)는 증분 모델의 한 유형입니다. 이 접근 방식에서는 구성 요소가 병렬로 개발됩니다.
이는 빠른 접근 방식이며 고객에게 빠른 제품을 제공하여 피드백을 제공 할 수 있습니다.
RAD의 단계는 다음과 같습니다.
배열 자바에서 요소 삭제
- 비즈니스 모델링 : 다양한 비즈니스 채널 간의 중요한 정보와 그 흐름을 식별합니다.
- 데이터 모델링 : 이전 단계에서 수집 된 정보는 비즈니스에 필요한 데이터 개체를 정의하는 데 사용됩니다.
- 프로세스 모델링 : 데이터 개체는 비즈니스 목표와 정보 흐름을 얻기 위해 변환됩니다.
- 애플리케이션 생성 : 이 단계에서는 자동화 도구를 사용하여 프로세스 모델을 실제 코드로 변환합니다.
- 테스트 및 회전율 : 시스템의 모든 구성 요소를 테스트하므로 전체 테스트 시간이 단축됩니다.
RAD 모델의 장점 :
- 진행 상황을 측정 할 수 있습니다.
- 개발 시간을 단축합니다.
- 재사용 성 향상.
- 빠른 초기 검토.
- 고객 피드백을 향상시킵니다.
RAD 모델의 단점 :
- 고도로 숙련 된 자원이 필요합니다.
- 고비용 추정.
- 저렴한 프로젝트에는 적용되지 않습니다.
- 모델링 기술에 대한 높은 의존도.
- RAD를 사용하여 모듈화 된 시스템 만 구축 할 수 있습니다.
테스트 방법론과 테스트 전략의 차이점
둘 사이에 단순한 차이가 있기 때문에 이것에 대한 대답은 그리 복잡하지 않습니다.
테스트 방법 단위 테스트에서 시스템 테스트까지 포함하는 테스트 방법 또는 접근 방식입니다.
테스트 전략 테스트 프로세스에서 발생하는 주요 문제에 대한 개요이며 프로젝트 관리자, 개발자 및 테스터 팀이 고려해야합니다.
위에서 논의한 소프트웨어 테스트 방법을 사용하여 엔 테스트 전략의 수.
그중 일부는 다음과 같습니다.
1) 단위 테스트 :
- 매우 작은 기능 단위에 중점을 둡니다.
- 가장 작은 단위의 격리를 확인하는 가장 간단한 방법입니다.
- 일반적으로 개발자가 수행합니다.
2) 통합 테스트 :
- 이것은 개발자 측에서 수행 할 다음 단계입니다.
- 서로 다른 소프트웨어 모듈 간의 상호 작용, 상호 운용 및 통신을 테스트하는 메커니즘 제공
3) 기능 테스트 :
소프트웨어 시스템의 기능, 즉 주어진 입력에 대한 출력을 확인하는 데 사용됩니다.
4) 회귀 테스트 :
복잡한 기능으로 인해 다른 핵심 영역이 변경되지 않도록 버그 수정이 한 곳에서 발생했는지 확인합니다.
5) 시스템 테스트 :
- 모든 통합 모듈을 집합 시스템으로 테스트합니다.
- 여러 기능을 종단 간 시나리오로 결합합니다.
6) 성능 테스트 :
대용량 파일 전송, 시스템에 대한 동시 사용자 액세스, 구성 실패 등과 같은 중요한 상황에서 응용 프로그램의 성능을 테스트합니다.
7) 수락 테스트 :
- 일반적으로 테스터가 소프트웨어 제품을 사용자 관점으로 검사하는 최종 테스트 수준
- 이 단계의 결과는 주관적이며 정확한 문제를 찾는 데 약간의 시간이 걸립니다.
결론:
적절한 테스트 방법을 선택하는 것은 테스트 프로세스의 핵심에있는 작업 또는 일련의 작업입니다. 이것은 소프트웨어 제품의 비즈니스 요구 사항 및 일정에 따라 변경되는 다목적 활동 일 수도 있습니다.
그러나 하나 또는 여러 소프트웨어 개발 및 테스트 방법론을 선택하여 원하는 시간 또는 더 짧은 시간 내에 고객의 요구와 기대를 충족하는보다 유연하고 효율적인 최종 제품을 만들 수 있습니다.
아래 의견란에 귀하의 생각 / 제안을 알려주십시오.
추천 도서
- 최고의 소프트웨어 테스트 도구 2021 (QA 테스트 자동화 도구)
- 소프트웨어 테스팅 QA 어시스턴트 작업
- 소프트웨어 테스팅 과정 : 어떤 소프트웨어 테스팅 기관에 가입해야합니까?
- 경력으로 소프트웨어 테스트 선택
- 소프트웨어 테스팅 기술 콘텐츠 작성자 프리랜서 작업
- 몇 가지 흥미로운 소프트웨어 테스트 인터뷰 질문
- 소프트웨어 테스팅 과정 피드백 및 리뷰
- 소프트웨어 테스팅 도움말 제휴 프로그램!