Бск ручной контроль. Ручной контроль программного обеспечения

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

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

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

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

и т. д., а для более поздних этапов - алгоритмы и тексты программ, а также тестовые наборы.

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

Основными методами ручного контроля являются:

инспекции исходного текста,

сквозные просмотры,

проверка за столом,

оценки программ.

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

участникам группы заранее выдается листинг программы и спецификация на нее;

программист рассказывает о логике работы программы и отвечает на вопросы инспекторов;

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

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

I. Контроль обращений к данным

Все ли переменные инициализированы?

Не превышены ли максимальные (или реальные) размеры массивов и строк?

Не перепутаны ли строки со столбцами при работе с матрицами?

Присутствуют ли переменные со сходными именами?

Используются ли файлы? Если да, то при вводе из файла проверяется ли завершение файла?

Соответствуют ли типы записываемых и читаемых значений?

Использованы ли нетипизированные переменные, открытые массивы, динамическая память? Если да, то соответствуют ли типы переменных при «наложении» формата? Не выходят ли индексы за границы массивов?

2. Контроль вычислений

Правильно ли записаны выражения (порядок следования операторов)?

Корректно ли выполнены вычисления над неарифметическими переменными?

Корректно ли выполнены вычисления с переменными различных типов (в том числе с использованием целочисленной арифметики)?

Возможно ли переполнение разрядной сетки или ситуация машинного нуля?

Соответствуют ли вычисления заданным требованиям точности?

Присутствуют ли сравнения переменных различных типов?

3. Контроль передачи управления

Будут ли корректно завершены циклы?

Будет ли завершена программа?

Существуют ли циклы, которые не будут выполняться из-за нарушения условия входа? Корректно ли продолжатся вычисления?

Существуют ли поисковые циклы? Корректно ли отрабатываются ситуации «элемент найден»

и «элемент не найден»?

4. Контроль межмодульных интерфейсов

Соответствуют ли списки параметров и аргументов по порядку, типу, единицам измерения?

Не изменяет ли подпрограмма аргументов, которые не должны изменяться?

Не происходит ли нарушения области действия глобальных и локальных переменных с одинаковыми именами?

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

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

участникам группы заранее выдают листинг программы и спецификацию на нее;

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

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

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

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

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

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

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

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

9.3. Структурное тестирование

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

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

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

Структурный подход к тестированию имеет ряд недостатков. Так тестовые наборы, построенные по данной стратегии:

не обнаруживают пропущенных маршрутов;

не обнаруживают ошибок, зависящих от обрабатываемых данных, например, в операторе if (a - b) < eps - пропуск функции абсолютного значения abs проявится только, если а < Ь;

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

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

Procedure т(а, b: rеа1; var x: real); begin

if (a1) and (b=0) then x: =x/a; if (a=2) or (x>1) then x: =x+1;

Формирование тестовых наборов для тестирования маршрутов может осуществляться по нескольким критериям:

покрытие операторов;

покрытие решений (переходов);

покрытие условий;

покрытие решений/условий;

комбинаторное покрытие условий.

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

Для фрагмента, алгоритм и граф которого представлены на рис. 9.2, можно было бы выполнить каждый оператор один раз, задав в качестве входных данных а = 2, b = О, х = 3. Но при этом из второго условия следует, что переменная х может принимать любое значение, и в некоторых версиях языка Pascal это значение проверяться не будет (!).

Кроме того:

если при написании программы в первом условии указано: (а > 1) or (b = 0), то ошибка обнаружена не будет;

если во втором условии вместо х > 1 записано х > 0, то эта ошибка тоже не будет обнаружена;

существует путь 1-2-4-6 (см. рис. 9.2, б), в котором х вообще не меняется и, если здесь есть ошибка, она не будет обнаружена.

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

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

Нетрудно видеть, что критерий покрытия решений удовлетворяет критерию покрытия операторов, но является более «сильным».

Программу, алгоритм которой представлен на рис. 9.2, а, можно протестировать по методу покрытия решений двумя тестами, покрывающими либо пути: 1-2-4-6, 1-2-3-4-5-6, либо пути: 1-2-3-4-6, 1-2-4-5-6, например:

а = 3, Ь = 0, х = 3- путь 1-2-3-4-5-6;

а = 2, b = 1, х = I - путь 1-2-4-6.

Однако путь, где х не меняется, будет проверен с вероятностью 50 %: если во втором условии вместо условия х > 1 записано х < 1, то этими двумя тестами ошибка обнаружена не будет.

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

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

Программа, алгоритм которой представлен на рис. 9.2, а, проверяет четыре условия:

Тесты, удовлетворяющие этому условию:

