Файл: Отладка и тестирование программ: основные подходы и ограничения (Понятие стратегии. Процесс разработки стратегии).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 13.05.2023

Просмотров: 236

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

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

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

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


1. Сущность стратегии развития компании

1.1. Понятие стратегии. Процесс разработки стратегии

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

Зачем нужна стратегия тестирования?

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

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

Я привожу оба определения, хотя первое достаточно точно описывает с чём, собственно, мы имеем дело. И хотя наши будни можно рассматривать как ведение войны за качество продукта, как мы увидим ниже ничего «военного» в стратегии тестирования как раз и нет.

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

Стратегия не обязательно должна быть составлена для всего тестируемого программного обеспечения сразу же. Не менее эффективным будет её продумывание для отдельно взятого функционала.


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

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

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

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

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

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

Основные принципы тестирование показаны на рисунке 1.

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

Например, в шаблоне тест-плана по методологии RUP (где стратегия является составляющей частью) обозначено следующие рекомендации по её составлению:


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

Как и тест-план, стратегия может быть представлена как в виде традиционно расписанного документа, так и в более наглядном формате, например, используя таблицу 1 приведённая в приложении.

1.2. Факторы, влияющие на формирование стратегии

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

Основные подходы к разработке стратегии организации

Процесс выработки стратегии может протекать в форме четырех основных подходов:

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

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

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

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


На формирование стратегии компании оказывают влияние многие факторы. Взаимодействие этих факторов носит специфический характер для каждой отрасли и компании и всегда изменяется во времени.

Никогда выбор одинаковых стратегий не происходил в схожих ситуациях.

Факторы, определяющие стратегию, всегда отличались один от другого, и, как правило, очень сильно. К основным факторам, формирующим стратегии, можно отнести следующие:

- социальные, политические, гражданские и регулирующие нормы;

- привлекательность отрасли и условия конкуренции;

- специфические рыночные возможности и угрозы;

- сильные и слабые стороны организации, ее конкурентные возможности;

- личные амбиции, философия бизнеса, и этические воззрения менеджеров;

- ценности и культура компании;

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

В таблице 2 представлены основные факторы влияющие на выбор стратегии.

1.3. Классификация стратегий

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

В состав стратегии входят:

  • Технологии и инструменты тестирования.
  • Условия завершения и успешного выполнения тестов. Например, можно решить, что после успешного выполнения 95% тестов можно перейти к приемке продукта. Другим примером условия может служить охват кода. Например, в системах безопасности может требоваться стопроцентный охват кода при тестировании.
  • Особые обстоятельства, влияющие на требования к ресурсам и график тестирования, например:
  1. тестирование всех интерфейсов ко внешним системам
  2. имитация угрозы безопасности или физического повреждения системы

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

Существуют две основные стратегии тестирования:

• тестирование программы как «черного ящика» (функциональное тестирова-ние), при котором программа рассматривается как объект, внутренняя струк-тура которого неизвестна;