Багато роботи було зроблено для того, щоб зробити розподілену систему максимально абстрактною, щоб користувачам не доводилося турбуватися про семантику розподілу. Кожен постачальник програмного забезпечення працює над тим, щоб його продукти відповідали відповідним стандартам. Обидва ці фактори дозволяють створювати набори специфічних для моделі тестових кейсів, а потім набори специфічних для додатку тестових кейсів.
Тестові кейси для конкретних моделей
Результатом кожної стандартної моделі є власний набір патернів проектування. У свою чергу, це призводить до появи деякого набору тестових патернів.
Тести для базової моделі клієнт/сервер
Існують різні патерни базової моделі клієнт/сервер. У тестових патернах, описаних нижче, шаблон дизайну, що тестується, є загальновживаною версією, яка називається розподіленим зворотним викликом.
Задача: Синхронний обмін повідомленнями між двома об’єктами перетворюється на асинхронний шляхом додавання об’єкта Callback. Клієнт створює об’єкт Callback і передає йому запит та адресу сервера. Об’єкт Callback синхронно передає цей запит на сервер. Після отримання відповіді об’єкт Callback пересилає її об’єкту Client.
Контекст: Використовується програмний код дизайну, який тестується, оскільки дизайнер вважає за краще виконувати іншу роботу під час відповіді на це повідомлення. Теоретично, вихідний потік завершить свою роботу до того, як відповідь буде готова.
Фактори впливу: Функціональні тести можуть бути успішними при одноразовому виконанні, однак, умови перегонів можуть призвести до суперечливих результатів, тобто повторення одного і того ж тесту може призвести до абсолютно різних результатів. Численні фактори впливають на можливість виявлення збоїв через умови перегонів.
Якість - це ваша головна турбота? Ви зацікавлені у підвищенні довіри клієнтів? Якщо так, то вирішіть скористатися послугами незалежного тестування програмного забезпечення, що надаються для покращення програмного коду.
Рішення: Створити набори тестів, в яких кожен тестовий кейс виконується кілька разів. Такий набір тестів повинен коригувати фактори, щоб збільшити видимість умов перегонів. Після кожного тесту система повинна повертатися до початкового стану. Тестування повинно містити наступні тести:
тест, в якому сервер повертає очікуваний результат майже миттєво;
тест, в якому клієнт видаляється до отримання зворотного виклику;
тест, в якому сервер генерує виключення.
тест, в якому сервер видаляється до повернення значення.










0 коментарів