Смекни!
smekni.com

По истории информатики на тему (стр. 1 из 3)

Санкт Петербургский государственный университет информационных технологий механики и оптики

Реферат

По истории информатики на тему

“История развития методологии тестирования при разработке программного обеспечения”

Аспирант:

Иванова В. О.

Кафедра:

ИПМ

Специальность:

05.13.12

Санкт-Петербург

2009 г

Оглавление

Введение. 3

Понятие тестирования. 4

Эволюция тестирования. 6

Виды тестирование, используемые в настоящее время. 8

Автоматизированное тестирование. 12

Перспективы развития тестирования. 16

Заключение. 18

Список литературы.. 19

Введение

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

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

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

Тестировать можно все:

· работу программы

· качество ее кода и понятность комментариев

· быстродействие

· устойчивость под большой нагрузкой

· расход ресурсов (памяти, диска, потери этих ресурсов)

· взаимодействие с другими программами

· стабильность работы

· возможность работы на других платформах

· удобство интерфейса

· документацию к программе (смысловые и грамматические ошибки, понятность и полноту)

· работу через сеть, работу аппаратного обеспечения и т.п.

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

Как правило, на фазе тестирования осуществляется и исправление идентифицированных ошибок, включающее:

• локализацию ошибок

• нахождение причин ошибок

• корректировку программы.

Тестирование разделяют на статическое и динамическое:

· Статическое тестирование выявляет неверные конструкции или неверные отношения объектов программы (ошибки формального задания) формальными методами анализа без выполнения тестируемой программы.

· Динамическое тестирование осуществляет выявление ошибок на выполняющейся программе.

Тестирование заканчивается, когда выполнилось или "прошло" успешно достаточное количество тестов в соответствии с выбранным критерием тестирования.

Тестирование решает несколько основных задач:

· Дает уверенность в качестве конечного продукта, подтверждает что все заявленные функциональные требования реализованы, приложение им соответствует и не имеет ошибок в программном коде;

· Подтверждает, что приложение способно выполняться во всех заявленных режимах и на всех поддерживаемых ОС или Web-браузерах корректно;

· Гарантирует, что хранимые и обрабатываемые данные надежно защищены от постороннего доступа и "взлома";

· Определяет, какая максимальная нагрузка на сервер, локальную сеть, БД может быть корректно обработана приложением;

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

Эволюция тестирования

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

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

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

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

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

Виды тестирование, используемые в настоящее время

Уровни тестирования

· Модульное тестирование.

· Интеграционное тестирование.

· Системное тестирование.

Модульное тестирование

· Модульное тестирование - это тестирование программы на уровне отдельно взятых модулей, функций или классов.

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

· Модульное тестирование проводится по принципу "белого ящика“

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

Обнаруживаемые ошибки

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

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

Интеграционное тестирование

  • Интеграционное тестирование - это тестирование части системы, состоящей из двух и более модулей.
  • Основная задача интеграционного тестирования - поиск дефектов, связанных с ошибками в реализации и интерпретации взаимодействия между модулями.
  • Так же, как и модульное тестирование, оперирует интерфейсами модулей и подсистем и требует создания тестового окружения
  • Основная разница между модульным и интеграционным тестированием состоит в типах обнаруживаемых дефектов. В частности, на уровне интеграционного тестирования часто применяются методы, связанные с покрытием интерфейсов
  • Интеграционное тестирование использует модель "белого ящика" на модульном уровне.

Системное тестирование

  • Основная задача системного тестирования - выявление дефектов, связанных с работой системы в целом:

· неверное использование ресурсов системы

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

· несовместимость с окружением

· непредусмотренные сценарии использования

· отсутствующая или неверная функциональность

· неудобство в применении и тому подобное.

  • Системное тестирование производится над проектом в целом с помощью метода «черного ящика».

Тестирование «белого ящика» и «чёрного ящика»

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