Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

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

Содержание:

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• тестирование программы как «белого ящика» (структурное тестирование) подразумевает знание исходного кода программы и полный доступ к нему.

При тестировании программы как «черного ящика» исследуется работа каждой функции программы в соответствии со спецификацией. Основное место приложения тестов «черного ящика» - интерфейс ПС.

Тесты функционального тестирования демонстрируют:

• выполнение функций программы;

• корректность ввода исходных данных;

• процесс получения результатов.

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

Тестирование «белого ящика» исследует корректность работы внутренних эле-ментов программы и связей между ними. Объектом тестирования здесь является не внешнее, а внутреннее поведение программы. Проверяется корректность построения всех элементов программы и правильность их взаимодействия друг с другом. Обычно анализируются управляющие связи элементов, реже — информационные связи. Тести-рование по принципу «белого ящика» характеризуется степенью, в какой тесты выпол-няют или покрывают логику (исходный текст) программы. Исчерпывающее тестирова-ние также затруднительно.

2. Динамическое моделирование стратегий

2.1. Стратегии компаний в условиях нестабильности

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

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

Дефекты, обнаруженные и устраненные на ранней стадии разработки, обходятся разработчику и клиенту гораздо дешевле, чем такие же, но вскрывшиеся уже в период коммерческого использования программного продукта. Более того, тестирование позволяет вести аналитический сбор информации об уже совершенных в процессе разработки дефектах. Своевременное обеспечение подобной информацией разработчиков и руководителей проектов существенно понижает риск повторения дефектов, что в конечном результате положительно сказывается на качестве программного продукта. В данной работе объектом исследования являются современные стратегии тестирования, применяемые при разработки программного обеспечения. Целью является анализ существующих методов тестирования и их систематизация. Для достижения поставленной цели были сформулированы, а также решены следующие задачи: ‒ Изучить существующие методы тестирования программного обеспечения. ‒ Определить преимущества и недостатки существующих методов. ‒ Предложить единую систему использования различных методов тестирования в жизненном цикле разработки программного обеспечения (ПО). Тестирование программного обеспечения является процессом поиска ошибок в реализации программы. Очевидно, хотелось бы организовать тестирование таким образом, чтобы выявить все возможные ошибки и дефекты в программе. Для того чтобы утверждать, что программа полностью свободна от дефектов необходимо подготовить все возможные наборы входных данных (включая некорректные), выполнить программу на всех возможных перестановках и вариациях входных данных, проанализировать все выходные данные и установить, что каждый тестовый выходной набор соответствует правильному.

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

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

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

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

Промышленное предприятие, являясь сложным образованием, обладает определенными характеристиками. При управлении промышленным предприятием необходимо выбрать систему управления промышленным предприятием; определить состав системы управления промышленным предприятием; обосновать методику управления предприятием.

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

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

Принцип 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). Обнаружение и исправление дефектов не помогут, если созданная система не подходит пользователю и не удовлетворяет его ожиданиям и потребностям.

Основные виды тестирования представлены на рисунке 2.

2.2 Динамическое моделирование как метод моделирования стратегий в нелинейной внешней среде

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

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

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

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

  • модели построены в границах исходных постулатов математической статистики;
  • моделируемый объект (как и модель) обладает стационарной структурой связей элементов.

Из постулатов математической статистики в данном случае важны следующие:

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

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

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

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

Даже статическое тестирование может быть автоматизировано – например, можно использовать автоматические средства проверки синтаксиса программного кода.

Виды статического тестирования:

– вычитка исходного кода программы;

– проверка требований.

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

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

Динамическое тестирование является частью процесса валидации программного обеспечения.

Кроме того динамическое тестирование может включать разные подвиды, каждый из которых зависит от:

• Доступа к коду (тестирование черным, белым и серым ящиками).

• Уровня тестирования (модульное интеграционное, системное, и приемочное тестирование).

• Сферы использования приложения (функциональное, нагрузочное, тестирование безопасности и пр.).

Методы тестирования представлены на схеме 2.

Процессы динамического тестирования представлены на рисунке 4.

Практика динамического моделирования стратегий компаниями России и США: возможности и ограничения

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

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

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

Реализация тестов на слое Acceptance tests делится между разработчиками и тестировщиками и тестировщики берут на себя так называемое “pre-GUI testing”.

Итак, из чего состоит процесс внедрении автоматизации тестирования:

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

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

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

Заключение

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

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

Далее были рассмотрены виды тестирования:

  • Блочное тестирование;
  • Тестирование компонента;
  • Интеграционное тестирование;
  • Регрессивное тестирование;
  • Тестирование системы.

Выделены основные критерии и принципы тестирования, а также методы тестирования программного обеспечения, такие как:

  • Метод «белого ящика».
  • Метод «черного ящика».

Список использованных источников

1. Основы алгоритмизации и программирования: учеб. пособие / Т.А.

Жданова, Ю.С. Бузыкова. – Хабаровск : Изд-во Тихоокеан. гос.ун-та, 2011. –

56 с. Режим доступа:

http://pnu.edu.ru/media/filer_public/2013/02/25/book_basics.pdf.

2. Программирование и основы алгоритмизации: Для инженерных

специальностей технических университетов и вузов. /А.Г. Аузяк, Ю.А.

Богомолов, А.И. Маликов, Б.А. Старостин. Казань: Изд-во Казанского

национального исследовательского технического ун-та - КАИ, 2013, 153 с.

Режим доступа: http://au.kai.ru/documents/Auzyak_Progr_osn_alg_C_2013.pdf.

3. Основы алгоритмизации и программирования : учебное пособие / Г.

Р. Кадырова. – Ульяновск : УлГТУ, 2014. – 95 с. . Режим доступа:

http://venec.ulstu.ru/lib/disk/2014/137.pdf

4. Основы алгоритмизации и программирования. Курс лекций. Режим

доступа:

http://lib.ssga.ru/fulltext/UMK/исходные%20для%20Кацко/заменить%20полно

стью/Информатика/лекции/13%20Основы%20алгоритмизации%20и%20прог

раммирования.pdf

5. Белов П.М. Основы алгоритмизации в информационных системах:

Учебн. Пособие.- Спб.: СЗТУ, 2003. – 85с. Режим доступа:

http://www.ict.edu.ru/ft/005406/nwpi225.pdf

6. Основы алгоритмизации и программирования: Метод. указ. / Сост.:

И.П. Рак, А.В. Терехов, А.В. Селезнев. Тамбов: Изд-во Тамб. гос. техн. ун-та.

Режим доступа: http://www.ict.edu.ru/ft/004758/terehov.pdf.

7. Макаров В.Л. Программирование и основы алгоритмизации.: учебн.

пособие.-Спб., СЗТУ, 2003, - 110с. Режим доступа:

http://window.edu.ru/resource/126/25126/files/nwpi223.pdf

Приложения

C:\Users\Даша\Desktop\img-Xs8UAs.png

Рисунок 1. Тестирование

C:\Users\Даша\Desktop\2015-01-26_1357.png

Таблица 1 Стратегия тестирования

Фактор

Характеристика

Внешние факторы

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

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

Привлекательность отрасли и уровень конкуренции

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

Возможности компании и угрозы

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

Внутренние факторы

Сила и слабость компании, конкурентные возможности

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

Личные устремления, философия бизнеса, этнические принципы ведущих руководителей

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

Общие ценности и корпоративная культура

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

Таблица 2. Факторы, формирующие стратегию

C:\Users\Даша\Desktop\img-YbsnDa.png

Схема 1. Классификация стратегий.

C:\Users\Даша\Desktop\bd6dcbbb7d7c44a485b65ae29b4c0ae4.png

Рисунок 2. Виды тестирования.

C:\Users\Даша\Desktop\Без названия.png

Схема 2. Методы тестирования

C:\Users\Даша\Desktop\131e2122 20 56921-2016-11.png

Рисунок 3. Процесс тестирования

C:\Users\Даша\Desktop\131e2122 20 56921-2016-10.png

Рисунок 4. Процессы динамического тестирования.