Тест на тему "технология разработки программного обеспечения". Разработка компьютерных тестов по математике на базе Конструктора Distance Learning Studio Последовательности разработка способа тестирования на

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

Напомните, что же вообще такое ваше «Test-Drive-Development»?

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

Звучит как-то странно. А это точно эффективно?

Судя по всему, да. Во-первых, это позволяет чётче понять, что, собственно, нужно писать. Есть условие, которое должно выполняться после работы кода - и точка. Сами тесты должны формироваться на основе технического задания. Если в результате написания тестов они начинают противоречить сами себе – это повод пересмотреть ТЗ.

Во-вторых, в результате разделения задач на менее объёмные подзадачи, код становится заметно проще и удобочитаемее. В идеале на один тест должно приходиться одно утверждение (assert). К тому же плохой в оформлении код (например, использующий глобальные переменные или синглтоны) обычно так же сложен в тестировании, что стимулирует разработчика его не писать.

В-третьих, сильно упрощается поддержка кода. Если в результате внесения новой функциональности или изменения старой какой-то участок кода начинает работать некорректно, это будет мгновенно выявлено. Вносить в код изменения гораздо легче, когда он разбит на модули (а TDD требует модульности программ). Инспектировать код, написанный по методологии TDD гораздо проще – каждый коммит выполняется для реализации чёткой задачи, которая будет отражена в комментарии к нему.

Но мне кажется, что писать как обычно гораздо быстрее

Да, действительно, поначалу применение TDD будет отнимать лишнее время. Однако, это скорее дело привычки – со временем вы привыкнете писать сперва тесты, а лишь затем код и, возможно, будете даже выигрывать во времени, ведь процесс разработки будет чётко структурирован, вам придётся сначала решить вопрос «Что писать?», а лишь потом «Как писать?». К тому же, потратив время сейчас, вы выиграете время в будущем, сильно облегчив себе поддержку продукта.

Всегда ли имеет смысл использовать TDD?

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

С чего же начать?

По разработке с упором на тестирование есть отличная книга Кента Бека –

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

Тестирование программного обеспечения является неотъемлемой частью цикла разработки программного обеспечения.

Что такое тестирование программного обеспечения?

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

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

Методика тестирования

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

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

4) Приемочные испытания

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


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

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

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

Приемочные испытания

Это последний тест, который проводится перед передачей программного обеспечения клиенту. Он проводится, чтобы гарантировать, что программное обеспечение, которое было разработано отвечает всем требованиям заказчика. Существует два типа приемо-сдаточных испытаний - то, которое осуществляется членами команды разработчиков, известно, как внутреннее приемочное тестирования (Альфа-тестирование), а другое, которое проводится заказчиком, известно, как внешнее приемочное тестирования.

Если тестирование проводится с помощью предполагаемых клиентов, оно называется приемочными испытаниями клиента. В случае если тестирование проводится конечным пользователем программного обеспечения, оно известно, как приемочное тестирование (бета-тестирование).

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

Тестирование методом черного ящика

Тестирование методом черного ящика осуществляется без каких-либо знаний внутренней работы системы. Тестер будет стимулировать программное обеспечение для пользовательской среды, предоставляя различные входы и тестируя сгенерированные выходы. Этот тест также известен как Black-box, closed-box тестирование или функциональное тестирование.

Тестирование методом белого ящика

Тестирование методом "Белого ящика", в отличие от "черного ящика", учитывает внутреннее функционирование и логику работы кода. Для выполнения этого теста, тестер должен иметь знания кода, чтобы узнать точную часть кода, имеющую ошибки. Этот тест также известен как White-box, Open-Box или Glass box тестирование.

Тестирование методом серого ящика

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

Нефункциональные тесты

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

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


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


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

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

Тесты в процессе разработки программного обеспечения

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

Основными шагами, участвующими в данной методике тестирования программного обеспечения, являются:

  • Анализ потребностей
  • Тест дизайна
  • Тест реализации
  • Тестирование, отладка и проверка кода или продукта
  • Внедрение и обслуживание

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

Agile Model

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

Rapid Application Development (RAD). Методология быстрой разработки приложений

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

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

Спиральная модель

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

Rational Unified Process (RUP). Рациональный унифицированный процесс

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

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

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

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

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

