Из каких этапов состоит тестирование программы

Содержание
Читайте также:
Как работают java программы

8. передача информации о соответствии проверенного продукта требованиям.

Инициация – событие, которое извещает команду тестирования о необходимости сессии тестирования, а также гарантирует выполнение требований к продукту для проведения тестирования.

Для производства ПО требования включают:

· доступно необходимое тестовое окружение,

· доступен билд/ресурс/предмет тестирования,

· код, БД, прочие компоненты объекта тестирования «заморожены», т. е. не изменяются в период всей сессии тестирования,

· модификация требований (хотя бы прямых) «заморожена»,

· известно направление тестирования,

· известны сроки на сессию тестирования.

Есть и другие условия, но они менее значимы и сильно зависят от конкретного процесса в компании.

Выявление требований – пожалуй, один из главных шагов в процессе тестирования. Неизвестны требования – нет тестирования. Необходимо собрать всю доступную информацию о предмете тестирования, вариантах использования и т. п. Первый источник – техническая документация и юзер-стори – это прямые требования. Качество же косвенных требований во многом зависят от добросовестности, ответственности, квалификации тестировщика и всей команды проекта.

Интенсив по тестированию / Тема 3. Этапы тестирования

Генерация тестовых случаев – выявление всех возможных случаев использования продукта, его характеристик и особенностей в процессе эксплуатации. Это значит: всех случаев, которые тестировщик может «придумать» на основе прямых и косвенных требований, известных ему. Этот этап требует высокой квалификации специалиста по тестированию.

Отбор тестовых случаев – отбор наиболее показательных, значимых и воспроизводимых тестовых случаев. От этого этапа зависит, насколько тестирование будет полезным, эффективным и анализируемым. Например, в «простом» примере с красной кнопкой понятно, что количество косвенных требований стремится к бесконечности, и проверять их все подряд – полный абсурд, но подобные кейсы должны быть сгенерированы хотя бы в голове проверяющего. А для того чтобы они не вошли в проверки, необходимо выполнить соответствующий отбор и проверить только, действительно ли кнопка красная.

Пример примитивный, но после его озвучивания соискатели перестают первым делом пытаться налить в стакан радий на тестовом задании J (кто принимал участие в собеседовании на должность тестировщика, тот знает это нехитрое задание на генерацию и отбор тестовых случаев).

Проведение проверок – тут все понятно. Либо согласно документации, либо ad hoc (интуитивно, свободный поиск, без документации). В любом случае это проводится согласно списку отобранных проверок. Почему-то большинство именно этот пункт называет тестированием. И в голове обывателя, незнакомого с профессией, только один этот пункт и содержится J.

Фиксация результатов – создание внутренней и внешней тестовой документации в формализованном виде или в виде записей и т. п. На данном этапе отчет о тестирование даже если и создается, то не считается законченным.

Тестирование НА ПРИМЕРЕ | Тестирую DEVBY

Анализ результатов – вынесение решения о соответствии проверенного продукта требованиям. Формализация данного решения и его обоснование в виде отчета о тестировании. Сюда также входят процедуры по оценке покрытия требований проверками, тайм-шитинг и пр. Таким образом, проводится анализ не только результатов, но и самой сессии тестирования.

Передача информации о соответствии продукта требованиям. Формально: передача внешней тестовой документации заинтересованным в ней сторонам, зачастую инициатору сессии тестирования. В общем случае: помимо документации предоставляется информация о рисках, которые были выявлены в продукте, требованиях, процессах, передаются рекомендации по отработке этих рисков и т. п. Но это – уже QA.

Принципов тестирования

Принцип 1 – Тестирование демонстрирует наличие дефектов (Testing shows presence of defects)
Тестирование может показать, что дефекты присутствуют, но не может доказать, что их нет. Тестирование снижает вероятность наличия дефектов, находящихся в программном обеспечении, но, даже если дефекты не были обнаружены, это не доказывает его корректности.

Принцип 2 – Исчерпывающее тестирование недостижимо (Exhaustive testing is impossible)
Полное тестирование с использованием всех комбинаций вводов и предусловий физически невыполнимо, за исключением тривиальных случаев. Вместо исчерпывающего тестирования должны использоваться анализ рисков и расстановка приоритетов, чтобы более точно сфокусировать усилия по тестированию.

Принцип 3 – Раннее тестирование (Early testing)
Чтобы найти дефекты как можно раньше, активности по тестированию должны быть начаты как можно раньше в жизненном цикле разработки программного обеспечения или системы, и должны быть сфокусированы на определенных целях.

Принцип 4 – Скопление дефектов (Defects clustering)
Усилия тестирования должны быть сосредоточены пропорционально ожидаемой, а позже реальной плотности дефектов по модулям. Как правило, большая часть дефектов, обнаруженных при тестировании или повлекших за собой основное количество сбоев системы, содержится в небольшом количестве модулей.

Читайте также:
Какая у меня почтовая программа

