문맥 (context)
003c#관련 출원들과의 상호-참조003e#
이 출원은 이와 함께 출원된 미국특허출원 대리인 사건번호 MSFT-4148, 명칭 "System for Selecting Test Case Execution Behaviors for Reproducible Test Automation" 및 이와 함께 출원된 미국특허출원 대리인 사건번호 MSFT-4149, 명칭 "Automated Test Case Verification That Is Loosely Coupled With Respect To Automated Test Case Execution"과 관계가 있다.
본 발명은 소프트웨어 테스트에 관한 것으로, 특히, 계층화 아키텍처를 이용한 자동화 소프트웨어 테스트에 관한 것이다.
소프트웨어 개발의 수명 주기(life cycle)에 있어서의 주요 단계들은, 설계 단계, 코딩 단계, 코드 완성 단계, 알파 단계(alpha phase), 베타 단계(beta phase), 그리고 최종적으로 시장에의 공개이다. 설계 단계 동안에는, 소프트웨어 제품에 대한 고객 문제들이 다루어지고, 소프트웨어 제품의 기능이 정의된다. 통상적으로, 기능 사양의 완성은 설계 단계의 종료를 나타낸다. 코딩 단계는 이미 개시했을 수 있다. 코드 완성 단계는 코드가 기록되었으나, 반드시 디버깅될 필요는 없을 때 도달된다. 알파 단계는 제품이 안정적인 시점 즉, 주요 버그들의 대부분이 발견된 시점을 나타낸다. 베타 단계에서, 제품은 모든 주요 버그들이 이상적으로 없고, 단지 남아있는 버그들은 본질적으로 손상을 주지 않아야 한다. 제품은 최종 품질 보증 체크리스트(checklist)를 통과하면 시장에 공개할 준비가 된다.
어느 누구도 작동하지 않는 소프트웨어를 원하지 않기 때문에, 테스트는 수명 주기의 중요한 부분이고, 여러 단계를 거친다. 소프트웨어 테스트는 테스트 케이스(test case)(또는, 보다 가능성있게는, 테스트 케이스들의 세트)를 안출하는 단계, 입력으로서 테스트 케이스를 이용하여 소프트웨어를 구동하는 단계, 및 입력으로서 테스트 케이스를 이용한 소프트웨어의 성능이 예측 결과들을 산출하는지를 검사하는 단계를 수반한다. 소프트웨어 테스트는 사람에 의해 수동적으로 수행될 수 있거나 또는 프로그램적으로 수행될 수 있으며, 프로그램적으로 수행되는 것을 자동화 소프트웨어 테스트(automated software testing)라고 지칭한다. 이상적으로, 소프트웨어의 테스트는 소프트웨어의 수명 주기에서 가능한 한 빨리 개시해야 한다. 그러나, 일반적으로, 소프트웨어는 설계 단계가 완료될 때까지 전혀 테스트될 수 없는데, 그 이유는, 설계 단계가 완료될 때까지 예측 결과들이 결정될 수 없기 때문이다. 통상적으로, 코딩 단계 동안, 개발자는 그가 코드를 기록했을 때 수동으로 코드를 테스트한다. 자동화 소프트웨어 테스트는 보통, 개발 프로세스에서 훨씬 더 후에까지 개시할 수 없다.
때때로, 수행되는 유일한 테스트는, 코딩할 때 수동으로 테스트하는 개발자에 의해서 행해진다. 그러나, 자신의 작업을 테스트하는 개발자는, 코드에 그리 감정 부여가 되지 않은 누군가가 발견할 버그들을, 못보고 지나칠 가능성이 있다. 또한, 개발자의 테스트 범위는 통상적으로, 코드의 기능 및 한정된 수의 다른 소프트웨어 애플리케이션들과의 코드의 통합으로 한정된다.
지시문 (instruction)
주어진 원문을 읽고 필요한 정보를 파악하여, 원문에 근거해 질문에 답하라.
질문 (question)
소프트웨어 테스트가 수행되는 과정에서 수반되는 단계들은 무엇인가?
추론 과정 (compact_reasoning)
-
1과제 해석
task_interpretation소프트웨어 테스트가 이루어지는 구체적인 작동 단계(프로세스)를 묻는 질문이다.
-
2정보 추출
information_extraction본문에서 소프트웨어 테스트의 단계를 설명하는 부분을 탐색한다.
- 소프트웨어 테스트는 테스트 케이스(test case)(또는, 보다 가능성있게는, 테스트 케이스들의 세트)를 안출하는 단계, 입력으로서 테스트 케이스를 이용하여 소프트웨어를 구동하는 단계, 및 입력으로서 테스트 케이스를 이용한 소프트웨어의 성능이 예측 결과들을 산출하는지를 검사하는 단계를 수반한다.
-
3근거 선택
evidence_selection테스트의 3가지 핵심 단계를 직접적으로 명시한 구절을 선택한다.
- 테스트 케이스(test case)(또는, 보다 가능성있게는, 테스트 케이스들의 세트)를 안출하는 단계, 입력으로서 테스트 케이스를 이용하여 소프트웨어를 구동하는 단계, 및 입력으로서 테스트 케이스를 이용한 소프트웨어의 성능이 예측 결과들을 산출하는지를 검사하는 단계
-
4논리 통합
logical_integration추출된 세 단계를 순차적인 프로세스로 통합한다.
-
5결론 도출
conclusion_formulation안출, 구동, 검사의 세 단계로 결론을 도출한다.
-
6답변 생성
answer_generation질문에 대해 나열 형식으로 최종 답변을 작성한다.
- 테스트 케이스(test case)(또는, 보다 가능성있게는, 테스트 케이스들의 세트)를 안출하는 단계, 입력으로서 테스트 케이스를 이용하여 소프트웨어를 구동하는 단계, 및 입력으로서 테스트 케이스를 이용한 소프트웨어의 성능이 예측 결과들을 산출하는지를 검사하는 단계
최종 답변 (final_answer)
소프트웨어 테스트는 1) 테스트 케이스(또는 테스트 케이스들의 세트)를 안출하는 단계, 2) 입력으로서 테스트 케이스를 이용하여 소프트웨어를 구동하는 단계, 3) 입력으로서 테스트 케이스를 이용한 소프트웨어의 성능이 예측 결과들을 산출하는지를 검사하는 단계의 과정을 수반한다.
핵심 해석 (core_interpretation)
소프트웨어 테스트는 테스트 케이스를 안출하고, 이를 입력으로 사용하여 소프트웨어를 구동하며, 그 성능이 예측 결과들을 산출하는지 검사하는 단계를 수반한다.