Ручний контроль та купівля проїзних карток: проблеми. Ручний контроль порожнини матки Що таке ручний контроль

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

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

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

Вихідними даними для таких перевірок є: технічне завдання, специфікації, структурна та функціональна схеми програмного продукту, схеми окремих компонентів

і т. д., а пізніших етапів - алгоритми і тексти програм, і навіть тестові набори.

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

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

інспекції вихідного тексту,

наскрізні перегляди,

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

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

Інспекція вихідного тексту.Інспекції вихідного тексту є набір процедур і прийомів виявлення помилок щодо тексту групою фахівців. До цієї групи входять: автор програми, проектувальник, спеціаліст із тестування та координатор - компетентний програміст, але не автор програми. Загальна процедура інспекції передбачає такі операції:

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

програміст розповідає про логіку роботи програми та відповідає на запитання інспекторів;

програма аналізується за списком питань виявлення історичних загальних помилок програмування.

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

I. Контроль звернень до даних

Чи всі змінні ініціалізовані?

Чи не перевищено максимальних (або реальних) розмірів масивів і рядків?

Чи не переплутані рядки зі стовпцями під час роботиіз матрицями?

Чи є змінні зі подібними іменами?

Чи використовуються файли? Якщо так, то під час введення з файлу перевіряється завершення файлу?

Чи відповідають типи значень, що записуються і читаються?

Чи використані нетипізовані змінні, відкриті масиви, динамічна пам'ять? Якщо так, то чи відповідають типи змінних при накладенні формату? Чи не виходять індекси за межі масивів?

2. Контроль обчислень

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

Чи правильно виконано обчислення над неарифметичними змінними?

Чи правильно виконано обчислення зі змінними різних типів (у тому числі з використанням цілочисленної арифметики)?

Чи можливе переповнення розрядної сітки чи ситуація машинного нуля?

Чи відповідають обчислення заданим вимогам точності?

Чи є порівняння змінних різних типів?

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

Чи будуть коректно завершені цикли?

Чи буде завершено програму?

Чи існують цикли, які не виконуватимутьсячерез порушення умови входу? Чи правильно продовжаться обчислення?

Чи існують пошукові цикли? Чи правильно відпрацьовуються ситуації «елемент знайдено»

і «Елемент не знайдено»?

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

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

Чи не змінює підпрограма аргументів, які повинні змінюватися?

Чи не відбувається порушення дії глобальних і локальних змінних з однаковими іменами?

Окрім безпосереднього виявлення помилок, результати інспекції дозволяють програмісту побачити інші зроблені ним помилки, отримати можливість оцінити свій стиль програмування, вибір алгоритмів та методів тестування. Інспекція є способом раннього виявлення частин програми, що з більшою ймовірністю містять помилки, що дозволяє при тестуванні приділити увагу саме цим частинам.

Наскрізні перегляди.Наскрізний перегляд, як і інспекція, є набором способів виявлення помилок, здійснюваних групою осіб, які переглядають текст програми. Такий перегляд має багато спільного з процесом інспектування, але відрізняється процедурою та методами виявлення помилок. Група виконання наскрізного контролю складається з трьох-п'яти осіб: голова або координатор, секретар, який фіксує всі помилки, спеціаліст з тестування, програміст і незалежний експерт. Наскрізний перегляд передбачає виконання таких процедур:

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

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

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

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

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

Перевірка за столом.Історично даний метод ручного тестування з'явився першим, оскільки він не потребує групи фахівців. Це - перевірка вихідного тексту або наскрізні перегляди, що виконуються однією людиною, яка читає текст програми, перевіряє його на наявність можливих помилок за спеціальним списком помилок, що часто зустрічаються, і «пропускає» через програму тестові дані. Виходячи з принципів тестування, перевірку за столом має проводити людина, яка не є автором програми. Метод найменш результативний, тому що перевірка є повністю невпорядкованим процесом, при ній відсутня обмін думками і здорова конкуренція.

Оцінка програм.Цей метод безпосередньо не пов'язаний із тестуванням, але його використання також покращує якість програмування. Його використовують для анонімної оцінки програми у термінах її загальної якості, простоти експлуатації та ясності. Мета методу – забезпечити порівняно об'єктивну оцінку та самооцінку програмістів.

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

Після цього результати оцінки звіряють, а перевіряючий дає загальний коментар та рекомендації щодо покращення програм.

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

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

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

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

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

не виявляють пропущених маршрутів;

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

не дають гарантії, що програма правильна, наприклад, якщо замість сортування за спаданням реалізовано сортування за зростанням.

Для формування тестів програму представляють як графа, вершини якого відповідають операторам програми, а дуги представляють можливі варіанти передачі управління. Нижче наведено текст програми, яка визначає значення x залежно від значень параметрів процедури. Алгоритм цієї програми представлено на рис. 9.2 а, а відповідний граф передач управління - на рис. 9.2,6.

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

якщо (a1) and (b=0) then x: =x/a; if (a=2) або (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 серпня було направлено офіційний запит від «ОП БМГ». Відповідь з адміністрації метро поки не надійшла, але вона напевно вже готується. За законом, відповідальні особи повинні протягом місяця його надіслати. Яким би він не виявився, ми добиватимемося вирішення проблеми.