Принцип 5 – Парадокс пестицида (Pesticide paradox)
Если одни и те же тесты будут прогоняться много раз, в конечном счете этот набор тестовых сценариев больше не будет находить новых дефектов. Чтобы преодолеть этот “парадокс пестицида”, тестовые сценарии должны регулярно рецензироваться и корректироваться, новые тесты должны быть разносторонними, чтобы охватить все компоненты программного обеспечения,
или системы, и найти как можно больше дефектов.

Принцип 6 – Тестирование зависит от контекста (Testing is concept depending)
Тестирование выполняется по-разному в зависимости от контекста. Например, программное обеспечение, в котором критически важна безопасность, тестируется иначе, чем сайт электронной коммерции.
Принцип 7 – Заблуждение об отсутствии ошибок (Absence-of-errors fallacy)
Обнаружение и исправление дефектов не помогут, если созданная система не подходит пользователю и не удовлетворяет его ожиданиям и потребностям.

Критерии начала и завершения тестирования

Например, в качестве критерия начала разработки тестов может выступать, следующее условие: «описаны все варианты использования».

Первая — процент реализованных «фич», или функциональных точек, или вариантов использования, или еще чего-нибудь, в чём можно измерить функциональность, критическое значение — 50%. Вторая — покрытие написанного кода unit-тестами, критическое значение — 80%. Третья — отношение количества успешных unit-тестов к их общему числу, критическое значение — 100%.

Критерии прекращения

Источник: poisk-ru.ru

8.9. Из каких этапов состоит процесс тестирования?

1. Проверка в нормальных условиях.Предполагает тестирование на основе данных, которые характерны для реальных условий функционирования программы.

2. Проверка в экстремальных условиях.Тестовые данные включаютграничные значенияобласти изменения входных переменных, которые должны восприниматься программой как правильные данные. Типичными примерами таких значений являются очень маленькие или очень большие числа и отсутствие данных. Еще один тип экстремальных условий — этограничные объемыданных, когда массивы состоят из слишком малого или слишком большого числа элементов.

3. Проверка в исключительных ситуациях.Проводится с использованием данных, значения которых лежатза пределами допустимой области изменений.Известно, что всепрограммы разрабатываются в расчете на обработку какого-то ограниченного набора данных.

Поэтому важно получить ответ на следующие вопросы:—что произойдет, если программе, не расчитанной на обработку отрицательных и нулевых значений переменных, в результате какой-либо ошибки придется иметь дело как раз с такими данными?—как будет вести себя программа, работающая с массивами, если количество их элементов певысит величину, указанную в объявлении массива?—что произойдет, если числа будут слишком малыми или слишком большими?

Наихудшая ситуация складывается тогда, когда программа воспринимает неверные данные как правильные и выдает неверный, но правдоподобный результат.

Программа должна сама отвергать любые данные, которые она не в состоянии обрaбатывать правильно.

8.10. Каковы характерные ошибки программирования?

Ошибки могут быть допущены на всех этапах решения задачи — от ее постановки до оформления. Разновидности ошибок и соответствующие примеры приведены в таблице:

Неправильная постановка задачи

Правильное решение неверно сформулированной задачи

Выбор алгоритма, приводящего к неточному или эффективному решению задачи

Неполный учет ситуаций, которые могут возникнуть; логические ошибки

Непонимание порядка выполнения оператора

Нарушение правил, определяемых языком программирования

Ошибки при выполнении операций

Слишком большое число, деление на ноль, извлечение квадратного корня из отрицательного числа и т. п.

Ошибки в данных

Неудачное определение возможного диапазона изменения данных

Перепутаны близкие по написанию символы, например, цифра 1 и буквы I, l

Неверное считывание входных данных, неверное задание форматов данных

8.11. Является ли отсутствие синтаксических ошибок свидетельством правильности программы?

Обычно синтаксические ошибки выявляются на этапе трансляции. Многие же другие ошибки транслятору выявить невозможно, так как транслятору неизвестны замыслы программиста.

Отсутствие сообщений машины о синтаксических ошибках является необходимым, но не достаточным условием, чтобы считать программу правильной.

Примеры синтаксических ошибок:

  • пропуск знака пунктуации;
  • несогласованность скобок;
  • неправильное формирование оператора;
  • неверное образование имен переменных;
  • неверное написание служебных слов;
  • отсутствие условий окончания цикла;
  • отсутствие описания массива и т.п.

Источник: studfile.net

Основы тестирования программного обеспечения — ответы

Функция int function(int number) была изменена и приобрела вид int function(char* string) . На каком уровне возможно повторное использование теста « 1 »?

Каковы особенности модели объектно-ориентированной программы?

Какие существуют разновидности интеграционного тестирования?

Чем отличается оценка оттестированности проекта от оценки для модуля?

Модуль E исходной программы содержал ошибку. Ее исправление потребовало изменения модулей B, D и E. Тест 1 покрывает модули A, B и C. Тест 2 покрывает модули A, C и E. Тест 3 покрывает модули D и E. Каким должен быть порядок прогона тестов, если при упорядочении ставится цель скорейшего достижения наибольшей степени покрытия измененных модулей?

