Перевірка будь-якої, не надто простої черги вимагає використання цілої групи тестів. Коли це робити - під час тестування системи чи низькорівневого тестування компонентів? Якщо вузол має лише одне вхідне посилання, і у нас є підстави вважати, що цією чергою керує компонент, представлений цим вузлом, то слід віддати перевагу тестуванню компонентів, що стоять у черзі, використовуючи підхід компонентного тестування. Якщо є об’єднуючий, поглинаючий або з’єднуючий вузол (кілька вхідних посилань), то нам доведеться тестувати чергу на рівні компонентів, а потім повторити ці тести під час тестування системи. Ми обираємо тести в залежності від дисципліни черги та правила вибору сервера, якщо таке є. Нижче наведено кілька корисних типів тестів.
- Перевірте обмеження на довжину черги.
- Максимальна довжина черги. Try to exceed the maximum number of items in the queue.
- Порожня черга. Activate the processing when nothing is in the queue.
- Тестування циклів. A node that processes a queue contains a loop for processing queue elements (especially group servers). Use loop testing methods for multiple items in the queue.
- Динамічна зміна довжини черги. Спроба додати транзакцію до черги (особливо в пакетній черзі) під час обробки елементів, очевидно, є необхідним тестовим випадком. Крім того, спробуйте видалити елемент з черги, поки обробник черги активний, якщо система обробки дозволяє це зробити.
Ви можете мати справу з компаніями, що надають послуги з тестування програмного забезпечення вносити гідні поправки у створену програму до того, як вона буде запущена у виробництво.
- Тестування відбору та сортування.
Часто дисципліни черги включають процедуру сортування. Наприклад, дисципліна може вказувати, що найстаріші транзакції обробляються в першу чергу. Це правило відрізняється від правила черги FIFO (First in First Out - першим прийшов, першим обслужений). Черга FIFO будується на основі елемента в черзі. Основою для правила “найстаріша транзакція обробляється першою” є мітка часу в контрольному записі транзакції. Оскільки транзакції проходять різні шляхи, перш ніж потрапляють до цієї черги, порядок FIFO може відрізнятися від порядку міток часу. Інший приклад пов’язаний з пріоритетними чергами, в яких існує внутрішнє сортування за пріоритетом. Обробка повинна включати явну процедуру сортування або, якщо черга не надто довга, вся черга може бути просканована для вибору наступного елемента для обробки. Обидва ці варіанти є неявною процедурою сортування. Сортування завжди відбувається на основі реального або прихованого ключа.










0 коментарів