Розвиватися впевнено без реального середовища розвитку


12

Нещодавно мене взяли на роботу за проект, який передбачає роботу з кількома сторонніми системами «підприємства» та навколо них. Зважаючи на те, що я думаю, астрономічні витрати та зусилля, необхідні для створення достатньо вірної копії виробничого середовища, перспектива створити реальне середовище розвитку здається надзвичайно тонкою.

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

Як це роблять ті, хто ефективно справляється з подібними ситуаціями?


1
Віртуалізація, що має "як подібний до" середовищ тощо. По суті, спробуйте повторити те, що ви можете, в менших масштабах, принаймні охопити більшість "рухомих частин" системи.
Oded

6
Вам належить покластися на правильність API корпоративної системи та зробити багато інтеграційних тестувань, можливо, з деякими тестовими обліковими записами.
Роберт Харві

@RobertHarvey тут мертвий. Хтось повинен пояснити це у відповіді, але це саме те, що вам потрібно. За відсутності середовища для тестування системи вручну, все, що ви можете зробити, це автоматично перевірити код.
Джиммі Хоффа

1
Гаразд, тож, можливо, хороший момент вивезення полягає в тому, що якщо ви не можете мати повне середовище розробників, тестові рахунки у виробництві можуть бути наступною найкращою справою.
Jason Swett

Відповіді:


9

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


ОП, схоже, не має гарантії «симулятора». Також у вашому випадку роботодавець вашого колеги, ймовірно, може вимагати компенсації, якщо тренажер не працює. Що може зробити ОП у подібній ситуації? Турбувати страхову компанію?
K.Steff

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

3

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

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


1

Я весь час перебуваю в таких ситуаціях.

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

Ви також можете зробити гібрид. Спробуйте скопіювати деталі, які ви можете досить легко зробити, а потім «підключіть» до реальних систем (якщо це можливо у вашій ситуації). Я зробив це з певним успіхом - у деяких випадках, коли моя логіка та серверне програмне забезпечення виконувались локально, але я все-таки мав підключення до реальної ERP-системи для перевірки рахунків тощо. Не ідеально, але все рідко буває.

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

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


1

Наша система працює з низкою великих зовнішніх систем. Ми перевіряємо наступні підходи при їх тестуванні, якщо у нас немає повноцінного налаштування:

  • Запис-повтор реальних даних. Запишіть реальні дані (запити / відповіді від реальних зовнішніх систем), параметризуйте їх у разі потреби та повторіть
  • Побудуйте або придбайте тренажер, який виконує функцію зовнішньої системи
  • DSL для генерації тестових даних. Для систем, керованих даними, пишіть DSL високого рівня для генерації тестових даних.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.