Главная страница

Ответы на вопросы (Торбостаев, Кискидосов). Ответы на вопросы Каково назначение этапа тестирования в жизненном цикле разработки программного продукта


Скачать 32.63 Kb.
НазваниеОтветы на вопросы Каково назначение этапа тестирования в жизненном цикле разработки программного продукта
Дата09.11.2018
Размер32.63 Kb.
Формат файлаdocx
Имя файлаОтветы на вопросы (Торбостаев, Кискидосов).docx
ТипДокументы
#55927

Ответы на вопросы:

  1. Каково назначение этапа тестирования в жизненном цикле разработки программного продукта?

Этап тестирования проверяет ПП на правильность программного кода и документации с требованиями.

  1. Что подвергается тестированию в течение жизненного цикла разработки программного продукта?

Программный код и документация.

  1. Какие существуют уровни тестирования и кто отвественен за проведение тестирования на каждом из них?

Имеется 5 уровней тестирования: модульное, интеграционное, системное, выходное и приемочное. Отвественен за тестирование является независимый тестировщик.

  1. Что такое цикл тестирования, какие основные действия он в себя включает?

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

  1. Каковы назначение и основные элементы тестирования:

  1. Модульного

Модульное тестирование производится непосредственным разработчиком и позволяет проверять все внутренные структуры и потоки данных в каждом модуле. Элементы модульного тестирования: синтактическая проверка, проверка соотвествия стандартам кодирования и технический обзор кода.

  1. Интеграционного

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

  1. Системного

Этот вид тестирования предназначен для проверки программной системы в целом, ее организации и функционирования на соотвествие спефикациям требовании заказчика. Элементы систменого тестирования: граничное тестирование, прогоночное тестирование, целевое тестирование, проверка документации и другие тесты.

  1. Выходного

Это завершающий этап тестирования, на котором проверяется готовность ПП к поставке заказчику. Элементы выходного тестирования: проверка инсталяции и проверка документации.

  1. Программная ошибка

Это расхождение между программной и ее спецификацией, причем, причем тогда и только тогда, когда спецификаций существует и она правильна.

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

Логическая ошибка

Это, пожалуй, наиболее серьезная из всех ошибок. Когда написанная программа на любом языке компилирует и работает правильно, но выдает неправильный вывод, недостаток заключается в логике основного программирования. Это ошибка, которая была унаследована от недостатка в базовом алгоритме. Сама логика, на которой базируется вся программа, является ущербной. Чтобы найти решение такой ошибки нужно фундаментальное изменение алгоритма. Вам нужно начать копать в алгоритмическом уровне, чтобы сузить область поиска такой ошибки.

Синтаксическая ошибка

Каждый компьютерный язык, такой как C, Java, Perl и Python имеет специфический синтаксис, в котором будет написан код. Когда программист не придерживаться "грамматики" спецификациями компьютерного языка, возникнет ошибка синтаксиса. Такого рода ошибки легко устраняются на этапе компиляции.

Ошибка компиляции

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

Ошибки среды выполнения (RunTime)

Программный код успешно скомпилирован, и исполняемый файл был создан. Вы можете вздохнуть с облегчением и запустить программу, чтобы проверить ее работу. Ошибки при выполнении программы могут возникнуть в результате аварии или нехватки ресурсов носителя. Разработчик должен был предвидеть реальные условия развертывания программы. Это можно исправить, вернувшись к стадии кодирования.

Арифметическая ошибка

Многие программы используют числовые переменные, и алгоритм может включать несколько математических вычислений. Арифметические ошибки возникают, когда компьютер не может справиться с проблемами, такими как "Деление на ноль", или ведущие к бесконечному результату. Это снова логическая ошибка, которая может быть исправлена только путем изменения алгоритма.

Ошибки ресурса

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

Ошибка взаимодействия

Они могут возникнуть в связи с несоответствием программного обеспечения с аппаратным интерфейсом или интерфейсом прикладного программирования. В случае веб-приложений, ошибка интерфейса может быть результатом неправильного использования веб-протокола.

  1. Какова цель тестирования документации?

проверка корректности требований на предмет полноты требований, их однозначности, осуществимости, непротиворечивости и т.д.;

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

предотвратить допущение ошибок разработчиком при написании кода;

уменьшение рисков передачи в эксплуатацию программного продукта с некачественной документацией.

  1. Какими характеристиками должен обладать хороший тест?

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

Должен уметь разрабатывать и выполнять пошаговые процедуры.