Собственно вопросы:

    Объясните термин «жизненный цикл программного обеспечения».

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

    Объясните термин «жизненный цикл разработки программного обеспечения».

    Жизненным циклом разработки программного обеспечения (SDLC) является концепция, которая описывает комплекс мероприятий, выполняемых на каждом этапе (фазе) разработки программного обеспечения.

    Объясните преимущество использования модели жизненного цикла разработки ПО (SDLC).

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

    1. Принятия решения (идея) о необходимости создания ПО;
    2. Сбор и анализ требований;
    3. Дизайн (Системы и ПО) на основе требований;
    4. Кодирование на основе дизайна системы;
    5. Тестирование;
    6. Внедрение в пользовательскую среду;
    7. Сопровождение (в том числе фиксация найденных в пользовательской среде ошибок);
    8. Изъятие из эксплуатации (редко);
  2. Объясните, что такое Обеспечение качества (Quality Assurance)?

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

    Обеспечение качества определено в стандарте ISO 9000:2005 «Системы менеджмента качества. Основные положения и словарь» как «часть менеджмента качества, направленная на создание уверенности в том, что требования к качеству будут выполнены».

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

    Объясните, что такое Контроль качества (Quality Control)?

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

    Объясните, что такое тестирование ПО?

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

    Из этого определения становится понятно, что тестирование ПО включает в себя два различных процесса:
    Валидация (validation): доказанное объективными результатами исследования подтверждение того, что требования для конкретного определенного использования приложения были выполнены.
    Верификация (verification): доказанное объективными результатами исследования подтверждение того, что определенные требования были выполнены.

    Какие основные цели тестирования ПО?

    Цель тестирования (test objective, test target) - это причина или цель разработки и выполнения теста.

    Основные цели:

    • обеспечить очищения ПО от ошибок (Вы не можете предоставить 100% покрытие, но Вы должны сделать все возможное, и гарантировать, что очевидные ошибки исправлены);
    • убедить, что ПО отвечает оригинальным требованиям и спецификации;
    • обеспечить уверенность в ПО (пользователям, заказчикам и т.д.).
  3. Когда следует начинать тестировать ПО?

    Простой ответ - как только это возможно! Более детально:

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

    Простой ответ - управленческое решение, которое вероятней всего будет принято на основе:

    • тестового покрытия;
    • анализа рисков;
    • ухудшения тестирования.
    Более детальному изучению данного вопроса поможет Майкла Болтона в его блоге с разными там эвристиками «пиньяты» и «мертвой лошади».
  5. Какие основные уровни тестирования ПО?

    1. Компонентное (component)/ модульное тестирование (module, unit testing) - это тестирование отдельных компонентов ПО ;
    2. Интеграционное тестирование (integration testing) - это тестирование, выполняемое для обнаружения дефектов в интерфейсах и во взаимодействии между интегрированными компонентами или системами.

      Следует также понимать что такое big-bang тестирование, тестирование «сверху вниз», восходящие и инкрементное тестирование;

    3. Системное тестирование (system testing) - это процесс тестирования системы в целом с целью проверки того, что она соответствует установленным требованиям;
    4. Приёмочное тестирование (acceptance testing) - это формальное тестирование по отношению к потребностям, требованиям и бизнес процессам пользователя, проводимое с целью определения соответствия системы критериям приёмки (критерии выхода, которым должны соответствовать компонент или система, для того, чтобы быть принятыми пользователем, заказчиком или другим уполномоченным лицом) , с чего следуют такие виды , о которых желательно не забывать:
      • пользовательское приёмочное тестирование (user acceptance testing);
      • производственное приемочное тестирование (factory acceptance testing) - это приемочное тестирование, проводимое на стороне разработчика программного продукта и проводящееся сотрудниками компании-поставщика с целью определить, соответствует или нет компонент или система как программным, так и аппаратным требованиям;
      • стороннее приемочное тестирование (site acceptance testing) - это приёмочное тестирование пользователями или заказчиком на своей стороне. Проводится с целью определить как соответствие бизнес-процессу, так и удостовериться, что данная система или компонент удовлетворяет потребностям пользователей или заказчика. Обычно включает в себя проверку как программного обеспечения, так и технической базы;
      • эксплуатационное приемочное тестирование (operational acceptance testing) - это эксплуатационное тестирование в фазе приемочного тестирования, обычно выполняемое пользователем и/или сотрудниками с администраторским доступом, в рабочей среде (возможно, симулированой), фокусируясь на функциональных аспектах (восстанавливаемость, поведение ресурсов, устанавливаемость и техническое соответствие).
    5. Альфа-тестирование (alpha testing) - это моделируемое или действительное эксплуатационное тестирование потенциальными пользователями/заказчиками или независимой командой тестирования на стороне разработчиков, но вне разрабатывающей организации. Альфа-тестирование часто применяется к коробочному ПО в качестве внутреннего приёмочного тестирования;
    6. Бета-тестирование (beta testing) - это эксплуатационное тестирование потенциальными и/или существующими клиентами/заказчиками на внешней стороне никак не связанными с разработчиками, с целью определения действительно ли компонент или система удовлетворяет требованиям клиента/заказчика и вписывается в бизнес-процессы. Бета-тестирование часто проводится как форма внешнего приёмочного тестирования готового программного обеспечения для того чтобы получить отзывы рынка;
  6. Что такое критерии входа?

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

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

    Приведите несколько примеров, которые объясняют критерии входа для тестирования ПО.

    • все дефекты, которые относятся к ранним стадиям (проектирования) закрыты и проверены;
    • код проверенный с помощью осуществления «Unit» тестов;
    • основные функциональные возможности ПО готовы для тестирования;
    • имеется документация, которая определяет требования;
    • все тестировщики ознакомлены с архитектурой ПО;
    • все тестировщики ознакомлены с целями проекта;
    • готова среда тестирования;
    • доступные для использования билды;
    • утверждены план тестирования и/или тестовые случаи.
  7. Что такое критерии выхода?

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

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

    Как вы объясните Bug/Defect/Error в ПО?

    Любая проблема/ошибка в ПО, что вызвана следующим поведением:

    • поломка ПО или отображение недействительного уведомления;
    • ПО предоставляет недействительные результаты;
    • ПО не удалось выполнить, как ожидалось (любое отклонение от ожидаемых результатов).
  8. Объясните процесс верификации.

    строим ли мы продукт правильно?

    Процесс верификации (verification) выполняется, чтобы убедиться, что каждый этап жизненного цикла разработки ПО (разработка, тестирование и т.д.) строится на основе предопределенных требований (requirements) и спецификаций (specifications) и без каких-либо отклонений от них. (см. № 7)

    Опишите различные мероприятия процесса верификации.

    • анализ различных аспектов тестирования (сроки, ресурсы, персонал, стоимость, инструменты тестирования и т.д.);
    • покрытие операторов (statement coverage) - процентное отношение операторов, исполняемых набором тестов, к их общему количеству; покрытие условий (condition coverage) - процент исходов условий, которые были проверены набором тестов. 100% покрытие условий требует, чтобы каждое отдельное условие в каждом выражении решения было проверено как Истина и Ложь; покрытие альтернатив (decision coverage) - процент результатов альтернативы, который был проверен набором тестов. Стопроцентное покрытие решений подразумевает стопроцентное покрытие ветвей и стопроцентное покрытие операторов;
    • рецензирование (review) - это оценка состояния продукта или проекта с целью установления расхождений с запланированными результатами и для выдвижения предложений по улучшению. Примерами рецензирования могут служить: управленческое рецензирование, неформальное рецензирование, технический анализ, инспекция и разбор;
    • разбор (walkthrough) - это пошаговый разбор, проводимый автором документа для сбора информации и обеспечения одинакового понимания содержания документа;
    • инспекция (inspection) - это тип равноправного анализа, основанный на визуальной проверке документов для поиска ошибок. Например, нарушение стандартов разработки и несоответствие документации более высокого уровня. Наиболее формальная методика рецензирования и поэтому всегда основывается на документированной процедуре.
  9. Приведите примеры верификации в зависимости от уровней тестирования. (см. № 11)

    1. Модульное тестирование (unit testing):
      -проверка осуществления проектирования программного обеспечения.
    2. Интеграционное тестирование (integration testing):
      -тестирование на интеграцию между всеми соответствующими компонентами до того как ПО перейдет к следующему уровню (system).
    3. Системное тестирование (system testing):
      -обеспечение соответствия системы предопределенным требованиям и спецификации.
    4. Приёмочное тестирование (acceptance testing):
      -убедитесь, что система отвечает требованиям клиента.
  10. Объясните процесс валидации.

    Реальный вопрос, на который мы ищем ответ: строим ли мы правильный продукт?

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

    Помните, валидация охватывает динамическую сторону тестирования, где определенное ПО тестируется и оценивается вопреки заданной SRS документации.

    Приведите несколько причин, которые приводят к багам в ПО.

    • человеческие ошибки (процесс проектирования и процесс реализации);
    • изменение требований в то время как ПО под испытанием;
    • непонимание требований и спецификаций;
    • отсутствие времени;
    • плохая приоритизация тестирования;
    • плохая ориентация в версиях ПО;
    • сложность самого ПО.
  11. Что такое процедура тестирования (Test Procedure)?

    Документ, описывающий последовательность действий при выполнении теста. Также известен как ручной сценарий тестирования.

    Что такое программный компонент?

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

    Объясните Покрытие кода.

    Покрытие кода (code coverage) - это метод анализа, определяющий, какие части ПО были проверены (покрыты) набором тестов, а какие нет, например, покрытие операторов, покрытие альтернатив или покрытие условий.

    Объясните Инспекцию кода.

    Инспекция кода (code inspection) или просмотр кода (code review) - это систематическая проверка исходного кода программы с целью обнаружения и исправления ошибок, которые остались незамеченными в начальной фазе разработки. Целью просмотра является улучшение качества программного продукта и совершенствование навыков разработчика.
    В процессе инспекции могут быть найдены и устранены такие проблемы, как ошибки в форматировании строк, состояние гонки (race condition), утечка памяти (memory leak) и переполнение буфера (buffer overflow), что улучшает безопасность программного продукта. Системы контроля версий дают возможность проведения совместной инспекции кода. Кроме того, существуют специальные инструментальные средства для совместной инспекции кода.
    Программное обеспечение для автоматизированной инспекции кода упрощает задачу просмотра больших кусков кода, систематически сканируя его на предмет обнаружения наиболее известных уязвимостей.

    Что значит фраза Код завершен?

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

    Что такое разбор (walkthrough) кода?

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

    Что такое отладка?

    Отладка (debugging) - это процесс поиска, анализа, и устранения причин отказов и ошибок в ПО.

    Чтобы понять, где возникла ошибка, приходится:

    • узнавать текущие значения переменных;
    • выяснять, по какому пути выполнялась программа.
    Существуют две взаимодополняющие технологии отладки.
    • Использование отладчиков - программ, которые включают в себя пользовательский интерфейс для пошагового выполнения программы: оператор за оператором, функция за функцией, с остановками на некоторых строках исходного кода или при достижении определённого условия.
    • Вывод текущего состояния программы с помощью расположенных в критических точках программы операторов вывода - на экран, принтер, громкоговоритель или в файл. Вывод отладочных сведений в файл называется журналированием.
  12. Что такое эмулятор и симулятор?

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

    Симуляция - это воспроизведение работы программы-оригинала сугубо виртуально, на движке специальной программы (средство разработки курсов, к примеру). Симуляция лишь имитирует выполнение кода, а не копирует его, всё виртуально на 100%, всё «понарошку».

    Следовательно:

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

    Симулятор ПО - это модель оригинального ПО, в которой реализуется логика работы этого ПО (частично или полностью), имитируется поведение ПО, копируется его интерфейс.

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

    Что такое спецификация ПО?

    Спецификация (specifications) - это текстовый файл с описанием того, что нужно протестировать в тестовых данных. В ней указывается какие результаты должна получить программа. Тестовый код находит реальные, вычисленные на живом коде результаты. А тестовый движок производит сверку спецификации и вычисленных результатов.

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

    Что такое кодирование?

    Кодирование (coding) - это процесс написания программного кода, скриптов, с целью реализации определённого алгоритма на определённом языке программирования.

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

    Что такое требование?

    Требование (requirement) - совокупность утверждений относительно атрибутов, свойств или качеств программной системы, подлежащей реализации. Создаются в процессе разработки требований к программному обеспечению, в результате анализа требований.

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

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

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

    Что такое тестирование стабильности?

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

    Расскажите про критичность (серьезность) бага и общепринятые уровни такой критичности.

    Критичность (severity) - это важность воздействия конкретного дефекта на разработку или функционирование компонента или системы.

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

    • Как эта ошибка будет влиять на процесс тестирования?
    • Как эта ошибка будет влиять на клиента?
    • Как эта ошибка влияет на систему?
    • Как эта ошибка влияет на сроки тестирования?
    • Блокирует ли эта ошибка другие тесты?
    • И т.д.
    Каждая компания может определить свою собственную шкалу для степени критичности (серьезности), но есть несколько уровней, которые используются почти всеми командами:
    • Blocker/show-stopper (блокирование) - ПО или конкретный компонент не подходит для использования/тестирования (полный отказ, краш системы и т.д.) и нет обхода.
      Примеры: система рухнет, когда пользователь нажимает кнопку «Пуск»; система не запускается после повреждения инсталлятора; отключение ПО, вызванное аппаратными сбоями.
    • Critical (критический) - главная функциональность не работает как надо, есть обходной путь, который может повлиять на целостность испытаний.
      Пример: ПО может рандомно крашиться, используя различные функциональные возможности; ПО вырабатывает противоречивые результаты, основные требования не удается подтвердить.
    • Major (важный) - поражение незначительных функциональностей, нет влияния на другие компоненты, и есть быстрый и действующий обход.
      Пример: Пользователь не может использовать определенную функциональность напрямую, но может использовать ее же, воспользовавшись доступом к ней из разных модулей.
    • Minor (второстепенный, незначительный) - незначительное воздействие на определенном месте, нет необходимости создавать обходной путь, целостность ПО не затронута.
      Примеры: ошибки орфографии, улучшения, запрос на изменение
  13. Расскажите про приоритет бага.

    Приоритет (priority) - это степень важности, присваиваемая багу. Другими словами определяется, насколько срочно это ошибка должна быть исправлена.

    Приоритет - инструмент менеджмента, и перед его определением последний должен ответить минимум на следующие вопросы:

    • Как баг влияет на сроки?
    • Как баг влияет на процесс тестирования?
    • Как баг влияет на работу остальных тестировщиков?
    • Каковы затраты необходимы на устранение бага?
    • Должны ли мы изменить требования к ПО?
  14. Что такое Сборка?

    Сборка (build) - подготовленный для использования информационный продукт. Чаще всего это исполняемый файл (двоичный файл, содержащий исполняемый код программы).

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

    1. Первый идентификатор - основной номер версии.
    2. Второй идентификатор - дополнительный номер версии.
    3. Третий идентификатор - номер сборки.
    4. Четвёртый идентификатор - номер редакции.
  15. Можно ли начинать тестирование без рабочей сборки?

    Безусловно - да! Ведь существует два типа методологии тестирования (статическое и динамическое), которые позволяют тестировщику начинать работать без рабочей сборки статическим методом, тем более такой метод более рентабельный чем «динамический».

    Что такое статический анализ?

    Статический анализ (static analysis) - это анализ программных артефактов, таких как требования или программный код, проводимый без исполнения этих программных артефактов.

    Что такое тестовый драйвер и тестовая обвязка?

    Драйвер (driver) - это компонент ПО или средство тестирования, которое заменяет компонент, обеспечивающий управление и/или вызов компонента или системы.

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

    Что такое матрицы трассировки?

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

    Тесты не связанные с требованиями не имеют смысла. Требования, не связанные с тестами - это «белые пятна», т.е. выполнив все созданные тест кейсы, нельзя дать ответ реализовано данное требование в продукте или нет.

    Что такое тестирование End-to-End?

    End-to-end тестирование - это тип тестирования где тестировщик использует ПО (сценарии, которые исследуют весь поток выполнения) в условиях которыми вероятней всего обладает пользователь.

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

    • запуск ПО в среде с задержками связи сети;
    • запуск ПО в среде с низкими ресурсами;
    • Запуск ПО на другом серверном оборудовании;
    • Запустите ПО в той же среде, что имеет некоторые другие приложения, которые потребляют ресурсы сервера.
  16. Что такое функциональное тестирование? Какие основные типы функционального тестирования? Какие виды функциональных тестов вы знаете?

    Функциональное тестирование (functional testing) - это тестирование, основанное на анализе спецификации функциональности компонента или системы.

    Функциональные тесты базируются на функциях и особенностях, а также взаимодействии с другими системами, и могут быть представлены на всех уровнях тестирования: компонентном или модульном (Component/Unit testing), интеграционном (Integration testing), системном (System testing) иприемочном (Acceptance testing). Функциональные виды тестирования рассматривают внешнее поведение системы.

    1. Функциональные тесты основываются на функциях, выполняемых системой, и могут проводиться на всех уровнях тестирования (компонентном, интеграционном, системном, приемочном). Как правило, эти функции описываются в требованиях, функциональных спецификациях или в виде случаев использования системы (use cases). Тестирование функциональности может проводиться в двух аспектах:
      • тестирование в перспективе «требования» (requirement-based testing) использует спецификацию функциональных требований к системе как основу для дизайна тестовых случаев (Test Cases). В этом случае необходимо сделать список того, что будет тестироваться, а что нет; приоритезировать требования на основе рисков (если это не сделано в документе с требованиями), а на основе этого приоритезировать тестовые сценарии (test cases). Это позволит сфокусироваться и не упустить при тестировании наиболее важный функционал.
      • тестирование в перспективе «бизнес-процессы» (business-process-based testing) использует знание этих самых бизнес-процессов, которые описывают сценарии ежедневного использования системы. В этой перспективе тестовые сценарии (test scripts), как правило, основываются на случаях использования системы (use cases).
    2. Tестирование защищенности (security testing) - это тестирование с целью оценить защищенность ПО. Общая стратегия безопасности основывается на трех основных принципах:
      • конфиденциальность;
      • целостность;
      • доступность;
      В настоящее время наиболее распространенными видами уязвимости в безопасности программного обеспечения являются:
      • xss (cross-site scripting) - это вид уязвимости программного обеспечения (Web приложений), при которой, на генерированной сервером странице, выполняются вредоносные скрипты, с целью атаки клиента;
      • xsrf / csrf (request forgery) - это вид уязвимости, позволяющий использовать недостатки HTTP протокола, при этом злоумышленники работают по следующей схеме: ссылка на вредоносный сайт установливается на странице, пользующейся доверием у пользователя, при переходе по вредоносной ссылке выполняется скрипт, сохраняющий личные данные пользователя (пароли, платежные данные и т.д.), либо отправляющий СПАМ сообщения от лица пользователя, либо изменяет доступ к учетной записи пользователя, для получения полного контроля над ней;
      • code injections (sql, php, asp и т.д.) - это вид уязвимости, при котором становится возможно осуществить запуск исполняемого кода с целью получения доступа к системным ресурсам, несанкционированного доступа к данным либо выведения системы из строя;
      • server-side includes (ssi) injection - это вид уязвимости, использующий вставку серверных команд в HTML код или запуск их напрямую с сервера;
      • authorization bypass - это вид уязвимости, при котором возможно получить несанкционированный доступ к учетной записи или документам другого пользователя.
    3. (interoperability testing) - это процесс тестирования для определения возможности взаимодействия программного продукта.
    Функциональное тестирование разделяются по ожидаемому результату на позитивные и негативные тесты:
    • Позитивный тест использует только корректные данные и проверяет, что приложение правильно выполнило вызываемую функцию.
    • Негативный тест оперирует как корректными так и некорректными данными (минимум 1 некорректный параметр) и ставит целью проверку исключительных ситуаций (срабатывание валидаторов), а также проверяет, что вызываемая приложением функция не выполняется при срабатывании валидатора.
  17. Что такое нефункциональное тестирование?

    Нефункциональное тестирование (non-functional testing) - это тестирование атрибутов компонента или системы, не относящихся к функциональности, то есть надежность, эффективность, практичность, сопровождаемость, переносимость и т.д. (тесты, сделанные по всем аспектам, которые непосредственно не связанны с конкретным действием пользователя).

    Несколько примеров тестов, которые включает в себе нефункциональное тестирование?

    1. Тестирование переносимости (portability testing) это процесс тестирования с целью определить переносимость программного продукта.
    2. Тестирование возможности взаимодействия (interoperability testing) - это Процесс тестирования для определения возможности взаимодействия программного продукта.
    3. Тестирование производительности (performance testing) - это процесс тестирования с целью определить производительность программного продукта.
    4. Тестирование надежности (reliability testing) - это процесс тестирования, исследующий надежность программного продукта.
    5. Тестирование практичности (usability testing) - это тестирование с целью определения степени понятности, легкости в изучении и использовании, привлекательности программного продукта для пользователя при условии использования в заданных условиях эксплуатации.
    6. Тестирование безопасности (safety testing) - это тестирование программного продукта с целью определить его безопасность.
    7. Стрессовое тестирование (stress testing) - это вид тестирования производительности, оценивающий систему или компонент на граничных значениях рабочих нагрузок или за их пределами, или же в состоянии ограниченных ресурсов, таких как память или доступ к серверу.
    8. Нагрузочное тестирование (load testing) - это вид тестирования производительности, проводимый с целью оценить поведение компонента или системы под увеличивающейся нагрузкой (число одновременно работающих пользователей и/или число транзакций) для определения максимально допустимого уровня нагрузки для исследуемого компонента или системы.
  18. Что такое тестирование Белого ящика?

    Белый ящик - это тестирование кода на предмет логики работы программы и корректности её работы с точки зрения компилятора того языка, на котором она писалась.

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

    Техника Белого ящика включает в себя следующие методы тестирования:

    • покрытие решений;
    • покрытие условий;
    • покрытие решений и условий;
    • комбинаторное покрытие условий;
  19. Что такое тестирование Чёрного ящика?

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

    Некоторые приёмы тестирования чёрного ящика:

    • эквивалентное разбиение;
    • анализ граничных значений;
    • анализ причинно-следственных связей;
    • предположение об ошибке;
  20. Что такое Конверсионное тестирование?

    Конверсионное тестирование (сonversion testing) - это методика тестирования, что используется для проверки того, как имеющие в системе А данные будут преобразовываться и становиться доступными для использования в системе Б.

    Что такое Конформационное тестирование?

    Конформационное тестирование - это тестирование с целью убедиться, что ПО отвечает определенным отраслевым стандартам (IEEE, W3C и т.д.) для разработки ПО.

