Ответы на вопросы (Торбостаев, Кискидосов). Ответы на вопросы Каково назначение этапа тестирования в жизненном цикле разработки программного продукта
Скачать 32.63 Kb.
|
Ответы на вопросы:
Этап тестирования проверяет ПП на правильность программного кода и документации с требованиями.
Программный код и документация.
Имеется 5 уровней тестирования: модульное, интеграционное, системное, выходное и приемочное. Отвественен за тестирование является независимый тестировщик.
Циклом тестирования называется совокупность действий, выполняемым тестировщиком с момента передачи базовой версии ПП тестировщику для интеграционного, системного или приемочного тестирования до момента успешного завершения тестирования. Создание базовой версии ПП, отчет о ходе тестирования и метрики тестирования.
Модульное тестирование производится непосредственным разработчиком и позволяет проверять все внутренные структуры и потоки данных в каждом модуле. Элементы модульного тестирования: синтактическая проверка, проверка соотвествия стандартам кодирования и технический обзор кода.
Этот вид тестирования проводится для проверки совместной работы отдельных модулей и предшествует тестированию всей системы как единного целого. Элементы интеграционного тестирования: проверка функциональности, проверка промежуточных результатов и проверка интеграции.
Этот вид тестирования предназначен для проверки программной системы в целом, ее организации и функционирования на соотвествие спефикациям требовании заказчика. Элементы систменого тестирования: граничное тестирование, прогоночное тестирование, целевое тестирование, проверка документации и другие тесты.
Это завершающий этап тестирования, на котором проверяется готовность ПП к поставке заказчику. Элементы выходного тестирования: проверка инсталяции и проверка документации.
Это расхождение между программной и ее спецификацией, причем, причем тогда и только тогда, когда спецификаций существует и она правильна.
Логическая ошибка Это, пожалуй, наиболее серьезная из всех ошибок. Когда написанная программа на любом языке компилирует и работает правильно, но выдает неправильный вывод, недостаток заключается в логике основного программирования. Это ошибка, которая была унаследована от недостатка в базовом алгоритме. Сама логика, на которой базируется вся программа, является ущербной. Чтобы найти решение такой ошибки нужно фундаментальное изменение алгоритма. Вам нужно начать копать в алгоритмическом уровне, чтобы сузить область поиска такой ошибки. Синтаксическая ошибка Каждый компьютерный язык, такой как C, Java, Perl и Python имеет специфический синтаксис, в котором будет написан код. Когда программист не придерживаться "грамматики" спецификациями компьютерного языка, возникнет ошибка синтаксиса. Такого рода ошибки легко устраняются на этапе компиляции. Ошибка компиляции Компиляция это процесс, в котором программа, написанная на языке высокого уровня, преобразуется в машиночитаемую форму. Многие виды ошибок могут происходить на этом этапе, в том числе и синтаксические ошибки. Иногда, синтаксис исходного кода может быть безупречным, но ошибка компиляции все же может произойти. Это может быть связано с проблемами в самом компиляторе. Эти ошибки исправляются на стадии разработки. Ошибки среды выполнения (RunTime) Программный код успешно скомпилирован, и исполняемый файл был создан. Вы можете вздохнуть с облегчением и запустить программу, чтобы проверить ее работу. Ошибки при выполнении программы могут возникнуть в результате аварии или нехватки ресурсов носителя. Разработчик должен был предвидеть реальные условия развертывания программы. Это можно исправить, вернувшись к стадии кодирования. Арифметическая ошибка Многие программы используют числовые переменные, и алгоритм может включать несколько математических вычислений. Арифметические ошибки возникают, когда компьютер не может справиться с проблемами, такими как "Деление на ноль", или ведущие к бесконечному результату. Это снова логическая ошибка, которая может быть исправлена только путем изменения алгоритма. Ошибки ресурса Ошибка ресурса возникает, когда значение переменной переполняет максимально допустимое значение. Переполнение буфера, использование неинициализированной переменной, нарушение прав доступа и переполнение стека - примеры некоторых распространенных ошибок. Ошибка взаимодействия Они могут возникнуть в связи с несоответствием программного обеспечения с аппаратным интерфейсом или интерфейсом прикладного программирования. В случае веб-приложений, ошибка интерфейса может быть результатом неправильного использования веб-протокола.
проверка корректности требований на предмет полноты требований, их однозначности, осуществимости, непротиворечивости и т.д.; уменьшения рисков несоответствий реализованного функционала, согласно прописанным требованиям. Наличие таких дефектов в документации приводит к значительному увеличению расходов и времени, затраченном на исправление допущенных ошибок; предотвратить допущение ошибок разработчиком при написании кода; уменьшение рисков передачи в эксплуатацию программного продукта с некачественной документацией.
Должен уметь разрушать программные продукты, не чувствуя при этом никаких угрызений совести. Поскольку тестирование выполняется с целью обнаружения дефектов, тестировщик не должен испытывать дискомфорта, обнаруживая ошибки в работе другого исполнителя. Должен уметь разрабатывать и выполнять пошаговые процедуры. Должен описывать последовательность событий и конфигурацию системы, которые приводят к возникновению проблемы. Это включает способность четко документировать процедуры и результаты, умение устно передавать информацию разработчикам, другим тестировщикам и руководству. Уметь критиковать и корректно воспринимать критику (например, умение так объяснить разработчикам суть дефекта, что с его слов их можно устранить). Обладать способностью приносить разработчикам и руководству плохие новости. Если в одиннадцать вечера выясняется, что не удается достичь готовности выпуска программного продукта, тестировщик должен быть готов сообщить руководству эту печальную новость. Уметь противостоять неослабевающему давлению (тестирование всегда является завершающей стадией любого процесса разработки, и, как правило, протекает в стрессовых условиях).
Абстрактное бинарное отношение между элементами данного множества, которое ведёт себя сходно с отношением равенства.
В нашем примере программа позволяет вводить максимум 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
В каждой интерактивной программе осуществляется переходы из одного очевидного состояния в другое. Простейшим примером может служить меню. После запуска программы в не имеется один перечень команд. После выбора одной из них состояние прогаммы меняется и в меню появляются команды, доступные в это состоянии.
Попробуйте вмешаться в работу программы, когда она выполняет переход между двумя состояниями. По нажимайте на клавиши, особенно командные. Попробуйте понажимать на клавиши или повыбирать какие либо пункты меню, когда программа выполняет операции обработки данных или ввода – вывода, предложите программе ввести или вывести параллельно еще какую-нибудь информацию. Например, во время печати файла попросите ее распечатать еще один.
Необходимо проверить, как ведет себя программа, когда исчерпываются различные аппаратные ресурсы, например переполняется диск или принтере заканчивается бумага. Выясните, что будет, когда в системе останется очень мало свободной памяти.
Иногда тестировщик предполагает, что определенный класс тестов вызовет сбой программы, хотя е не может это логически обосновать. Доверяйте своей интуиции и обязательно включайте подобные тесты в общий план.
При тестировании сравниваются результаты вычислений разными программами одной и той же математической функции.
Прежде всего, получают общее представление о поведении функции, вычислив ее значения для ряда параметров, располагающихся по всей области определения. Затем ищут участки области определения, на которых небольшие изменения аргументов вызывают значительные скачки результирующих значений. Именно такие участки наиболее чреваты ошибками.
Использование генератора случайных чисел.
Собирательное название для всех видов тестирования программного обеспечения, направленных на обнаружение ошибок в уже протестированных участках исходного кода. Такие ошибки — когда после внесения изменений в программу перестаёт работать то, что должно было продолжать работать, — называют регрессионными ошибками.
В библиотеку регрессионных тестов.
На фазе тестирования необходимо выполнять оценки расхождений плановых сроков и объемов с фактическими, числа проведенных обзоров, выявленных ошибок и дефектов, а также средних трудозатрат и производительности тестирования . Кроме того, должен производиться сбор метрик покрытия ПП тестированием и соотношения открытых и закрытых дефектов. Все полученные данные следует хранить в ИБД проектной группы.
Работу выполнили: Торбостаев Д.А , Кискидосов Д.А |