Тестирование инф.систем. Ответы на вопросы к лекциям Понятие тестирования программного обеспечения
Скачать 0.52 Mb.
|
Уровень модульного тестирования (Unit Test layer).Под автоматизированными тестами на этом уровне понимаются модульные или компонентные тесты, которые чаще всего пишут разработчики программного продукта. Такие тесты позволяют начать тестирование на ранней стадии разработки проекта. Более того, разработчики используют их для проверки исправлений дефектов. Количество тестов на уровне модульного тестирования увеличивается за счет разработки новых модулей и тестов для них. Уровень функционального тестирования (Functional Test Layer non-UI). Не всю бизнес логику приложения можно протестировать через слой GUI. Иногда бизнес-логика скрыта от пользователя, и это является особенностью реализации. Но тестирование бизнес-логики все равно необходимо. В таком случае для команды тестирования реализуется доступ напрямую к функциональному слою, что обеспечивает возможность тестировать бизнес-логику приложения, минуя пользовательский интерфейс. Уровень тестирования через пользовательский интерфейс (GUI Test Layer).На данном уровне есть возможность тестировать не только интерфейс пользователя, но также и функциональность, выполняя операции, которые вызывают бизнес-логику приложения. Такие тесты, как правило, более эффективны, чем тестирование функционального слоя напрямую, так как функциональность тестируется посредством эмуляции действий конечного пользователя через графический интерфейс. Идеальной является ситуация, когда автоматизация тестирования выполнена на всех трех указанных выше уровнях. 15.Какие из инструментов, используемых для автоматизации тестирования, вам известны? Оптимальность инструмента автоматизации определяется следующими ключевыми моментами: время, требуемое на поддержку скриптов. Если небольшой скрипт, который осуществляет нажатие на определенную кнопку, придется полностью переписать, в случае простого изменения целевой кнопки, то инструмент, вероятнее всего, не будет удобен. Необходимо подбирать такой инструмент, который позволяет выносить переменные в начало скриптов и при необходимости просто заменять их значения. Еще более удобным вариантом является возможность описать наборы кнопок, меню и прочие подобные элементы как отдельные классы; способность распознавать элементы управления в разрабатываемом приложении. Если большинство элементов не распознается с помощью выбранного инструмента, то необходимо поискать специальные модули или плагины, которые обеспечат такую возможность. Если не удается отыскать что-либо подходящее, то придется отказаться от выбранного инструмента, т.к. он не обеспечит удобство написания автоматизированных тестов. Здесь хорошо работает правило: чем больше элементов управления способен распознать выбранный инструмент, тем меньше времени потребуется на создание и поддержание работоспособности автотестов; удобство написания новых тестов. Очень важно знать, имеется ли у инструмента возможность поддержки ООП, насколько удобно писать код, а также насколько он читаем. Важную роль играет удобство среды разработки и порог вхождения (насколько сложно новому специалисту по автоматизации освоить инструмент, если он никогда ранее с ним не работал). Что необходимо учитывать при выборе инструмента автоматизации тестирования? Зачастую выбирают несколько инструментов для тестирования функций приложения. Существует большое количество всевозможных инструментов, поддерживающих различные языки и технологии разработки и позволяющих наиболее удобно осуществлять проверки тех или иных аспектов работы разрабатываемой системы. Важны ли особенности разрабатываемой системы при выборе инструмента автоматизации тестирования? Оптимальность инструмента автоматизации определяется следующими ключевыми моментами: время, требуемое на поддержку скриптов. Если небольшой скрипт, который осуществляет нажатие на определенную кнопку, придется полностью переписать, в случае простого изменения целевой кнопки, то инструмент, вероятнее всего, не будет удобен. Необходимо подбирать такой инструмент, который позволяет выносить переменные в начало скриптов и при необходимости просто заменять их значения. Еще более удобным вариантом является возможность описать наборы кнопок, меню и прочие подобные элементы как отдельные классы; способность распознавать элементы управления в разрабатываемом приложении. Если большинство элементов не распознается с помощью выбранного инструмента, то необходимо поискать специальные модули или плагины, которые обеспечат такую возможность. Если не удается отыскать что-либо подходящее, то придется отказаться от выбранного инструмента, т.к. он не обеспечит удобство написания автоматизированных тестов. Здесь хорошо работает правило: чем больше элементов управления способен распознать выбранный инструмент, тем меньше времени потребуется на создание и поддержание работоспособности автотестов; удобство написания новых тестов. Очень важно знать, имеется ли у инструмента возможность поддержки ООП, насколько удобно писать код, а также насколько он читаем. Важную роль играет удобство среды разработки и порог вхождения (насколько сложно новому специалисту по автоматизации освоить инструмент, если он никогда ранее с ним не работал). Можно ли обойтись только автоматизированным тестированием? Наиболее часто в современной автоматизации тестирования используют Java-библиотеки для автоматизации тестирования (java-based test tools and libraries). Существует большое количество таких библиотек. В таблице 10 описаны наиболее известные из них. Таблица 10 – Java-based test tools and libraries
Кроме представленных Java-фреймворков, существует огромное количество фреймворков и инструментов, ориентированных на другие языки программирования, такие как: php, ruby, javascript, C#, javascript, python, perl и др. 19.Приведите пример предусловия к тесту. Приведите пример шагов теста. Почему важно привести систему к пригодному для тестирования состоянию как до, так и после выполнения теста? Какую дополнительную библиотеку обычно создают для автотестов? Можно ли совмещать негативные и позитивные проверки в рамках одного теста? 24.Почему один тест должен подразумевать одну проверку? 25.Почему один шаг теста не должен содержать несколько действий? |