а = 2, Ь = 0, х = 4 - путь 1-2-3-4-5-6, условия: 1 - да, 2 - да, 3 - да, 4 - да;

а = 1, b = 1, х = 1 - путь 1-2-4-6, условия: 1 - нет, 2 - нет, 3 - нет, 4 - нет.

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

а= 1, b = 0, х = 3 - путь 1-2-3-6, условия: 1 - нет, 2 - да, 3 - нет, 4 - да;

а = 2, b = 1, х = 1 - путь 1-2-3-4-5-6, условия: 1 - да, 2 - нет, 3 - да, 4 - нет

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

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

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

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

Л задержка или подозрение на задержку частей плаценты в полости матки (задержка дольки плаценты может привести к кровотечению или развитию инфекции):

Л? задержка отделения последа, сопровождающаяся кровотечением: 5 подозрение на разрыв матки:

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

Р после родов у женщины, ранее перенесшей кесарево сечение. Техника операции:

кисть, сложенную в виде "руки акушера"", вводят в полость матки и тщательно ее обследуют:

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

для пред\тфеждения ошибки и детального обследования всей внутренней поверхности матки необходимо совершить круговой поворот кисти руки.

11.Ручное отделение плаценты.

Показания к ручному отделению плаценты:

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

ингаляционный или внутривенный наркоз:

роженица находится на операционном столе или поперечной кровати.

акушер смазывает одну руку стерильным вазелиновым маслом, складывае; конусообразно пальцы другой рукк и. раздетая 1 и 2 пальцами другой руки половые губы, вводит руку во влагалище и в матку:

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

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

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

Плодоразрушающие операции (виды, показания. условия применениях

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

Виды плодоразрушающих операций:

1) ; эмбриотомия - группа операций на туловище и шее:

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

"Гэвисцерация. эвентрация. -жзентерация удаление внутренностей из грудной и брюшной полостей плода для извлечения его в уменьшенном обьеме:

2) Ь краниотомия - перфорация головки плода, разрушение и удаление головного мозга с последующим извлечением плода. Показания:

угроза жизни и здоровью женщины:

резкое несоответствие размеров плода и размеров таза роженицы:

гибель плода во время родов:

неблагоприятное предлежание (задний вид лицевого, передний вид лобного предлежания). Условия проведения операции:

раскрытие зева не менее чем на 5 - 6 см: - таз не должен быть абсолютно узким:

вскрытый плодный пузырь.

Краниотомия.

Краниотомия - плодоразрушающая операция, заключающаяся в перфорации головки плода, разрушении и удалении головного мозга с последующим извлечением плода. Показания:

резкое несоответствие между размерами таза роженицы и плода:

угроза для жизни и здоровья женщины в связи с родами:

смерть плода во время родов:

невозможность извлечь головку плода после рождения туловища:

неблагоприятные предлежания (задний вид лицевого, передний кид лобною предлежания). Условия для краниотомии.

раскрыгие зева не меньше, чем на 5 - 6 см:

таз не должен быть абсолютно узким:

головка должна быть фиксирована во входе в таз:

истинная конъюг ата не менее 6.5 см. Техника операции. 1.Необходимо соблюдать 2 основных правила:

производить операцию под контролем зрения, т.е. после введения широких зеркал:

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

вводят широкие зеркала: . "

фиксируют головку через переднюю брюшную стенку и через влагалище:

после фиксации головки рассекают кожу на ней и производят прободение головки перфоратором (лучше перфоратором Феноменова. можно использовать копьевидный перфоратор Бло):

А) при лицевом предлежании прободение производят через глазницу или через твердое небо:

Б) при лобном предлежании - через глазницу или через лобную кость:

В) при заднем виде - перфоратор вводят чере! рот плода. 3.Второй момент - эксцеребрация (разрушение и удаление мозга):

с помощью кюретки, введенной через перфорационное отверстие, разрушают головной мозг;

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

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

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

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

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

после введения обеих ложек краниокласта производят мощное сжатие ветвей путем поворота винта;

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

выбор направления гракций зависит также от высоты стояния головки и должен соответствовать направлению проводной оси родового канала:

А) пока головка находится во входе п полость газа, делают тракции резко кзади:

Б) при опускании головки к выходу изменяют направление тракции. перемешая рукоятки инструмента книзу, а затем кпереди;

извлечение головки плода и плечиков надо производить осторожно, одновременно защищая промежность от гравма газации.

Декапитация.

Декапитация - плодорачрушающая операция, заключающаяся в отделении головки плода ог гуловища с последующим извлечением туловища и головки.

Показания:

чаше при запущенных поперечных положениях плода.

Раскрытие зева не менее, чем на 6 см:

истинная конъюгата не меньше 6.5 см. т.е. таз не абсолютно узкий: вскрытый плодный пузырь:

