Тестовый сценарий
Тестом целевой системы с интерфейсом ( X, Y, V ) называется конечная или бесконечная последовательность взаимодействий { ( vi, xi, yi, v'i ) }. Множество всех тестов целевой системы с интерфейсом ( X, Y, V ) будем обозначать символом ℵ( X, Y, V ).
Моделью поведения целевой системы в ходе теста { ( vi, xi, yi, v'i ) } будем называть мультимножество взаимодействий { ( vi, xi, yi, v'i ) }.
Тест { ( vi, xi, yi, v'i ) } целевой системы с интерфейсом ( X, Y, V ) будем называть успешным относительно модели требований A = ( V, X, Y, E ), если модель поведения в ходе теста удовлетворяет модели требований A. В противном случае, тест будет называться неуспешным.
Определение 4.
Тестовым сценарием для целевой системы с интерфейсом ( X, Y, V ) называется пара ( C, s0 ), где
- C - управляющий автомат ( S, A, B, E, Q ), в котором
- множество стимулов A = X V,
- множество реакций B = (Y x V) { ε },
- множество переходов включает в себя только переходы ( s, a, b, s' ), в которых либо a X и b (Y x V), либо a V и b = ε;
- s0 : V S - функция инициализации.
Тестовый сценарий управляет процессом тестирования, выполняя одно из двух возможных действий: либо подавая стимул x
X, либо устанавливая новое состояние v V. Реакцией на первое действие является реакция целевой системы y и ее постсостояние v', а на второе - пустая реакция ε. Функция инициализации определяет начальное состояние управляющего автомата в зависимости от начального состояния целевой системы.Множество всех тестовых сценариев для целевой системы с интерфейсом ( X, Y, V ) будем обозначать символом
( X, Y, V ). Множество тестовых сценариев для целевой системы с интерфейсом ( X, Y, V ) и с заданным множеством состояний управляющего автомата S будет обозначаться ( X, Y, V, S ).Пусть { ej = ( sj, aj, bj, s'j ) } является функционированием тестового сценария σ для целевой системы с интерфейсом ( X, Y, V ).
Тогда { ek(i) = ( sk(i), ak(i), bk(i), s'k(i) ) } будем обозначать подпоследовательность последовательности { ej } составленную из переходов, действия которых связаны с подачей стимула ( ak(i)
Результатом применения тестового сценария σ = ( C = ( S, A, B, E, Q ), s0 ) к целевой системе, находящейся в начальном состоянии v0 V, является тест { ( vi, xi, yi, v'i ) }, для которого существует такое функционирование управляющего автомата C с начальным состоянием s0(v0) { ej = ( sj, aj, bj, s'j ) }, что длина теста совпадает с длиной подпоследовательности { ek(i) } и для каждого взаимодействия ( vi, xi, yi, v'i ) выполнены следующие условия:
- пресостояние vi совпадает с
- начальным состоянием целевой системы v0, если k(i) = 1;
- ранее установленным состоянием ak(i)-1, если k(i) > 1 и ak (i)-1 V;
- постсостоянием после предыдущей подачи стимула vi-1, если k(i) > 1 и ak(i)-1 X;
- стимул xi совпадает с ak(i);
- реакция yi совпадает с первым элементом реакции bk(i) = ( yk(i), vk(i) );
- постсостояние v'i совпадает со вторым элементом реакции bk(i) = ( yk(i), vk(i) ).
Такой тест мы будем обозначать T( σ, v0 ).
Тестовый сценарий определяет последовательность тестовых действий, которая может варьироваться в зависимости от поведения целевой системы в процессе тестирования. Результатом работы тестового сценария является тест, состоящий из последовательности взаимодействий с целевой системой.
Далее, мы введем вспомогательное определение тестового сценария с внутренними переходами, которое будет использоваться для описания тестовых сценариев в более компактной форме.
Тестовым сценарием с внутренними переходами для целевой системы с интерфейсом ( X, Y, V ) называется пара ( C, s0 ), где
- C - управляющий автомат ( S, A, B, E, Q ), в котором
- множество стимулов A X V { ε },
- множество реакций B (Y x V) { ε },
- множество переходов включает в себя только переходы ( s, a, b, s' ), в которых либо a X и b (Y x V), либо a V { ε } и b = ε;
- s0 : V S - функция инициализации.
Основной особенностью данного определения является дополнительный элемент множества стимулов ε, который обозначает внутренний переход управляющего автомата.
Каждому тестовому сценарию с внутренними переходами σε = ( ( S, A, B, E, Q ), s0 ) соответствует тестовый сценарий σ( σε ) = ( ( S, A', B, E', Q' ), s0 ), в котором
- множество стимулов A' = X V,
- множество переходов E' состоит из переходов ( s, a, b, s' ) S x A' x B x S, для которых существует путь s1 s2 … sn в управляющем автомате ( S, A, B, E, Q ), удовлетворяющий следующим условиям:
- начальное состояние пути s1 = s,
- конечное состояние пути sn = s',
- i { 1, …, n-1 }: (ai = a) (bi = b)
j { 1, …, n-1 } (i ≠ j) (aj = ε) (bj = ε); - множество заключительных состояний Q' состоит из состояний множества Q, а также из состояний s S, из которых не выходит ни одного перехода во множестве E', но существует путь s1 s2 … sn в управляющем автомате ( S, A, B, E, Q ), в котором:
- начальное состояние s1 = s,
- конечное состояние sn Q,
- i { 1, …, n } (ai = ε) (bi = ε).
Определение 5.
Механизмом построения тестового сценария называется функция, значением которой является тестовый сценарий.
Механизмы построения тестового сценария применяются для создания тестовых сценариев на основе каких-либо данных. Примером такого механизма может быть последовательная композиция набора тестовых сценариев.
В технологии UniTesK реализовано несколько механизмов построения тестового сценария. Наиболее важный из них - автоматный механизм построения тестового сценария, который является настолько гибким и удобным, что именно он используется для построения подавляющего большинства тестовых сценариев.