Спасибо за внимание и удачи в ваших начинаниях!

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

Призываю к активному и обоснованному холивару!

Вариант 1

1. Упорядоченная последовательность команд (инструкций) компьютера для решения конкретной задачи.

A. Свойство программы

B. Программное обеспечение

C. Постановка задачи

D. Программа

E. Язык программирования

2. С позиции специфики разработки и вида программного обеспечения, на какие два класса делятся задачи?

A. Позиционные и функциональные

B. Технологические и функциональные

C. Позиционные и непозиционные

D. Технологические и параметрические

E. Нет верного ответа

3. Какими последовательными действиями можно представить процесс создания программ?

A. Программирование, постановка задачи, построение алгоритма

B. Построение алгоритма, решение задачи

C. Построение алгоритма, программирование

D. Программирование, построение алгоритма, постановка задачи

E. Постановка задачи, построение алгоритма решения, программирование

4. Постановка задачи - это …

A. упорядоченная последовательность команд компьютера для решения задач

B. точная формулировка решения задачи на компьютере с описанием входных и выходных данных

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

D. система точно сформулированных правил

E. Все ответы верны

5. Алгоритм - это …

A. разбиение процесса обработки информации на более простые этапы

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

C. точная формулировка решения задачи на компьютере с описанием входных и выходных данных

