Веб-приложения, включая Web 2.0, претерпели значительные изменения и больше не представляются в виде статичных страниц. Сеть рассматривается как платформа, и на ее основе создаются программные приложения.
Приложения Web 2.0 построены вокруг нескольких технологий, которые могут быть реализованы в рамках веб-страниц. Новые технологии создают дополнительные трудности при тестировании веб-приложений, такие как динамических элементов и состояний пользовательского интерфейса. Таким образом, разных методов веб-тестирования недостаточно, и требуются новые подходы.
- В целях снижения затрат на тестирование и повышения качества программного обеспечения было предложено несколько инструментов тестирования веб-приложений. Расширенную конечную государственную машину часто можно рассматривать как сжатое обозначение FSM. Описание графического интерфейса создается тестером вручную в виде операторов планирования, которые моделируют предварительные условия и постусловия каждого события графического интерфейса пользователя.
Планировщик автоматически генерирует тестовые сценарии, используя пары переходных состояний начального и конечного уровней. Liu et al предлагают формальную методику моделирования компонентов веб-приложений как объектов и генерируют тестовые примеры на основе потока данных между этими объектами. Эти методы расширяют традиционную генерацию тестов на основе траектории движения и использования формы разнообразных тестов на основе моделей. Они могут быть классифицированы как методы тестирования белого ящика, так как тестовые модели генерируются на основе кода веб-приложения.
Не так много исследований проводилось по тестированию веб-приложений с динамическими возможностями с использованием схем перехода состояний. В разных методиках манипулирования DOM с помощью кода AJAX абстрагируется в модель состояния, где выполнение обратного вызова, вызванного асинхронными сообщениями, полученными с веб-сервера, связано с переходами в состояние. Тестовые примеры сгенерированы из государственной модели, основанной на понятии семантически взаимодействующих событий.
Тестирование является важной частью цикла разработки программного обеспечения. Веб-приложения отличаются от традиционных разработок программного обеспечения, где они следуют гибкой модели разработки программного обеспечения, которая имеет более короткое время разработки. Из-за короткого времени разработки веб-приложений обычно не хватает необходимых документов во время разработки и требования пользователей часто меняются.
Тестирование и сопровождение веб-приложений становится более сложной задачей по сравнению с традиционным программным обеспечением. За последнее десятилетие произошли радикальные изменения в разработке веб-приложений и даже в концепции Интернета. Сеть рассматривается как платформа, на которой создаются программные приложения; таким образом, появляется новое поколение веб-приложений и веб-систем, известных как Web 2.0.
Приложения Web 2.0 основаны на высокодинамичных веб-страницах, построенных на основе технологий AJAX, которые благодаря асинхронным вызовам сервера позволяют пользователям взаимодействовать и влиять на бизнес-логику на серверах. Динамические возможности Web 2.0 усложняют сложную задачу тестирования веб-приложений.
- Однако этот метод генерирует очень большое количество тестовых случаев, которые могут ограничить полезность наборов тестов. Для того чтобы сохранить способность выявлять ошибки, сравнимую с исчерпывающим набором тестов, они были нацелены на максимальное увеличение разнообразия тестовых случаев. Промышленность также предложила некоторые инструменты функционального тестирования для тестирования веб-приложений.
Некоторые инструменты основаны на обнаружении и систематическом изучении путей выполнения веб-приложений, которым может следовать пользователь в веб-приложении. Другие основаны на HttpUnits, где приложение разделено на HttpUnits и протестировано имитируя поведение веб-браузера.
- Многие предлагают эффективный метод тестирования на основе состояния, который может быть использован для обработки сложных веб-приложений. Моделируются веб-приложения, связывая функции или веб-страницы с состояниями и событиями, которые представляют собой переходы между состояниями. Затем метаэвристика, а именно генетический алгоритм, предназначена для генерирования контролируемого количества тестовых случаев с максимальным разнообразием и охватом.
Генетический алгоритм основан на популяциях и развивает результаты исследований на протяжении многих поколений кандидатских решений с использованием генетических операторов, вдохновленных природой. Этот метаэвристический алгоритм показал свою эффективность для классического тестирования такого обеспечения.
Кроме этого, он развивает решения, сводя к минимуму функции, которые представляют собой задачи тестирования. Более того, хотя предложенный метод представлен и применим к примерам веб-приложений, он еще подходит и для программных приложений, которые могут быть смоделированы с помощью графа состояния.
Генетические алгоритмы моделируют естественное явление воспроизводства и отбора популяций для достижения оптимальных результатов. Посредством искусственной эволюции последующие поколения ищут более подходящие приспособления.
Каждое поколение состоит из совокупности хромосом, также называемых индивидуумами, и каждая хромосома представляет собой подходящее решение. Этот процесс повторяется на протяжении многих поколений с целью максимизации физической формы человека.