계획은 네 가지 매개 변수를 포함하는 문제를 해결하기 위해 시도 인공 지능(인공 지능)도메인에서 잘 연구 된 기술이다:
- 초기 상태,
- 목표 상태,
- 연산자 집합 및
- 작업할 개체 집합입니다.
계획 시스템은 연산자를 사용하여 초기 상태에서 목표 상태까지의 경로를 결정합니다. 계획 문제의 간단한 예로서 두 단어와 한 단어의 단일 문자를 다른 단어로 대체하는 단일 작업이 주어지면 한 단어를 다른 단어로 변경하는 것이 목표 일 수 있습니다.
에서 저자는 이 기술을 시연하기 위해 플래너를 사용했다. 시스템의 사용자 인터페이스가 먼저 분석되어 가능한 작업을 결정합니다. 이들은 계획 문제안에 사용되는 통신수가 된다. 다음으로 초기 시스템 상태가 결정되고 테스터가 시스템의 운동을 허용한다고 느끼는 목표 상태가 지정됩니다. 계획 시스템은 초기 상태에서 목표 상태까지의 경로를 결정하여 테스트 계획이 됩니다.
플래너를 사용하여 테스트 케이스를 생성하면 수동 생성보다 몇 가지 구체적인 이점이 있습니다. 계획 시스템은 본질적으로 테스터에게 매우 유익한 방식으로 계획 문제에 대한 해결책을 생성합니다:
- 계획은 항상 유효합니다. 시스템의 출력은 연산자를 사용하여 목표 상태를 달성하거나 계획이 전혀 없는 유효하고 올바른 계획입니다. 이는 테스터가 작동한다고 생각했지만 작동하지 않는 잘못된 테스트 사례로 인해 테스트 스위트를 수동으로 만들 때 많은 시간을 낭비 할 수 있기 때문에 유용합니다.
- 계획 시스템은 주문에주의를 기울입니다. 특정 함수를 테스트하려면 테스트 사례가 복잡해야 하며 작업이 특정 순서로 수행되는 경로를 따라야 합니다. 수동으로 수행하면 오류가 발생할 수 있으며 매우 어렵고 시간이 많이 걸릴 수 있습니다.
- 마지막으로,가장 중요한 것은 계획 시스템이 목표 지향적이라는 것입니다. 테스터는 시스템의 기능을 테스트,가장 중요한 것에 테스트 스위트 생성을 집중하고있다.
수동으로 테스트 스위트를 만들 때 테스터는 함수를 테스트하는 방법에 더 중점을 둡니다. 계획 시스템을 사용하면 경로가 처리되고 테스터는 테스트 할 기능에 집중할 수 있습니다. 이 방법의 또 다른 이점은 경로를 생성할 때 계획 시스템이 어떤 식으로든 제한되지 않으며 종종 테스터가 예상하지 못한 경로를 찾을 수 있다는 것입니다. 이 문제는 대처하기에 매우 중요한 문제입니다.
테스트 케이스를 생성하는 또 다른 방법은 초보 사용자를 시뮬레이션한다. 시스템의 전문가 사용자는 직접적이고 예측 가능한 경로를 따르는 경향이 있지만 초보 사용자는 더 무작위 경로를 따릅니다. 그런 다음 초보 사용자는 전문가보다 더 많은 가능한 상태를 탐색 할 수 있습니다.
어려움은’초보자’시스템 사용을 시뮬레이션하는 테스트 스위트를 생성하는 데 있습니다. 이 문제를 해결하기 위해 유전자 알고리즘을 사용하는 것이 제안되었습니다. 시스템을 통한 초보자 경로는 무작위 경로가 아닙니다. 첫째,초보 사용자는 시간이 지남에 따라 배우고 일반적으로 동일한 실수를 반복하지 않으며,둘째,초보 사용자는 계획을 따르고 있으며 아마도 일부 도메인 또는 시스템 지식을 가지고 있습니다.
유전자 알고리즘은 다음과 같이 작동합니다:일련의’유전자’가 무작위로 생성 된 다음 일부 작업을 수행합니다. 작업을 가장 잘 완료하는 유전자는 보관되고 그렇지 않은 유전자는 폐기됩니다. 이 과정은 생존 유전자가 복제되고 나머지 세트가 더 무작위 유전자로 채워지면서 다시 반복됩니다. 결국 하나의 유전자(또는 일부 임계 값 세트가있는 경우 작은 유전자 세트)가 세트의 유일한 유전자가 될 것이며 자연스럽게 주어진 문제에 가장 적합합니다.
이 방법은 다음과 같이 작동합니다. 각 유전자는 본질적으로 고정 길이의 임의의 정수 값 목록입니다. 이 유전자들 각각은 구이를 통과하는 경로를 나타냅니다. 예를 들어,주어진 위젯 트리에 대해 유전자의 첫 번째 값(각 값을 대립 유전자라고 함)은 작동 할 위젯을 선택하고 다음 대립 유전자는 위젯에 대한 가능한 입력 수에 따라 위젯에 입력을 채 웁니다(예:풀다운 목록 상자는 하나의 입력… 유전자의 성공은 제일”초심자”행동을 보상하는 표준에 의해 득점된다.그러나 모든 윈도우 시스템에 확장할 수 있는 시스템에 대해서는 에 설명되어 있습니다. 이것은 수학적으로 정확한 유형 계층구조인,강력한 타입을 정의합니다. 예를 들어,풀다운 메뉴에서 클릭을 시뮬레이션하기 위해 엑센드 이벤트()를 호출 할 수 있습니다. 이 시스템을 통해 연구자들은 유전자 생성 및 테스트를 자동화 할 수 있으므로 테스트중인 특정 응용 프로그램에 대해 초보 사용자 테스트 케이스 세트를 만들 수 있습니다.