Основные понятия и виды Тестирование 2 Определения тестирования

Скачать презентацию Основные понятия и виды Тестирование 2 Определения тестирования Скачать презентацию Основные понятия и виды Тестирование 2 Определения тестирования

13178-types_of_testing.ppt

  • Количество слайдов: 51

>Основные понятия и виды Тестирование Основные понятия и виды Тестирование

>2 Определения тестирования 1980  Процесс выполнения программы с намерением найти  ошибки. [Г.Майерс. 2 Определения тестирования 1980 Процесс выполнения программы с намерением найти ошибки. [Г.Майерс. Надежность программного обеспечения. М:Мир, 1980] 1987 Процесс наблюдения за выполнением программы в специальных условиях и вынесения на этой основе оценки каких-либо ее аспектов. [ANSI/IEEE standard 610.12-1990: Glossary of SE Terminology. NY:IEEE, 1987] 1990 Это не действие. Это интеллектуальная дисциплина, имеющая целью получения надежного программного обеспечения без излишних усилий на его проверку. [B. Beizer. Software Testing Techniques, Second Edition. NY:van Nostrand Reinhold, 1990] 1999 Техническое исследование программы для получения информации о ее качестве с точки зрения определенного круга заинтересованных лиц. [С. Kaner, 1999] 2004 Проверка соответствия между реальным поведением программы и ее ожидаемым поведением на конечном наборе тестов, выбранном определенным образом. [IEEE Guide to Software Engineering Body of Knowledge, SWEBOK, 2004] 2004 Это процесс анализа или эксплуатации программного продукта с целью обнаружения ошибок.

>3    Технологии тестирования 3 Технологии тестирования

>4 Технологии тестирования  Статическое тестирование (static testing) – это процесс, связанный с анализом 4 Технологии тестирования Статическое тестирование (static testing) – это процесс, связанный с анализом разработки программного обеспечения. Статическое тестирование предусматривает проверку любых рабочих продуктов, например, таких как программный код, требования к программному продукту, функциональная спецификация, архитектура, и т.д. Динамическое тестирование (dynamic testing) - тестовая деятельность, предусматривающая эксплуатацию программного продукта. Динамическое тестирование без прогона кода программного продукта обойтись не может. Другими словами, динамическое тестирование состоит из запуска программы, прогона всех ее функциональных модулей и сравнения ее фактического поведения с ожидаемым, используя пользовательский интерфейс.

>Классификация видов тестирования  Классификация видов тестирования   По критерию позитивности  По Классификация видов тестирования Классификация видов тестирования По критерию позитивности По знанию внутренностей По объекту тестирования По субъекту тестирования По времени проведения тестирования По степени изолированности тестируемых компонент По степени автоматизации По степени подготовки 5

>Классификация видов тестирования    Классификация по критерию позитивности 6 Классификация видов тестирования Классификация по критерию позитивности 6

>Классификация по критерию позитивности   Позитивное тестирование (positive testing)  Это сценарии, предполагающие Классификация по критерию позитивности Позитивное тестирование (positive testing) Это сценарии, предполагающие нормальное, “правильное” использование и/или работу системы. Другими словами приложение должно делать то что должно делать. Негативное тестирование (negative testing) Это сценарии, проверяющие ситуацию связанную с потенциальной ошибкой пользователя и/или потенциальным дефектом в системе. 7

>8 Классификация по знанию внутренностей  Классификация по знанию внутренней структуры   Черный 8 Классификация по знанию внутренностей Классификация по знанию внутренней структуры Черный ящик (Black box testing) Белый ящик (White box testing) Серый ящик (Grey box testing)

>9 Классификация по знанию внутренностей: черный ящик  Тестирование черного ящика, нацеленное на проверку 9 Классификация по знанию внутренностей: черный ящик Тестирование черного ящика, нацеленное на проверку требований. Тесты для него и критерий полноты тестирования строятся на основе требований и ограничений, четко зафиксированных в спецификациях, стандартах, внутренних нормативных документах. Часто такое тестирование называется тестированием на соответствие (conformance tasting). Частным случаем его является функциональное тестирование — тесты для него, а также используемые критерии полноты проведенного тестирования определяют на основе требований к функциональности. Еще одним примером тестирования на соответствие является аттестационное или сертификационное тестирование, по результатам которого программная система получает (или не получает) официальный документ, подтверждающий ее соответствие определенным требованиям и стандартам.

>10 Классификация по знанию внутренностей: белый ящик  Тестирование белого ящика, оно же структурное 10 Классификация по знанию внутренностей: белый ящик Тестирование белого ящика, оно же структурное тестирование — тесты создаются на основе знаний о структуре самой системы и о том, как она работает. Критерии полноты основаны на проценте элементов кода, которые отработали в ходе выполнения тестов. Для оценки степени соответствия требованиям могут привлекаться дополнительные знания о связи требований с определенными ограничениями на значения внутренних данных системы (например, на значения параметров вызовов, результатов и локальных переменных).

>11 Классификация по знанию внутренностей: серый ящик    Тестирование с использованием метода 11 Классификация по знанию внутренностей: серый ящик Тестирование с использованием метода серого ящика (gray box) предполагает рассмотрение в качестве объектов тестирования не все приложение в целом, а отдельные его интерфейсы, как пользовательские, так и прикладные. Основным недостатком данного метода является то, что программный продукт не тестируется в полном объеме, и, следовательно, только часть ошибок может быть выявлена.

>12 Классификация по объекту тестирования     Классификация по объекту тестирования 12 Классификация по объекту тестирования Классификация по объекту тестирования

>13 Классификация по объекту тестирования  Функциональное  тестирование (functional testing)   Функциональное 13 Классификация по объекту тестирования Функциональное тестирование (functional testing) Функциональное тестирование. Этот вид тестирования проверяет соответствие реализованных функций требованиям, ТЗ, спецификациям, различным другим проектным документам и просто ожиданиям пользователя. Проверяется каждая из функций приложения и все они в комплексе. Исследуются все сценарии использования. Проверяется адекватность хранимых и выходных данных, методы их обработки, обработка вводимых данных, методы хранения данных, методы импорта и экспорта данных и т.д. в зависимости от специфики приложения.

>14 Классификация по объекту тестирования   Тестирование локализации (localization testing)  Цель теста 14 Классификация по объекту тестирования Тестирование локализации (localization testing) Цель теста локализации – убедиться, что приложение поддерживает многоязыковый интерфейс и функции. Это может включать в себя автоматизированный приемочный тест и проверку проблем связанных с локализацией (перевод на другой язык, формат дат и чисел, почтовые адреса, порядок имени и фамилии, валюты и т.д.). Орфография и грамматика обычно не тестируются.

>15 Классификация по объекту тестирования Тестирование безопасности (security testing)  Тестирование безопасности. Такой вид 15 Классификация по объекту тестирования Тестирование безопасности (security testing) Тестирование безопасности. Такой вид тестирования позволяет убедиться, что данные хранятся надежно, доступ к ним блокирован для посторонних лиц. Данные в процессе хранения, обработки и иной работы с ними не могут быть получены методами несанкционированного доступа. Проверяется защищенность БД, каналов связи, интерфейсов ввода и транспорта данных. Также уделяется внимание проверке прав доступа для пользователя. Проверяется может ли пользователь сделать то, что имеет право делать в соответствии с правами и что не может сделать из того, что ему запрещено. Тестирование безопасности может иметь различную степень покрытия: Первичное тестирование безопасности; Полное тестирование приложения; Полное тестирование приложения и сервера.

>16 Классификация по объекту тестирования  В зависимости от степени покрытия тестирование безопасности может 16 Классификация по объекту тестирования В зависимости от степени покрытия тестирование безопасности может включать в себя следующие аспекты: Тестирование контроля доступа — помогает обнаружить дефекты, в результате которых пользователи могут получать несанкционированный доступ к объектам и функциям приложения Тестирование авторизации пользователей выявляет дефекты, связанные с авторизацией отдельных пользователей и групп пользователей и с проверкой их подлинности. Тестирование валидации ввода — используется для проверки валидации данных сервером до того, как они попадают в приложение. Тестирование надежности шифрования данных — используется для выявления дефектов, связанных с шифрованием и расшифровкой данных, использованием цифровых подписей и проверкой их подлинности.

>17 Классификация по объекту тестирования    Тестирование правильности обработки ошибок — включает 17 Классификация по объекту тестирования Тестирование правильности обработки ошибок — включает в себя проверку таких аспектов, как вывод на экран фрагментов кода при ошибке, влияние ошибок на работу всего приложения и раскрытие излишней информации о сбое в работе. Тестирование на переполнение буфера — выявляет ненадлежащее раскрытие данных. Тестирование конфигурации сервера — помогает обнаружить ошибки в многопоточных средах, в результате которых данные могут быть повреждены или использованы совместно (например, переменные, совместно используемые разными потоками и приводящие к дефектам типа «time-of-check-time-of-use», некорректные шаблоны проектирования «Одиночка» (Singleton) и плохое построение кэша).

>18 Классификация по объекту тестирования Тестирование удобства использования(usability testing)  Проверяется удобство пользования продуктом. 18 Классификация по объекту тестирования Тестирование удобства использования(usability testing) Проверяется удобство пользования продуктом. Исследуется на примере группы испытуемых как пользователь воспринимает продукт, как он представляет себе пути его использования, сколько времени затрачивает на то или иное действие, какие проблемы у него возникают и в состоянии ли он их решить. Проверка способности системы корректно функционировать в точном соответствии с процессами и действиями, осуществляемыми конечными пользователями в привычной для них среде. В процессе исследования проводится анализ удобства пользовательского интерфейса и функциональности системы. При тестировании удобства пользования приложением во внимание принимаются следующие его аспекты: Однородность; Логика и структура; Навигация.

>19 Классификация по объекту тестирования  GUI-тестирование (тестирование пользовательского интерфейса) - это тестирование графического 19 Классификация по объекту тестирования GUI-тестирование (тестирование пользовательского интерфейса) - это тестирование графического интерфейса - окон, меню, кнопок, списков и т.д. Как правило, через пользовательский интерфейс и реализуется большая часть функциональности ПО. Виды GUI-тестирования : Тестирование на соответствие стандартам графических интерфейсов; Тестирование с различными разрешениями экрана; Тестирование в ограниченных условиях, например, в условиях нехватки памяти; Совместимость с различными Интернет-браузерами; Тестирование локализованных версий: точность перевода, проверка длины названий элементов интерфейса и т.д.; Тестирование графического интерфейса пользователя на целевых устройствах (для КПК-совместимых приложений).

>20 Классификация по объекту тестирования    Тестирование совместимости (compatibility testing) -проверка работоспособности 20 Классификация по объекту тестирования Тестирование совместимости (compatibility testing) -проверка работоспособности продукта на разных типах и моделях компьютеров, с различными типами внешних устройств (например, принтеров), а также совместимости с другими аппаратными и программными компонентами системы

>21 Классификация по объекту тестирования  Инсталляционное тестирование (Installation testing) — проверка корректной установки 21 Классификация по объекту тестирования Инсталляционное тестирование (Installation testing) — проверка корректной установки системы при различных условиях с софтом и хардом: недостаток места на диске, недостаточные системные требования, отсутствие привилегий создания директорий. Проверка работы системы при апгрейде со старой версии на новую, так же как и установки с нуля. Установка в различных локализациях. Тестирование процедуры установки продукта разделяется на несколько частей: Формальное тестирование программы установки; Функциональное тестирование программы установки; Тестирование механизма лицензирования и способности противостоять взлому; Проверка стабильности работы приложения после установки. Формальное тестирование графического интерфейса пользователя; Тестирование навигации; Тестирование удобства пользования приложением; Тестирование региональных и языковых настроек; Выявление любых ошибочных ситуаций; Проверка доступности контактной информации. Тестирование различных опций установки: - Типы установки (типичная, компактная, пользовательская, пр.); - Установка с CD-ROM; - Установка патчей и специальных функций; - Тестирование разных режимов (исправить, изменить, удалить). Проверка правильности возврата к началу программы при отмене установки или деинсталляции: - Объекты файловой системы; - Ключи регистрации и значения ключей; - Регистрация компонентов COM и .NET; - Файлы инициализации, ODBC DSN, общие папки и т.д. Общая функциональность: - Проверка прав локального администратора; - Правильная обработка исключительных ситуаций (недостаток места на диске, памяти, прав пользователей); - Приемлемый уровень производительности и использования ресурсов. Тестирование на уровне пользователя: - Функциональное тестирование механизма лицензирования; - Атаки на уровне пользователя. Тестирование на повышенном уровне: - Разбор форматов файлов лицензии и мест в реестре или файлах, где хранится важная информация о лицензировании; - Разборка, исправление или повторная сборка бинарных модулей; - Запуск приложения в режиме отладки; - Создание генераторов ключей, эмуляторов устройств и т.д.; - Подсчет объема работы на предыдущих этапах и принятие решения о надежности системы защиты; - Разработка рекомендаций по улучшению механизма лицензирования и системы защиты. Правильность структуры папок, Корректность работы с различными вариантами окружения, Стабильность работы самого приложения.

>Классификация по объекту тестирования        Нагрузочное тестирование Классификация по объекту тестирования Нагрузочное тестирование 22

>Классификация нагрузочного тестирования  Тестирование производительности (performance testing) – нагрузочное тестирование, целью которого является Классификация нагрузочного тестирования Тестирование производительности (performance testing) – нагрузочное тестирование, целью которого является определение показателей производительности системы при типовой нагрузке. Тестирование производительности при максимальной нагрузке (load testing) – нагрузочное тестирование, целью которого является определение параметров производительности при максимально прогнозируемой нагрузке на систему, а также определение пределов производительности, т.е. максимального количества пользователей, которые одновременно смогут работать с системой без ошибок и сбоев. Стрессовое тестирование (stress testing) – нагрузочное тестирование, целью которого является определение параметров производительности системы в случае ограниченности ресурсов (например, меньшая пропускная способность канала связи). 23

>Классификация нагрузочного тестирования  Объемное тестирование (volume testing) – нагрузочное тестирование, целью которого является Классификация нагрузочного тестирования Объемное тестирование (volume testing) – нагрузочное тестирование, целью которого является определение параметров производительности системы в случае значительного изменения объемов данных (исследуется деградация системы в зависимости от увеличения объемов БД). Тестирование маштабируемости (scalability testing) – нагрузочное тестирование, целью которого является определение параметров производительности системы на различных аппаратно-программных платформах. Тестирование надежности (reliability testing) – нагрузочное тестирование, целью которого является определение параметров производительности в условиях длительной эксплуатации, в том числе с большими объемами данных и при большой нагрузке на систему. 24

>Классификация нагрузочного тестирования     Сайзинг (sizing) – особый вид нагрузочного тестирования, Классификация нагрузочного тестирования Сайзинг (sizing) – особый вид нагрузочного тестирования, который связан с оптимизацией производительности. Целью данного вида нагрузочного тестирования является определение такой конфигурации системы (как программной, так и аппаратной), на которой обеспечивается максимальная производительность. 25

>26 Классификация по субъекту тестирования        Классификация по 26 Классификация по субъекту тестирования Классификация по субъекту тестирования

>Классификация по субъекту тестирования Альфа тестирование (alpha testing)  Это использование почти готовой версии Классификация по субъекту тестирования Альфа тестирование (alpha testing) Это использование почти готовой версии продукта (как правило, программного или аппаратного обеспечения) штатными сотрудниками компании (программистами и тестерами) с целью выявления ошибок в его работе для их последующего устранения перед бета тестированием либо окончательным выходом (выпуском) продукта на рынок, к массовому потребителю. Бета тестирование (beta testing) Это интенсивное использование почти готовой версии продукта с целью выявления максимального числа ошибок в его работе для их последующего устранения перед окончательным выходом (выпуском) продукта на рынок, к массовому потребителю. Бета-тестирование предполагает привлечение добровольцев из числа обычных будущих пользователей продукта, которым рассылается упомянутая предварительная версия продукта. 27

>Классификация по субъекту тестирования  Gamma testing (гамма-тестирование) - третья стадия тестирования программного продукта Классификация по субъекту тестирования Gamma testing (гамма-тестирование) - третья стадия тестирования программного продукта перед его коммерческим выпуском. На этапе гамма тестирования не в окончательном виде могут быть только документация и упаковка. 28

>29 Классификация по времени проведения тестирования        Классификация 29 Классификация по времени проведения тестирования Классификация по времени проведения тестирования

>Классификация по времени проведения тестирования    Тест приемки (smoke test) - предварительное Классификация по времени проведения тестирования Тест приемки (smoke test) - предварительное мероприятие перед дальнейшим тестированием, которое должно показать простые отказы, достаточно серьезные, чтобы отклонить предполагаемый выпуск программного обеспечения. Приемочный тест выполняется для того, чтобы сделать быструю оценку готовности приложения для дальнейшего более детального и глубокого тестирования. Он включает тестирование основных функций приложения на одной, наиболее широко используемой и наиболее важной конфигурации. Типичный сценарий приемочного теста будет включать шаги, описанные в разделе «Приемочный тест» Тестовый сценариев. Если приложение не проходит приемочный тест, группа тестирования посылает уведомление и прекращает дальнейшее тестирование до выхода исправленной версии приложения. 30

>Классификация по времени проведения тестирования    Тестирование новой функциональности (new feature testing) Классификация по времени проведения тестирования Тестирование новой функциональности (new feature testing) Целью является проверка того, что новая функциональность работает корректно. Тестирование новой функциональности входит в критический тест. В случае, если новая функциональность является очень важной частью приложения, ее тестирование может быть включено в приемочный тест. 31

>Классификация по времени проведения тестирования  Регрессионное тестирование (regression testing) - вид тестирования, направленный Классификация по времени проведения тестирования Регрессионное тестирование (regression testing) - вид тестирования, направленный на обнаружение ошибок в уже протестированных участках исходного кода. Обычно используемые методы регрессионного тестирования включают повторные прогоны предыдущих тестов, а также проверки, не попали ли регрессионные ошибки в очередную версию в результате слияния кода. А также проверка исправленных ошибок. Хотя регрессионное тестирование может быть выполнено и вручную, но чаще всего это делается с помощью специализированных программ, позволяющих выполнять все регрессионные тесты автоматически. Регрессионное тестирование может быть использовано не только для проверки корректности программы, часто оно также используется для оценки качества полученного результата. Так, при разработке компилятора, при прогоне регрессионных тестов рассматривается размер получаемого кода, скорость его выполнения и время компиляции каждого из тестовых примеров. 32

>Классификация по времени проведения тестирования     Приемочное тестирование (certification/acceptance test) - Классификация по времени проведения тестирования Приемочное тестирование (certification/acceptance test) - проверяет поведение системы на предмет удовлетворения требований заказчика. Это возможно в том случае, если заказчик берет на себя ответственность, связанную с проведением таких работ, как сторона «принимающая» программную систему, или специфицированы типовые задачи, успешная проверка (тестирование) которых позволяет говорить об удовлетворении требований заказчика. Такие тесты могут проводиться как с привлечением разработчиков системы, так и без них. 33

>Классификация по степени изолированности тестируемых компонент   По степени изолированности тестируемых компонент: Классификация по степени изолированности тестируемых компонент По степени изолированности тестируемых компонент: Модульное тестирование (Unit testing) Интеграционное тестирование (integration testing) Системное тестирование (system testing) Конфигурационное тестирование (Configuration testing) 34

>Классификация по степени изолированности тестируемых компонент  Модульное тестирование (Unit testing)   Модульное Классификация по степени изолированности тестируемых компонент Модульное тестирование (Unit testing) Модульное тестирование - процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы. Идея состоит в том, чтобы писать тесты для каждой нетривиальной функции или метода. Это позволит достаточно быстро проверить, не привело ли очередное изменение кода к регрессии, то есть к появлению ошибок в уже написанных и оттестированных местах программы, а также облегчает локализацию и устранение таких ошибок. Для получения максимального результата тестирование проводится одновременно с разработкой модулей. 35

>Классификация по степени изолированности тестируемых компонент Интеграционное тестирование (integration testing).  Интеграционное тестирование - Классификация по степени изолированности тестируемых компонент Интеграционное тестирование (integration testing). Интеграционное тестирование - одна из фаз тестирования программного обеспечения, при котором отдельные программные модули объединяются и тестируются в группе. Обычно интеграционное тестирование проводится после модульного тестирования и предшествует системному тестированию. Интеграционное тестирование в качестве входных данных использует модули, над которыми было проведено модульное тестирование, группирует их в более крупные множества, выполняет тесты, определенные в плане тестирования для этих множеств и представляет их в качестве выходных данных и входных для последующего системного тестирования. Целью интеграционного тестирования является проверка соответствия проектируемых единиц функциональным, приемным и требованиям надежности. Тестирование этих проектируемых единиц - объединения, множества или группа модулей - выполняются через их интерфейс, используя тестирование «черного ящика». 36

>Классификация по степени изолированности тестируемых компонент   Системное тестирование (system testing)  Системное Классификация по степени изолированности тестируемых компонент Системное тестирование (system testing) Системное тестирование - это тестирование программного обеспечения (ПО), выполняемое на полной, интегрированной системе, с целью проверки соответствия системы исходным требованиям. Системное тестирование относится к методам тестирования чёрного ящика, и, тем самым, не требует знаний о внутреннем устройстве системы. Входными данными для системного тестирования являются набор завершенных отлаженных тестов. Системное тестирование проводится для удостоверения того, что программное обеспечение делает именно то, что от него ожидает пользователь. Используются два основных типа испытаний: функциональная проверка и испытания для определения рабочих характеристик. 37

>Классификация по степени изолированности тестируемых компонент  Конфигурационное тестирование (Configuration testing)  Этот вид Классификация по степени изолированности тестируемых компонент Конфигурационное тестирование (Configuration testing) Этот вид тестирования позволяет проверить, как приложение ведет себя при различных разрешениях экрана, в различных браузерах, на различных ОС, с разным программным и аппаратным обеспечением. Необходимо также проверять, что система продолжает стабильно работать при горячей замене любого поддерживаемого устройства на аналогичное. При этом система не должна давать сбоев ни в момент замены устройства, ни после начала работы с новым устройством. Также необходимо проверять, что система корректно обрабатывает проблемы, возникающие в оборудовании, как штатные (например, сигнал конца бумаги в принтере), так и нештатные (сбой питания). 38

>Классификация по степени автоматизированности тестирования     По степени автоматизированности тестирования выделяют: Классификация по степени автоматизированности тестирования По степени автоматизированности тестирования выделяют: Ручное тестирование Автоматизированное тестирование Смешанное тестирование 39

>Классификация по степени автоматизированности тестирования    Ручное тестирование. Ручное тестирование заключается в Классификация по степени автоматизированности тестирования Ручное тестирование. Ручное тестирование заключается в выполнении задокументированной процедуры, где описана методика выполнения тестов, задающая порядок тестов и для каждого теста - список значений параметров, который подается на вход, и список результатов, ожидаемых на выходе. Поскольку процедура предназначена для выполнения человеком, в ее описание для краткости могут использоваться некоторые значения по умолчанию, ориентированные на здравый смысл, или ссылки на информацию, хранящуюся в другом документе. 40

>Классификация по степени автоматизированности тестирования     Автоматизированное тестирование. Тестирование в автоматическом Классификация по степени автоматизированности тестирования Автоматизированное тестирование. Тестирование в автоматическом режиме при помощи программных скриптов позволяет автоматизировать процесс. Это удобно, когда продукт часто меняется, но при этом обладает большой функциональностью. Автоматизированное тестирование позволяет отслеживать, что все функции продукта стабильны после внесения в него изменений. Автоматизированное тестирование можно встраивать в цикл разработки приложений выполняя его после каждой новой сборки или при создании новой версии. При этом присутствие человека не требуется, скрипт может работать ночью, когда вы спите. 41

>Классификация по степени автоматизированности тестирования     Смешанное тестирование – вид тестирования, Классификация по степени автоматизированности тестирования Смешанное тестирование – вид тестирования, включающий этапы ручного и автоматического тестирования. Эта часть тестирования ПО, которая требует ручного ввода чего-либо, анализа или оценки. 42

>Классификация по степени подготовки к тестированию     Классификация по степени подготовки Классификация по степени подготовки к тестированию Классификация по степени подготовки к тестированию 43

>Классификация по степени подготовки к тестированию    Тестирование по документации (Documentation testing) Классификация по степени подготовки к тестированию Тестирование по документации (Documentation testing) Целью данного вида тестирования является тестирование программного продукта с использованием специальной документации: тест кейсы спецификации Тестирование Ad hoc (специальное) Тесты основываются на опыте, интуиции и знаниях инженера, рассматривающего проблему с точки зрения имевшихся ранее аналогий. 44

>Дополнительные виды тестирования      Дополнительные виды тестирования   Дополнительные виды тестирования Дополнительные виды тестирования 45

>Дополнительные виды тестирования  Benchmark testing (оценочные испытания, сравнительное тестирование) – тестирование продукта с Дополнительные виды тестирования Benchmark testing (оценочные испытания, сравнительное тестирование) – тестирование продукта с целью определения его производительности по сравнению с ранними версиями или аналогичными продуктами конкурентов. Boundary testing (граничные испытания ) - тестирование, заключающееся в проверке функционирования программного обеспечения при достижении граничных величин. Например, вводятся значения равные или большие тех, что заданы ограничениями входных полей данных. Exhaustive testing (исчерпывающее тестирование) - выполнение программы со всеми возможными комбинациями входных значений переменных Final testing (окончательные испытания) - производятся после тщательного тестирования продукта, когда все найденные ошибки исправлены и код "заморожен”. Operational testing – испытания в реальных условиях или опытная эксплуатация. 46

>Дополнительные виды тестирования  Миграционное/трансформационное тестирование -   проверяет, что процедуры и функции, Дополнительные виды тестирования Миграционное/трансформационное тестирование - проверяет, что процедуры и функции, конвертирующие данные для последующего использования в других приложениям, работают правильно. Тестирование документации (Documentation testing) Целью данного вида тестирования является определение насколько точна, полна, достоверна и ясна документация, которая поставляется с программным продуктом. А также насколько просто использовать эту документацию. Тестирование документации охватывает следующие виды документов: Функциональные спецификации; Спецификации по графическому интерфейсу пользователя; Руководства пользователя и онлайновые справочные системы. 47

>Дополнительные виды тестирования    Тестирование пользовательской документации.  Мы тщательно вникаем и Дополнительные виды тестирования Тестирование пользовательской документации. Мы тщательно вникаем и разбираем всю документацию, представленную разработчиком программного продукта. Это дает нам возможность определить степень соответствия документации программе. Также мы проводим проверку грамматики, синтаксиса и пунктуации всей документации и всех элементов пользовательского интерфейса (сообщений системы, заголовков окон и управляющих элементов и т.д.). Также документация проверяется на логичность и простоту изложения для понимания. Восстановительное тестирование (Recovery testing). Цель — проверка возможностей рестарта системы в случае непредусмотренной катастрофы, влияющей на функционирование операционной среды, в которой выполняется система. 48

>Дополнительные виды тестирования     Тестирование доступности (accessibility testing) Практически все современные Дополнительные виды тестирования Тестирование доступности (accessibility testing) Практически все современные приложения, рассчитанные на широкую целевую аудиторию, должны быть доступны для использования людьми с ограниченными возможностями. Тестирование доступности позволяет определить уровень соответствия приложения accessibility-стандартам. 49

>Дополнительные виды тестирования   Тестирование баз данных (database testing)  Тестирование базы данных Дополнительные виды тестирования Тестирование баз данных (database testing) Тестирование базы данных помогает обнаружить узкие места в производительности разрабатываемого приложения и проверить все механизмы, обеспечивающие целостность и конфиденциальность данных. Тестирование базы данных разделяется на следующее типы: Тестирование логической модели Тестирование логической схемы базы данных Тестирование физической структуры базы данных (для различных РСУБД) Тестирование программируемости базы данных 50 - Проверка модели на логическую согласованность и отсутствие повторяющейся информации; - Поиск возможностей для упрощения логической модели. - Тестирование на соответствие нормальным формам (обычно третьей); - Тестирование на согласованность базы данных (внешние ключи, ограничивающие условия, триггеры); - Тестирование на избыточность данных. - Анализ и настройка покрытия индекса; - Анализ системы хранения данных (табличные области (Oracle, DB2), массивы данных и группы файлов (MS SQL)), настройка для увеличения производительности и надежности; - Анализ политики безопасности и разработка предложений по ее улучшению (пользователи, роли, роли приложения, логины, интегрированные с операционной системой, хранимые процедуры); - Анализ денормализации (при необходимости может быть проведена проверка потенциального прироста производительности и модификаций схемы базы данных); - Анализ и реализация распределения базы данных; - Анализ и реализация стратегии репликации; - Анализ и реализация стратегии резервного копирования. - Анализ эффективности хранимых процедур и триггеров; - Оптимизация запросов, настройка индекса для охвата определенных запросов; - Анализ эффективности клиентского приложения.

>Types of testing EPAM Systems, Inc. Mogilev http://www.epam.com Types of testing EPAM Systems, Inc. Mogilev http://www.epam.com