возможность достижения и охвата шейки плода пальцами. Техника операции:

1) производят влагалищное исследование и убеждаются в доступности шейки плода:

2) ассистент осторожно оттягивает выпавшую ручку в сторону" ягодиц (при поперечном положении 1 позиции вправо, при 2 позиции - влево):

3) акушер вводит во влагалище руку для захватывания шейки плода (при 1 позиции - правую руку, при 2 - левую);

4) захватывают шейку плода так. чтобы 1 палец лежал спереди (позади лобка), а указательный - сзади:

5) ножницами подсекают кожу на шее и пальцем образуют канал в подкожной клетчатке:

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

7) для отделения головки от туловища рассекают кожу ножницами (под контролем внутренней руки):

8) туловище извлекают при потягивании за выпавщую ручку.

9) способы извлечения отделенной головки:

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

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

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

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

17.Осложнения после плодоразрушающих операций .

При выполнении плодоразрушающих операций возможно развитие следующих осложнений:

1) травматизация родовых путей матери используемыми инструментариями:

2) травматизация мягких тканей родовых путей частями плода (например, костями черепа):

3) повреждение родовых путей (разрыв матки, промежности) при форсированном извлечении частей плода:

4) повреждение мочевого пузыря, прямой кишки.

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

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

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

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

и т. д., а для более поздних этапов - алгоритмы и тексты программ, а также тестовые наборы.

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

Основными методами ручного контроля являются:

Инспекции исходного текста,

Сквозные просмотры,

Проверка за столом,

Оценки программ.

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

Участникам группы заранее выдается листинг программы и спецификация на нее;

Программист рассказывает о логике работы программы и отвечает на вопросы инспекторов;

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

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

I. Контроль обращений к данным

Все ли переменные инициализированы?

Не превышены ли максимальные (или реальные) размеры массивов и строк?


Не перепутаны ли строки со столбцами при работе с матрицами?

Присутствуют ли переменные со сходными именами?

Используются ли файлы? Если да, то при вводе из файла проверяется ли завершение файла?

Соответствуют ли типы записываемых и читаемых значений?

Использованы ли нетипизированные переменные, открытые массивы, динамическая память? Если да, то соответствуют ли типы переменных при «наложении» формата? Не выходят ли индексы за границы массивов?

2. Контроль вычислений


Правильно ли записаны выражения (порядок следования операторов)?

Корректно ли выполнены вычисления над неарифметическими переменными?

Корректно ли выполнены вычисления с переменными различных типов (в том числе с использованием целочисленной арифметики)?

Возможно ли переполнение разрядной сетки или ситуация машинного нуля?

Соответствуют ли вычисления заданным требованиям точности?

Присутствуют ли сравнения переменных различных типов?

3. Контроль передачи управления

Будут ли корректно завершены циклы?

Будет ли завершена программа?

Существуют ли циклы, которые не будут выполняться из-за нарушения условия входа? Корректно ли продолжатся вычисления?

Существуют ли поисковые циклы? Корректно ли отрабатываются ситуации «элемент найден»

и «элемент не найден»?

4. Контроль межмодульных интерфейсов

Соответствуют ли списки параметров и аргументов по порядку, типу, единицам измерения?

Не изменяет ли подпрограмма аргументов, которые не должны изменяться?

Не происходит ли нарушения области действия глобальных и локальных переменных с одинаковыми именами?

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

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

Участникам группы заранее выдают листинг программы и спецификацию на нее;

Участникам заседания предлагают несколько тестов;

Участники заседания мысленно выполняют каждый тест в соответствии с логикой программы, при этом состояние программы (значения переменных) отслеживается на бумаге или доске;

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

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


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

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

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

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

В последнее время в петербургскую подземку пенсионеров пускают только через два-три ближайших к контролеру турникета. Нововведение сразу вызвало горячие споры. Руководство Метрополитена заявляет, что теперь стало легче контролировать проход по льготным проездным. Пассажиры недовольны — в часы пик у вертушек скапливаются огромные людские пробки. Споры продолжаются, а заторы на входе в метро — растут. По этому поводу пенсионер Борис Петрович Тюленев и обратился в «Общественную приемную Балтийской медиа-группы».


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

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

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

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

Корреспондент «Вечёрки» как-то оказалась свидетелем такого случая. Через турникет для пенсионеров прошел пожилой мужчина с рюкзаком за плечами. Явно с дачи возвращался, вез домой дары природы. За вертушкой мужчину остановил «эскаэмщик» с валидатором. Проверил его карточку. Глянул внимательно.

— Что-то вы плоховато выглядите, Ольга Ивановна! — пошутил с серьезным лицом, отводя растерянного пенсионера в сторону...

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

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

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

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