기술 주제

Functional Testing 란 무엇인가요?

 물음표에 초점을 맞춘 IT 항목의 일러스트레이션

개요

기능 테스트는 각 애플리케이션 기능이 소프트웨어 요구 사항에 따라 제대로 작동하는지 확인하는 테스트 유형입니다. 각 기능을 해당 요구 사항과 비교하여 출력이 최종 사용자의 기대와 일치하는지 확인합니다. 테스트는 샘플 입력을 제공하고, 결과 출력을 캡처하고, 실제 출력이 예상 출력과 동일한지 확인하는 방식으로 수행됩니다.

다음은 몇 가지 기능 테스트 예시입니다:

  • 사용자가 적법한 자격 증명을 제공하면 애플리케이션에 성공적으로 로그인할 수 있나요?
  • 사용자가 잘못된 신용 카드 번호를 입력하면 결제 게이트웨이에서 입력을 거부하고 오류 메시지를 표시합니까?
  • '새 레코드 추가' 화면의 입력이 데이터베이스에 새 레코드를 성공적으로 추가하고 저장하나요?
 
의 끝에 기능 테스트일관된 사용자 인터페이스와 일관된 API를 갖추고 비즈니스 프로세스와 원활하게 통합되는 소프트웨어가 있어야 합니다.

Functional Testing

Functional Testing 대 비Functional Testing

비기능 테스트와 달리 기능 테스트는 애플리케이션의 기본 소스 코드의 품질, 보안 또는 성능을 조사하는 것과는 관련이 없습니다. 속도, 확장성 및 안정성을 측정하지 않습니다.

오히려 기능 테스트는 처리의 메커니즘이 아닌 처리 결과에 초점을 맞추고 애플리케이션이 기본적인 최소한의 사용자 기대치를 충족하는지 여부를 결정합니다.

이러한 의미에서 기능 테스트의 정의는 블랙박스 테스트와 거의 동의어에 가깝지만, 반면에 화이트박스 테스트는 비기능 테스트의 특징에 더 가깝습니다. 


일반적인 단계 Functional Testing

기능 테스트 계획은 일반적으로 아래 순서를 따릅니다:

테스트 목표 파악

기능 테스트 목표는 프로젝트 요구 사항에 따라 소프트웨어가 갖춰야 할 기능입니다. 테스트 목표에는 애플리케이션이 의도한 대로 작동하는지, 오류 및 예기치 않은 시나리오를 원활하게 처리하는지 검증하는 것이 포함됩니다.

테스트 시나리오 만들기

특정 기능에 대해 가능한 모든(또는 최소한 가장 중요한 모든) 테스트 시나리오 목록을 작성하세요. 테스트 시나리오는 기능이 사용될 다양한 방법을 설명합니다. 예를 들어 결제 모듈의 경우 테스트 시나리오에는 여러 통화, 유효하지 않거나 만료된 카드 번호 처리, 성공적인 거래 완료에 대한 알림 생성 등이 포함될 수 있습니다.

테스트 데이터 생성

식별한 테스트 시나리오에 따라 정상적인 사용 조건을 시뮬레이션하는 테스트 데이터를 생성합니다. 테스트 데이터를 수동으로 입력하거나(예: MS-Excel 스프레드시트 또는 인쇄물에서) 데이터베이스, 플랫 파일, XML 또는 스프레드시트에서 데이터를 읽고 입력하는 스크립트 또는 테스트 도구를 통해 자동으로 입력할 수 있습니다. 각 입력 데이터 세트에는 입력 데이터가 생성할 것으로 예상되는 결과를 설명하는 관련 데이터도 있어야 합니다.

테스트 케이스 설계

테스트 입력에 대해 원하는 다양한 결과를 기반으로 테스트 케이스를 만듭니다. 예를 들어 유효하지 않은 신용카드 번호를 입력하면 애플리케이션에 의미 있는 오류 메시지가 표시되어야 합니다.

테스트 케이스 실행

애플리케이션을 통해 테스트 케이스를 실행하고 실제 결과와 예상 결과를 비교합니다. 실제 결과와 예상 결과가 다르면 해당 기능이 테스트에 실패한 것이며 결함을 기록해야 합니다.

결함 심의, 추적 및 해결

결함이 확인되면 전체 프로젝트 팀이 액세스할 수 있는 공식 추적 시스템에 기록해야 합니다. 결함이 완료된 것으로 표시되기 전에 애플리케이션에 필요한 변경을 수행하고 테스트 케이스를 다시 실행하여 결함 해결을 확인해야 합니다.


자동화된 Functional Testing 도구는 어떻게 작동하나요?

