Всі ми любимо нічого не робити працювати з добре документованим API. За допомогою стандартів API Blueprint або Swagger можна отримати читану машиною і людиною документацію, а значить і інструменти перевірки API на основі цієї документації.
Apiary пропонує інтерактивні інструменти для перевірки API вручну, підставляючи потрібні параметри форми, що генеруються на основі документації. Але можна отримати набагато більше користі, якщо API буде перевірятися автоматично. Це позбавляє від необхідності писати окремі тести на кожен інтерфейс, але накладає певні обмеження на структуру і якість самої документації.
image
У цьому tutorial поговоримо про утиліті Dredd на прикладі API від GitHub.
Читати далі →



Нещодавно у нашому блозі ми розповідали про використання предметно-орієнтованих мов для вирішення конкретних завдань розробки з допомогою Python. Сьогодні мова піде про тестування — зокрема, про те, чому стовідсоткове покриття тестами коду це насправді погано.

Матеріал підготовлений на основі виступу розробника Positive Technologies Івана Циганова на конференції Moscow Python Conf (слайди, відео).
Читати далі →

Сьогодні ми розмірковуємо про тестування продуктивності хмарних сервісів і систем віртуалізації, а також робимо корисні висновки. Але перш ніж говорити про benchmarking'е, давайте подумаємо, як же правильно проводити тести в віртуальної середовищі? Насправді, в цьому питанні є і свої хитрощі, і свої, вже перевірені методи.

Читати далі →



Олександр Лебедєв виражає всю нетривіальність дизайну REST API. Це — розшифровка Highload++ 2016.

Всім здрастуйте!
Підніміть руку ті, хто фронтенд розробник у цьому залі? Хто мобільний розробник? Хто бекенд розробник?
Бекенд розробників більшість у цьому залі зараз, що радісно. По-друге, майже всі прокинулися. Чудова новина.

Пару слів про себе
Хто я такий? Чим займаюся?

Я фронтенд team lead компанії «Нові " Хмарні Технології». Останні 5 років я писав веб фронтенд, який працює з REST API і який має для користувача працювати швидко. Я хочу поділитися досвідом про те, які API повинні бути, які дозволяють цього домогтися.

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

Читати далі →



Здається, що час — це річка, яку раптово переклинило в бік, і вона вирішила текти по колу. Саме таке враження складається на перший погляд, коли бачиш, що знову стали популярні боти в месенджерах. Але це враження оманливе. Змінилося дуже багато — потужності, які стоять за ботами, можливість обробки ними мультимедіа інформації, наявність інформації про користувачів, коло охоплення… загалом, це явно не ностальгічний тренд, а реально корисна технологія, яка буде розвиватися і далі.

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

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

Звичайно, можна зареєструвати додаткового бота для тестування, але це варіант кривої і некрасивий. Звернення до зовнішнього апі під час тестів, заглушка, яка не дасть спілкуватися з ботом кому попало, обмеження на швидкість відправки повідомлень раз в секунду… Якщо слати повідомлення разів в секунду, то граф з якихось 60 вершин буде тестуватися вже більше хвилини! І я вже не кажу про те, що у нас немає ніякої можливості змоделювати зрослу навантаження на бота, при якій він упреться в обмеження в 30 повідомлень в секунду… загалом, я зрозумів, що знову доведеться робити щось своє.

Читати далі →

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

Традиційний підхід полягає в тому, що створюється кластер БД: основна і запасна. Далі, час від часу ця БД (як правило, на Stand-By стороні) копіюється для розробників. І чим більше така БД, тим рідше вона копіюється і віддаляється і тим сильніше навантажується СГД від таких операцій. З іншого боку, розробники і тестувальники отримують застарілу БД, вона як правило місячної або навіть піврічної давності. Коли ж приходить час впроваджувати налагоджений код в продуктив, виявляється, що БД встигла сильно змінитися: з'явилися нові додаткові дані, таблиці, поля і можливо видалені старі. Це призводить до того що налагоджений код для старої БД не працює на новій, що сильно ускладнює розробку, тестування, впровадження та експлуатацію нового коду.



Читати далі →



Експерименти — одна з центральних функцій наукового підрозділу сайту потокового відео Twitch. Ми працюємо в тісному контакті з менеджерами по продукції, щоб тестувати нові ідеї та функції. У минулому ми використовували власні інструменти для проведення А/В-експериментів в мережі і на наших мобільних додатках. Нещодавно ми спробували новий підхід для проведення експериментів на нашому додатку для Android, використовуючи функцію поетапного розгортання з Google Play.

Читати далі →

Додо сказав:
— Правильність форми несуттєва! А потім розставив усіх без усякого порядку по колу. Ніхто не подавав команди — всі побігли, коли захотіли.

Л. Керролл, «Пригоди Аліси в країні чудес»


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

image

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

Читати далі →