E. нет верного ответа

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

A. Дискретность

B. Определенность

C. Массовость

D. Алгоритм

E. Все ответы верны

7. Выполнимость - это …

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

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

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

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

Е. нет верного ответа

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

A. Системный программист

B. Программист-аналитик

C. Прикладной программист

D. Администратор

E. Постановщик задач

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

A. Прикладной программист

B Программист-аналитик

C. Системный программист

D. Администратор БД

E. нет верного ответа

A. Прикладной программист

B. Программист-аналитик

C. Системный программист

D. Постановщик задач

E. Администратор

A. Администратор БД

B. Прикладной программист

C. Постановщик задач

D. Системный программист

E. все ответы верны

A. Прикладной программист

B. Программист-аналитик

C. Системный программист

D. Конечный пользователь

E. Нет верного ответа

A. Дискретность

B. Экономичность

C. Готовность

D. Работоспособность

E. Надежность

A. Определенность

B. Работоспособность

C. Надежность

D. Экономичность

E. Готовность

A. Экономичность

B. Готовность

C. Надежность

D. Определенность

E. Работоспособность

16. Устойчивость - …

E. Нет верного ответа

A. Устойчивость

B. Перезапуск

C. Готовность

D. Надежность

E. Все ответы верны

С каким этапом жизненного цикла программного продукта связано с алгоритмизацией

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