기능 테스트 자동화 도구는 테스트 중인 애플리케이션의 사용자 인터페이스와 상호 작용할 수 있습니다. 목록 상자, 텍스트 상자 및 버튼과 같은 화면의 개체를 식별하고, 선택하고, 데이터를 입력하고, 누를 수 있습니다.

많은 기능 테스트 자동화 도구에는 사용자가 애플리케이션 및 화면의 개체와 상호작용하는 모습을 '관찰'하고, 시스템에 입력하는 데이터와 버튼을 누르거나 메뉴를 선택하는 등 사용자가 수행하는 동작을 기록하는 레코더가 포함되어 있습니다. 그런 다음 녹화 중에 캡처된 개체, 데이터 및 동작을 사용하여 이러한 동작을 재생하여 사용자의 활동을 복제할 수 있습니다. 이러한 작업의 결과는 테스트 도구에 기록되고 자동화 엔지니어가 정의한 예상 결과와 비교하여 테스트의 통과 여부를 결정합니다.

기능 테스트 자동화 엔지니어는 도구에서 인식한 개체를 사용하여 테스트를 단계별로 구축하거나, 녹화부터 시작하여 단계를 사용자 지정하고 데이터를 매개변수화하여 일반화하고 다양한 브라우저와 모바일 기기를 포함한 여러 환경에서 테스트를 실행할 수 있습니다.


Functional Testing 도구의 인공 지능

오늘날의 선도적인 테스트 자동화 도구에는 머신 러닝, 컴퓨터 비전, 신경망 및 자연어 처리와 같은 고급 기술을 사용하는 인공 지능(AI) 기능이 캡슐화되어 있습니다. 이를 통해 사람이 하는 것과 같은 방식으로 화면상의 개체를 식별하고, 개체를 자연스럽게 상호작용하고 조작하며, 일반 영어를 사용하여 테스트를 작성할 수 있습니다.

AI 기반 기능 테스트 자동화는 테스트 생성 시간을 단축하고, 테스트 커버리지를 높이고, 테스트 자산의 복원력을 높이고, 테스트 유지 관리 노력을 줄이는 것으로 나타났습니다.


Functional Testing 모범 사례란 무엇인가요?

테스트 케이스 조기 생성

애플리케이션 또는 모듈 코딩이 완료될 때까지 기다렸다가 테스트 케이스 만들기를 시작하지 마세요. 프로젝트의 초기 단계에 사용자 요구 사항이 가장 신선할 것입니다. 나중에 필요에 따라 언제든지 테스트 케이스를 수정할 수 있습니다.

자동화

기능 테스트는 힘들고 반복적이며 시간이 많이 소요되는 프로세스일 수 있습니다. 더 많이 자동화할수록 원하는 기능을 더 빠르게 보장하거나 결함을 식별하고 수정할 수 있으며 앱 배포 프로세스에서 테스트 시간과 비용을 더 많이 절약할 수 있습니다. 모든 테스트 케이스를 자동화하는 것은 불가능하거나 바람직하지 않을 수도 있지만, 가장 중요한 테스트 케이스를 수동으로 처리하는 것만으로도 테스트 ROI를 크게 개선할 수 있습니다.

사용자의 사고 과정 이해

기능 테스터는 최종 사용자의 사고 과정을 깊이 이해해야 합니다. 애플리케이션마다 사용자 유형이 다른 경우가 많습니다(구매자, 판매자, 관리자, 데이터 입력 담당자, 감독자 등). 각 테스트 계획에는 다양한 사용자 유형과 애플리케이션의 일반적인 탐색 방식을 고려해야 합니다.

우선순위 지정

테스터는 시간과 리소스가 한정되어 있습니다. 모든 기능을 테스트할 수 있는 것은 아닙니다. 일부 애플리케이션 기능은 우선순위가 높기 때문에 우선순위가 낮은 기능보다 우선적으로 테스트해야 합니다.


AI 기반의 지능적인 자동화된 Functional Testing 도구는 다음과 같은 도움을 줄 수 있습니다.

Functional Testing 많은 조직에서 기능 테스트를 자동화하는 것이 어려울 수 있지만, 제대로 자동화된 기능 테스트 QA 조직의 이점은 이러한 어려움을 훨씬 능가하며, 검증된 기능 테스트 도구의 힘을 활용하는 것이 가장 좋은 방법입니다. OpenText™ Functional Test 자동화를 통해 기능 테스트에서 최적의 가치를 추출하는 방법을 알아보세요.

Functional Testing 란 무엇인가요?

지금 바로 시작하세요.

자세히 알아보기

어떻게 도와드릴까요?

각주