О проекте
Наше мышление привело нас туда, где мы находимся сейчас. Если я хочу создать что-то новое, мне необходимо мыслить по-другому. Альберт Эйнштейн
|
Проблема изменения требований требует от разработчиков и используемых технологий гибкости. Важнейшим фактором гибкости любого продукта являются взаимозаменяемость используемых технологий и обилие, уникальность, взаимонезависимость параметров настройки получаемого решения, что бы для изменения любых характеристик приложения необходимо было бы изменить один параметр в одном месте. Хотя на практике универсального, масштабируемого, легковесного решения для любого проекта не существует, можем ли мы сформулировать хотя бы гипотетически подобное требование для тестирования? Возможно, аналогичным требованием для систем тестирования должна быть способность адаптации к изменениям производимым в проекте. Адаптация может быть основана на тестогенерации на основе требований к системе и на анализе тестируемого продукта. Оба подхода дополняют друг друга, подходя к вопросу адаптации с двух различных сторон.
Задача генерации автоматизированных тестов является не тривиальной. Описание требований в этом случае выступает в роле метаязыка программирования. Требования к программе должны быть детально описаны и должны поддерживаться в актуальном состоянии. На сегодняшний день автоматически сгенерированные функциональные тесты интерфейса обладают низким качеством потому, что генератор тестов не имеет обратной связи от тестов и не корректирует свою работу, является намного более сложным алгоритмом, чем сами тесты, а ручная коррекция тестов лишена смысла. Корме того, генератор функциональных тестов зависит от технологии, используемых на проекте и не универсален. Генераторы тестов на основе требований системы используются для внутреннего тестирования компонентов программы. На сегодняшний день анализ тестируемого продукта производится на очень низком уровне. Существуют программы способные записывать на самом низком уровне действия пользователя и элементы интерфейса, но они не в состоянии ни связывать эти действия с тестовым планом, ни обобщать повторяющиеся операции, ни даже сравнивать записанные действия. Использование вероятностных сетей может существенно изменить ситуацию. Технология вероятностных сетей способна к обобщению и анализу проблем как на этапе проектирования тестов, так и на этапе тестирования. Термин “Вероятностные сети” это собирательный образ нескольких схожих подходов описания знаний и принятия решений в условиях полной или частичной неопределенности. За основу используемых в работе вероятностных сетей была взята комбинация сетей Байеса, сетей Маркова, семантических сетей и вероятностных нейронных сетей. Сети Байеса используются для систем управления, если исходные значения частично или полностью неопределенны. Сеть представляет собой узлы, которые описывают состояние модели и связи, которые описывают отношения между свойствами модели. Узлы содержать все возможные значения характеристики модели и вероятности, что она их принимает, а связи представляют собой таблицы условных вероятностей при всех возможных комбинациях значений. Связи сетей Байеса имеют направления и в сети не допускаются циклы. Для использования сетей Байеса необходимы алгоритм пересчета и алгоритм построения сетей. Обе задачи являются нетривиальными, и существует несколько реализаций алгоритмов, которые различаются скоростью и точностью работы, а также дают свою интерпретацию построения и пересчета в некоторых спорных моментах. Вероятностные нейронные сети используются для описания не формализуемых в виде блок-схемы алгоритмов доступных только в идее примеров корректной работы. Сети копируют работу головного мозга человека и состоят из искусственных нейронов, способных преобразовывать входной сигнал. Преобразование сигнала производится согласно некоторой пороговой функции. Каждый нейрон обладает состоянием в виде набора параметров для своей пороговой функции. Для обучения сети используется алгоритм обратного распределения, цель которого – подобрать параметры пороговых функций нейронов, используя примеры корректной работы сети. Сети используются для описания поведения модели во времени, если моделируемая система частично или полностью скрыта для непосредственного анализа. Сети Маркова состоят из узлов различных состояний модели и связей переходов между этими состояниями в ответ на входные сигналы, также связи могут посылать выходные сигналы. Алгоритм обучения сетей строит переходы между состояниями на основе наблюдения сигналов моделируемой системы. Ниже приведена таблица с возможностями сетевых технологий.
Для языка автоматизации тестов необходимо как описание объектов интерфейса, так и описание производимых над ними действий. Также было бы полезно обучение системы тестирования на примерах. Также стоит использовать объектно-ориентированное программирование (ООП) для описания объектов описания. В связи с этим необходимо совместное использование нескольких подходов. |

