Добрый день. Вопрос №1 Какова стоимость получения диплома о мини-МБА по данному курсу? Или ориентироваться на указанную на сайте? Вопрос №2 Возможно ли начать обучение без потери результатов, не отправив документы на зачисление, а отправку выполнить позже? |
Документация, сопровождающая процесс верификации и тестирования (отчеты)
13.1.3. Покрытие на уровне исходных текстов и на уровне машинных кодов
В некоторых случаях инструментальные средства сбора покрытия анализируют покрытие программного кода тестами не на уровне исходных текстов системы, а на уровне машинных инструкций. В этом случае степень покрытия зависит и от того, какой исполняемый код генерируется компилятором. Отчеты о покрытии в этом случае выглядят следующим образом (отчет о покрытии сгененирован при помощи отладчика Microtec XRAY для Motorola 680x0):
******* INSTRUCTION EXECUTION COVERAGE - Analyze Unit: Menu_Display Function: DATA_PROCESSING\Menu_Display. Instruction(s) not executed: 5668 switch (Key) 0004A0F6 0352 BCHG D1,(A2) 0004A102 0466 0466 SUBI.W #$466,-(A6) 0004A106 0466 0466 SUBI.W #$466,-(A6) 0004A10A 0466 0466 SUBI.W #$466,-(A6) 0004A10E 0466 0466 SUBI.W #$466,-(A6) 0004A112 0466 0466 SUBI.W #$466,-(A6) 0004A116 0466 0474 SUBI.W #$474,-(A6) 5751 i = 1; 0004A4A6 7401 MOVEQ #$1,D2 Executed Total Percent Analyze-unit 467 475 98.32 DATA_PROCESSING\Menu_Display 0 unit(s) excluded. ******* BRANCH EXECUTION COVERAGE - Analyze Unit: Menu_Display Function: DATA_PROCESSING\Menu_Display. Branch(es) not executed: 5612 if ( First_Call == TRUE ) { /* Only execute this block during th 00049E3A 6600 0722 BNE.W $4A55E Branch not taken. 5613 if ( MP_Rd_Config_Straps ( RAW_STRAPS, &Strap_Config ) == 00049E52 664A BNE.B $49E9E Branch not taken. 5750 if (i == 17) 0004A4A4 6602 BNE.B $4A4A8 Fall thru not taken. Executed Total Percent Analyze-unit 74 77 96.10 DATA_PROCESSING\Menu_Display 0 unit(s) excluded.Листинг 13.1.
Поскольку степень покрытия может меняться в зависимости от оптимизации при генерации кода, в некоторых случаях даже при полном выполнении всех операторов языка высокого уровня, на котором написана программная система, не удается достичь полного покрытия на уровне исполняемого кода.
Например, в случае покрытия следующей конструкции на языке C:
typedef enum { CC1 = 250, CC2 = 251, CC3 = 252 } E_CC; … E_CC key; … switch (key) { case CC1: printf("CC1"); break; case CC2: printf("CC2"); break; case CC3: printf("CC3"); break; }
компилятор Microtec C для Motorola 680x0 создаст таблицу возможных значений переменной key, в которой будут присутствовать все элементы от 0 до 255. Реально в программной системе возможно передать только значения констант CC1 - CC3, и в результате покрытыми окажутся только три ветки из 255 возможных в исполняемом коде. Никакими стандартными средствами увеличить степень такого покрытия нельзя. В этом случае отчет о покрытии сопровождается дополнительной информацией о причинах невозможности обеспечить полное покрытие.
Сбор информации о покрытии на уровне исполняемого кода наиболее часто применяется в высококритичных программных системах, где не допускается наличия "мертвого" исполняемого кода, который потенциально может привести к сбою или отказу во время работы системы. К таким системам в первую очередь можно отнести авиационные бортовые системы, медицинские системы и системы обеспечения безопасности информации.
13.2. Отчеты о проблемах
13.2.1. Технологические цепочки и роли участников проекта, использующих отчеты о проблемах. Связь отчетов о проблемах с другими типами проектной документации
Каждое несоответствие с требованиями, найденное тестировщиком, должно быть задокументировано в виде отчета о проблеме. Вероятность обнаружения и исправления ошибки, вызвавшей это несоответствие, зависит от того, насколько качественно она задокументирована. Отчеты о проблемах могут поступать не только от тестировщиков, но и от специалистов технической поддержки или пользователей, однако их общая цель - указать на наличие проблемы в системе, которая должна быть устранена. Если отчет составлен некорректно, разработчик не сможет устранить проблему, поэтому можно считать этот отчет одним из самых важных документов в цепочке тестовой документации.
Главное, что должно быть включено в отчет об ошибке, - это:
- Способ воспроизведения проблемы. Для того, чтобы разработчик смог устранить проблему, он должен разобраться в ее причинах, самостоятельно воспроизведя ее (и, возможно, не один раз). Один из самых тяжелых случаев в процессе разработки возникает при невоспроизводимой проблеме, т.е. проблеме, у которой точно не известен способ ее вызывать. Нахождение такого способа - одна из самых нетривиальных задач в работе тестировщика.
- Анализ проблемы с кратким ее описанием. Лучше всего приводить описание в тех же терминах, в которых составлены требования на часть системы, в которой обнаружена проблема. В этом случае минимизируется вероятность недопонимания сути проблемы.
Любой отчет о проблеме должен быть составлен немедленно после ее обнаружения. Если отчет будет составлен спустя значительное время, повышается вероятность того, что в него не попадет какая-либо важная информация, которая поможет устранить причину проблемы в кратчайшие сроки.
13.2.2. Структура отчетов о проблемах, их трассировка на программный код и документацию
Структура отчета о проблеме в целом мало различается в различных проектах, изменения обычно касаются только порядка и имен следования полей. Некоторые поля могут отражать специфику данного конкретного проекта, однако обычно эти поля следующие:
- Объект, в котором найдена проблема. Здесь помещается максимально полная информация - для документации это название документа, раздел, автор, версия. Для исходных текстов это имя модуля, имя функции/метода или номера строк, версия.
- Выпуск и версия системы. Определяет место, откуда был взят объект с обнаруженной проблемой. Обычно требуется отдельная идентификация версии системы (а не только версии исходных текстов), поскольку может возникнуть путаница с повторно выявленными проблемами. В этом случае, если проблема уже была когда-то выявлена разработчиком и потом вновь появилась из-за того, что в систему попала не самая последняя версия программного модуля, разработчик может решить, что ему пришел старый отчет и проблемы на самом деле не существует.
- Тип отчета
- Ошибка кодирования - код не соответствует требованиям.
- Ошибка проектирования - тестировщик не согласен с проектной документацией.
- Предложение - у тестировщика возникла идея, как можно усовершенствовать код.
- Расхождение с документацией - поведение ПО не соответствует руководству пользователя или проектной документации либо вообще нигде не описано. При этом у тестировщика нет оснований объявлять, где именно находится ошибка.
- Взаимодействие с аппаратурой - неверная диагностика плохого состояния устройства, ошибка в интерфейсе с устройством.
- Вопрос - тестировщик не уверен, что это проблема, и ему требуется дополнительная информация.
- Степень важности. Строгого критерия определения степени важности не существует, и обычно это поле кодируют от 1 (незначительно) до 10 (фатально). Однако способов обоснованной оценки нет - очень сложно определить, насколько фатальной может оказаться, например, опечатка в один символ в руководстве пользователя.
- Суть проблемы. Краткое (не более 2 строчек) определение проблемы. Даже если две проблемы очень похожи, их описания должны различаться.
- Можно ли воспроизвести проблемную ситуацию? Ответ - Да, Нет, Не всегда. Последнее - если проблема носит нерегулярный характер. Нужно описывать, когда она проявляется, а когда - нет (например, если не вовремя нажать не ту клавишу).
- Подробное описание проблемы и способ ее воспроизведения. При этом нужны подробности - и в описании условий воспроизведения, и в описании причины объявления получившейся реакции ошибкой.
Обычный вид отчета о проблеме, соответствующего данной структуре, следующий:
Отчет о проблеме Порядковый номер отчета: Автор отчета: ___________________ Дата создания отчета: __ __ __ Документы/разделы, связанные с проблемой: …………………………………….. Идентификация объекта/процесса, где проявляется проблема: …………………………………………………………………………………………. Определение проблемы: …………………………………………………………………………………………. Автор решения: ___________________ Дата формирования решения __ __ __ Принятое решение: (возможно, ссылки на изменяемые компоненты/запросы на изменения) …………………………………………………………………………………………. Результаты анализа, определяющие, на содержание каких компонент влияет решение: …………………………………………………………………………………………. План проверок, восстанавливающих текущее состояние документов разработки …………………………………………………………………………………………. Оценка принятого автором отчета решения о проблеме: _ …………………………………………………………………………………………. ( 0 = полностью согласен 1 = не все аспекты проблемы учтены/разрешены 2 = основная часть проблемы осталась неразрешенной 3 = решение не адекватно проблеме - не устраняет ее)Пример 13.2.