A. Документирование

B. Программирование

C. Сопровождение

D. Проектирование

E. нет верного ответа

A. Документирование

D. Сопровождение ПП

E. Все ответы верны

20.На каком этапе жизненного цикла программного продукта составляются необходимые сведения по установке и обеспечению надежной работы ПП и т.д.?

A. Проектирование

B. Эксплуатация

C. Документирование

D. Программирование

E. нет верного объекта

21. Жизненный цикл ПО - …

E. Нет верного ответа

E. Нет верного ответа

B. Процесс поставки, процесс обеспечения качества, процесс верификации

C. Процесс управления, процесс создания инфраструктуры, процесс обучения

E. Процесс управления, процесс разработки, процесс обучения

Процесс документирования, процесс обеспечения качества, процесс верификации

E. нет верного ответа

27.На какие две группы делится документация, создаваемая в процессе разработки программных средств?

28. Код группы 1 стандарта ЕСПД означает …

A. Общие положения

D. Резервные группы

E. нет верного ответа

29. Код группы 0 стандарта ЕСПД означает …

A. Прочие стандарты

B. Резервные группы

C. Основополагающие стандарты

E. Общие положения

30. ЕСПД - это …

A. комплекс программ, устанавливающих правила разработки документации

B. упорядоченная последовательность команд (инструкций) компьютера для решения конкретной задачи