Какими преимуществами обладает методика предсказания целесообразности отбора тестов?

Ожидаемое время работы метода отбора тестов – 1 час. Среднее время выполнения одного теста – 1 час. Тестовый набор состоит из 8 тестов. Каково значение порога целесообразности?

Какие операции при использовании системы поддержки регрессионного тестирования выполняются вручную?

Отметьте верные утверждения:

Дано: функция P , ее измененная версия P’ и набор тестов T , разработанный для тестирования P . Требуется, используя безопасный метод, отобрать подмножество T’ для тестирования P’ .

Pint abs(int number)< if (number >= 0) return -number; else return –number;>
P’int abs(int number)< if (number >= 0) return number; else return –number;>
T1. -12. 03. 1

Читайте также:
Общие сведения о программе компас

Какие существуют разновидности функциональных критериев?

Возможно ли тестирование программы на всех допустимых значениях параметров?

Что такое ветвь УГП?

Что такое прогон тестов?

Какие существуют типы тестирования по способу выбора входных данных?

Каковы особенности документа для описания тестов?

Каковы цели обзора тестового кода?

Какие задачи у модульного тестирования?

При создании очередной версии программы была добавлена функция A , функция D была удалена, функция C – изменена, а функция U – оставлена без изменений.

К какой группе относится тест, покрывающий только функцию D ?

Зачем нужна спецификация тестирования?

Как осуществить планирование тестирования?

Какие существуют разновидности структурных критериев?

Какие задачи решает тестировщик, проверяя изменения, внесенные разработчиком в код?

Каковы фазы процесса построения тестовых путей?

Каковы преимущества описания тестовых наборов на языке спецификаций?

На предыдущей версии программы тест 1 завершился в состоянии A, тест 2 – в состоянии B, а тест 3 – в состоянии C. На текущей версии программы тест 1 завершился в состоянии A, тест 2 – в состоянии C, а тест 3 – в состоянии D. На базе какого состояния наиболее целесообразна разработка новых тестов?

Каковы особенности системного тестирования?

Тестируемая программа состоит из классов A , B и C , взаимодействующих по принципу «каждый с каждым». Классы A и B были изменены. Тестирование каких классов и интерфейсов необходимо обеспечить, если используется брандмауэр?

Какие подходы используются для обоснования истинности программ?

Какие существуют фазы процесса тестирования?

Что такое управляющий граф программы (УГП)?

Можно ли гарантировать остановку программы на любом тесте?

Назовите полный и надежный критерий для нетривиальных классов программ.

Какая оценка мощности покрытия для следующих пар критериев правильна?

Назовите недостатки функциональных критериев.

Какая информация должна собираться при тестировании для применения метода оценки скорости выявления ошибок?

Перечислите метрики оценки оттестированности программного проекта?

Перечислите разновидности функциональных критериев.

Как реализуются динамические методы построения тестовых путей?

Каково выражение для оценки сложности интеграционного тестирования?

Какие существуют особенности модели ГМП в случае объектно-ориентированного программирования (ООП)?

Какие возможности используются для построения дуг графовой модели в ООП?

Какие этапы методов тестирования класса используются в ООП?

Какие задачи решаются на этапе системного тестирования?

Каковы особенности регрессионного тестирования?

Какими свойствами обладает метод повторного прогона всех тестов?

Какие методы регрессионного тестирования применяются в условиях отсутствия программных средств поддержки регрессионного тестирования?

Какие этапы процесса тестирования поддаются автоматизации?

Какую информацию использует и производит система автоматизации тестирования в цикле тестирования?

Какова процедура выбора и оценки критериев качества программного продукта?

Как определить цели тестирования программного проекта?

Чем отличается финальный цикл тестирования?

Какова методика разработки сценарных тестов?

Почему MSC спецификация обеспечивает снижение трудоемкости тестирования?

Каковы особенности документа для описания дефектов?

Каковы цели обзора тестовой стратегии?

Какими свойствами обладает метод повторного прогона всех тестов?

Какими свойствами обладает метод random(50) ?

Можно ли гарантировать безопасность метода регрессионного тестирования в условиях отсутствия информации о покрытии кода тестами?

В среднем, метод выборочного регрессионного тестирования…

Сопровождение какого типа соответствует случаю улучшения временных характеристик программы?

Функция int function(int number) была изменена путем вставки вызова функции распечатки перед первым исполняемым оператором. На каком уровне возможно повторное использование теста « 1 »?

Какими свойствами обладает метод random(50) ?

Какие методы регрессионного тестирования применяются в условиях отсутствия программных средств поддержки регрессионного тестирования?

Дана функция P , ее измененная версия P’ и набор тестов T , разработанный для тестирования P . Требуется, используя метод стопроцентного покрытия кода, отобрать подмножество T’ для тестирования P’ .

Pint abs(int number)< if (number >= 0) return –number; else return –number;>
P’int abs(int number)< if (number >= 0) return number; else return –number;>

Источник: bazaintuit.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru