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

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

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

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

Добавлен: 13.05.2023

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

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

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

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

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

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

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

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

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

При тестировании «черного ящика» принимаются во внимание специфициро-ванные системные характеристики программ, а их внутренняя логическая структура игнорируется. Исчерпывающее тестирование, как правило, невозможно. Например, ес-ли в программе 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 Динамическое моделирование как метод моделирования стратегий в нелинейной внешней среде

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


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

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

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

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

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

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

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

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

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