C. система точно сформулированных правил

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

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

31. Расшифруйте ЕСПД

A. Единственная связь программной документации

В. Единая свобода программной документации

C. Единая система программной документации

D. Единство системной программной документации

Е. Нет верного ответа

32. Для чего предназначено Руководство по управлению ПС?

A. Руководство по управлению дает краткую характеристику функциональных возможностей ПС

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

C. Руководство по управлению дельно предписывает, как устанавливать системы в конкретной среде

D. Руководство по управлению содержит необходимую информацию по применению ПС

E. нет верного ответа

33. На какие группы подразделяются документы, входящие в состав ПС

A. Документация, помогающая вносить изменения в ПС и документация по сопровождению ПС

B. Документы управления разработкой ПС и документация по сопровождению ПС

C. Пользовательская документация и документы управления разработкой ПС

D. Документы управления разработкой ПС и пользовательская документация

E. Пользовательская документация ПС и документация по сопровождению ПС

34. Документы, которые фиксируют различные детали взаимодействия между менеджерами и разработчиками

A. Стандарты

B. Планы, оценки, расписания

C. Отчеты

D. Рабочие документы

E. Заметки и переписка

35. Документы, которые содержат фиксацию идей и проблем, возникающих в процессе разработки, описание используемых идей и подходов