Должен описывать последовательность событий и конфигурацию системы, которые приводят к возникновению проблемы. Это включает способность четко документировать процедуры и результаты, умение устно передавать информацию разработчикам, другим тестировщикам и руководству.

Уметь критиковать и корректно воспринимать критику (например, умение так объяснить разработчикам суть дефекта, что с его слов их можно устранить).

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

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

  1. Дайте определение понятия «классы эквивалентности».

Абстрактное бинарное отношение между элементами данного множества, которое ведёт себя сходно с отношением равенства.

  1. Какие условия должны выполняться, чтобы тесты можно было отнести к одному классу эквивалентности?

  • Все тесты предназначены для выявления одной и той же ошибки.

  • Если один из тестов выявит ошибку, остальные, скорее всего, тоже это сделают.

  • Если один из тестов не выявит ошибки, остальные, скорее всего, тоже этого не сделают.

  1. Какие критерии используют для определения класса эквивалентности?

  • Тесты включают значения одних и тех же входных данных.

  • Для их проведения выполняются одни и те же операции программы.

  • В результате всех тестов формируются значения одних и тех же выходных данных.

  • Либо ни один из тестов не вызывает выполнения блока обработки ошибок программы, либо выполнение этого блока вызывается всеми тестами группы.

  1. Дайте определение понятия «границы классов эквивалентности».

В нашем примере программа позволяет вводить максимум 2 символа и текстовое поле принимает только числа от 0 до 99. Поэтому граничные значения для этого поля -1,0 и 99,100
Но нам нужно также проверить и граничные значения эквивалентных классов, для большей уверенности в качестве нашей программы.

Какие же Граничные значения у наших эквивалентных классов?
В данном случае это 0, 12, 13, 17, 18, 59, 60, 99.

Следовательно чтобы покрыть эквивалентные классы и граничные значения для нашего примера нужно протестировать программу с такими входными данными:
-1, 0, 5, 12, 13, 15, 17, 18, 36, 59, 60, 78, 99, 100

  1. Что вы понимаете под тестированием переходов между состояниями программного продукта?

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

  1. Какие критерии существуют для отбора тестов по проверке путей выполнения программы?

  • Тестировать все наиболее вероятные последовательности действий пользователей.

  • Если можно предложить, что действия пользователя в одном режиме могут влиять на представление данных или набор предоставляемых программой возможностей в другом режиме, тестировать эти действия;

  • Поработать с программой в произвольном режиме, случайным образом выбирая путь ее выполнения.



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

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

  1. Для чего проводится нагрузочное тестирование программного продукта?

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

  1. Что вы думаете о прогнозирования ошибок?

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

  1. Дайте определения понятия «функциональная эквивалентность».

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

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

  • Не придется вычислять значения вручную

  • Процесс сравнения удастся автоматизировать

  • Возможность автоматизировать и весь процесс тестирования



  1. Как выполняется анализ чувствительности?

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



  1. Каковы преимущества случайного ввода входных значений?

  • Он прекрасно подходит и для автоматизированного тестирования.

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

  • Нет никаких ограничений – чем больше тестов проводится для каждого из классов эквивалентности, тем лучше.

  1. Каким образом можно организовать случайный ввод?

Использование генератора случайных чисел.

  1. Каковы цели и назначение регрессионного тестирования?

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

  1. Как можно определить, Что ошибка успешно исправлена?

  • Убедиться, что ошибка исправлена, для чего выполнить тот же тест, в котором она проявилась и который был описан в отчете.

  • Постараться найти связанные ошибки.

  • Протестировать оставшуюся часть программы.

  1. Куда заносятся результаты тестирования и как отслеживается исправление ошибок?

В библиотеку регрессионных тестов.

  1. Какие метрики собирают на этапе тестирования?

На фазе тестирования необходимо выполнять оценки расхождений плановых сроков и объемов с фактическими, числа проведенных обзоров, выявленных ошибок и дефектов, а также средних трудозатрат и производительности тестирования . Кроме того, должен производиться сбор метрик покрытия ПП тестированием и соотношения открытых и закрытых дефектов. Все полученные данные следует хранить в ИБД проектной группы.

  1. Какие методы, стандарты и шаблоны используют на этапе тестирования?

  • Используемые методы и стандарты: процесс организации; метрическая программа.

  • Используемые шаблоны: отчета о результатах тестирования; отчета о ходе тестирования; отчета о поставке ПП; руководство по поставляемому ПП; плана тестирования; описания процедур тестирования; отчета по обзору; отчёта о статусе проекта.



Работу выполнили: Торбостаев Д.А , Кискидосов Д.А


написать администратору сайта