A. Отчеты

B. Стандарты

C. Планы, оценки, расписания

D. Рабочие документы

Е. Заметки, переписка

36. Документы, создаваемые менеджерами для прогнозирования и управления процессами разработки и сопровождения

A. Стандарты

B. Планы, оценки, расписания

C. Рабочие документы

D. Заметки

E. Отчеты

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

A. Отчеты

В. Рабочие документы

C. Планы, оценки, расписания

D. Стандарты

Е. Заметки и переписка

38. Для чего необходимы документы, входящие в состав ПС?

A. Данный вид документов содержит фиксацию идей и проблем, возникающих в процессе разработки, описание используемых идей и подходов

B. Эти документы предписывают разработчикам, каким принципам, правилам, соглашениям они должны следовать в процессе разработки ПС

C. Обеспечивают связь внутри коллектива разработчиков и между коллективом разработчиков и менеджерами

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

39. Для чего необходимы документы управления разработкой ПС?

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

40. B. Обеспечивают связь внутри коллектива разработчиков и между коллективом разработчиков и менеджерами

C. Объясняет пользователям, как они должны действовать, чтобы применять данное ПС

D. Обеспечивают связь между самой программой и входными данными

E. нет верного ответа

Вариант 2

1. Код группы 2 стандарта ЕСПД означает …

A. Прочие стандарты

C. Правила выполнения документации разработки

Е. Резервные группы

2. Пояснительная записка. Требования к содержанию и оформлению

A. ГОСТ 19.508-79

B. ГОСТ 19.501-78

C. ГОСТ 19.402-78

D. ГОСТ 19.202-78

Е. ГОСТ 19.404-79

3.Техническое задание. Требования к содержанию и оформлению

A. ГОСТ 19.203-78

B. ГОСТ 19.201-78

C. ГОСТ 19.106-78

D. ГОСТ 19.404-79

E. нет верного ответа

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

A. ГОСТ 19.105-78

B. ГОСТ 19.106-78

C. ГОСТ 19.201-78

D. ГОСТ 19.101-77

E. ГОСТ 19.301-79

5. Общие положения

A. ГОСТ 19.101-77

B. ГОСТ 19.002-77

C. ГОСТ 19.001-77

D. ГОСТ 19.001-78

E. Нет верного ответа

6. Код группы 9 стандарта ЕСПД означает …

A. Резервные группы

B. Основополагающие стандарты

C. Правила выполнения эксплуатационной документации

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

Е. Нет верного ответа

7. Код группы 8 стандарта ЕСПД означает …

A. Прочие стандарты

C. Резервные группы

D. Правила обращения программной документации

Е. Нет верного ответа

8. Код группы 7 стандарта ЕСПД означает …

A. Основополагающие стандарты

B. Правила обращения программной документации

C. Прочие стандарты

E. Резервные группы

9. Код группы 6 стандарта ЕСПД означает …

A. Правила обращения программной документации

В. Общие положения

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

D. Резервные группы

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

10. Анализирует и проектирует комплекс взаимосвязанных программ для реализации функций предметной области

A. Прикладной программист

B. Программист-аналитик

C. Системный программист

D. Постановщик задач

E. Администратор

11. Участвует в процессе создания программ на начальной стадии работ

A. Администратор БД

B. Прикладной программист

C. Постановщик задач

D. Системный программист

E. все ответы верны

12. Является основным потребителем программ

A. Прикладной программист

B. Программист-аналитик

C. Системный программист

D. Конечный пользователь

E. Нет верного ответа

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

A. Дискретность

B. Экономичность

C. Готовность

D. Работоспособность

E. Надежность

14. Возможность доступа к услугам АИС с использованием соответствующих технологий всегда, когда в ней возникает необходимость

A. Определенность

B. Работоспособность

C. Надежность

D. Экономичность

E. Готовность

15. Количество и степень занятости ресурсов, процессов, ОП, внешней и внутренней памяти, каналов ввода/вывода, терминалов и каналов сети

A. Экономичность

B. Готовность

C. Надежность

D. Определенность

E. Работоспособность

16. Устойчивость - …

A. характеризует способность к безотказному функционированию при наличии сбоев

B. возможность доступа к услугам АИС с использованием соответствующих технологий всегда, когда в ней возникает необходимость

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

D. количество и степень занятости ресурсов, процессов, ОП, внешней и внутренней памяти, каналов ввода/вывода, терминалов и каналов сети

E. Нет верного ответа

17. Процесс обеспечивает возобновления нормально функционирования АИС

A. Устойчивость

B. Перезапуск

C. Готовность

D. Надежность

E. Все ответы верны

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

A. Документирование

B. Программирование

C. Сопровождение

D. Проектирование

E. нет верного ответа

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

A. Документирование

B. Проектирование структуры ПП

C. Программирование, тестирование и отладка

D. Сопровождение ПП

E. Все ответы верны

20. На каком этапе жизненного цикла программного продукта составляются необходимые сведения по установке и обеспечению надежной работы ПП и т.д.?

A. Проектирование

B. Эксплуатация

C. Документирование

D. Программирование

E. нет верного объекта

21. Жизненный цикл ПО - …

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

B. процесс, который начинается с момента его полного описания и заканчивается в момент принятия решения о необходимости его создания

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

D. прерывающийся процесс, который начинается с момента написания структуры программы и заканчивается в момент его полного изъятия из эксплуатации

E. Нет верного ответа

22. На какие три группы процессов делится структура жизненного цикла ПО по стандарту ISO/IEC 12207?

A. Составные, действующие и вспомогательные процессы

B. Основные, дополнительные и остальные процессы

C. Вспомогательные, основные и дополнительные процессы

D. Основные, вспомогательные и организационные процессы

E. Нет верного ответа

23. Основные процессы жизненного цикла ПО делятся на …

A. Процесс документирования, процесс обеспечения качества, процесс верификации

B. Процесс поставки, процесс обеспечения качества, процесс верификации

C. Процесс управления, процесс создания инфраструктуры, процесс обучения

D. Процесс приобретения, процесс поставки, процесс разработки*

E. Процесс управления, процесс разработки, процесс обучения

24. Вспомогательные процессы жизненного цикла ПО делятся на …

A. Процесс документирования, процесс обеспечения качества, процесс верификации*

B. Процесс поставки, процесс обеспечения качества, процесс верификации

C. Процесс управления, процесс создания инфраструктуры, процесс обучения

D. Процесс приобретения, процесс поставки, процесс разработки

E. Процесс управления, процесс разработки, процесс обучения

25. Организационные процессы жизненного цикла ПО делятся на …

A. Процесс управления, процесс создания инфраструктуры, процесс обучения, процесс усовершенствования

В. Процесс документирования, процесс обеспечения качества, процесс верификации

C. Процесс приобретения, процесс поставки, процесс разработки

D. Процесс управления, процесс создания инфраструктуры, процесс документирования

E. нет верного ответа

26. Что подразумевает собой процесс документирования?

A. Процесс состоит из действий и задач заказчика, приобретающего ПП

B. Процесс охватывает действия и задачи, выполняемые поставщиком, который снабжает заказчика ПП

C. Процесс обеспечивает соответствующие гарантии того, что ПО в процессе его ЖЦ соответствует заданным требованиям и утвержденным планам

D. Процесс охватывает действия и задачи, выполняемые разработчиком, и охватывает работы по созданию ПО и его компонентов в соответствии с заданными требованиями

Е. Процесс предусматривает формализованное описание информации, созданной в течение ЖЦ ПО

27. На какие две группы делится документация, создаваемая в процессе разработки программных средств?

A. Документы, входящие в состав ПС и документы, помогающие вносить изменения в ПС

B. Пользовательская документация и документация по сопровождению ПС

C. Документы управления разработкой ПС и документы, входящие в состав ПС

D. Общая документация и вспомогательная документация

E. Документы управления разработкой ПС и документы по сопровождению ПС

28. Код группы 1 стандарта ЕСПД означает …

A. Общие положения

B. Правила выполнения эксплуатационной документации

C. Основополагающие стандарты

D. Резервные группы

E. нет верного ответа

29. Код группы 0 стандарта ЕСПД означает …

A. Прочие стандарты

B. Резервные группы

C. Основополагающие стандарты

D. Правила выполнения документации разработки

E. Общие положения

30. ЕСПД - это …

A. Комплекс программ, устанавливающих правила разработки документации

B. Упорядоченная последовательность команд (инструкций) компьютера для решения конкретной задачи

C. Система точно сформулированных правил

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

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

31. Код группы 5 стандарта ЕСПД означает …

A. Правила выполнения документации разработки

B. Резервные группы

C. Основополагающие стандарты

D. Правила выполнения эксплуатационной документации

Е.Правила обращения программной документации

32. Код группы 4 стандарта ЕСПД означает …

A. Резервные группы

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

C. Общие положения

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

E. Правила выполнения документации разработки

33. Код группы 3 стандарта ЕСПД означает …

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

B. Правила выполнения документации разработки

C. Правила обращения программной документации

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

E. Правила эксплуатационной документации

34. Руководство программиста

A. ГОСТ 19.506-79

B. ГОСТ 19.404-79

C. ГОСТ 19.505-79

D. ГОСТ 19.604-78

E. нет верного ответа

35. Заголовки разделов записывают …

A. Строчными буквами и размещают по правому краю

B. Строчными буквами и размещают симметрично относительно правой и левой границ текста

C. Прописными буквами и размещают по левому краю

D. С абзаца строчными буквами (кроме первой прописной)

E. Прописными буквами и размещают симметрично относительно правой и левой границ текста

36. Что не входит в основную часть программного документа?

A. Текст документа

B. Перечень сокращений

C. Лист содержания

D. Приложения

E. Предметный указатель

37. Информационная часть программного документа содержит:

A. Предметный указатель и лист содержания

B. Лист утверждения и лист содержания

C. Титульный лист и лист утверждения

D. Аннотацию и лист содержания

E. Лист утверждения и аннотацию

38. Титульная часть программного документа содержит:

A. Титульный лист

B. Лист утверждения и титульный лист

C. Титульный лист и аннотацию

D. Титульный лист и лист содержания

E. Нет верного ответа

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

A. Требования к составу и параметрам технических средств

B. Требования к функциональным характеристикам

C. Требования к информационной и программной совместимости

D. Требования к надежности

E. Специальные требования

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

A. Требования к функциональным характеристикам

B. Требования к составу и параметрам технических средств

C. Требования к надежности

D. Специальные требования

E. нет верного ответа

Паспорт

1 вариант

Сұрақтың № № вопроса

Қиындықтың дәрежесі

Уровень сложности

Дұрыс жауабы

Правильные ответы