lankastersky: (Default)
[personal profile] lankastersky
Когда-нибудь ДНК будет взломана (как пишут, например, тут), генная инженерия и биоинформатика позволят программировать нужные гены животных как им хочется. Ученые всего мира активно бьются над реверс-инжинирингом, пытаясь понять, за что ответственна та или иная часть ДНК, и скоро у них получится. Как понять, что при программировании одного гена остальные функции продолжают работать нормально? Давайте подойдем к этому с точки зрения разработки программ.

1 Создаем копию исходного кода - клонируем живое существо (допустим, это можно сделать быстро).

2 Вносим изменение в код и проверяем, собирается ли он - вносим изменения в геном и смотрим, жив ли еще пациент.

3 Если билд собрался, запускаем и проверяем, работает ли нужная функция и делаем смок-тест, проверку выполнения базовых функций - существо машет руками и ногами, ок.

4 Запускаем юнит-тесты, проверяющие работоспособность продукта без его полного "включения", имитируя внешнюю среду. Существо лежит неподвижно, мы имитируем изменение обстановки (влажность, осещенность и т.п.) и проверяем, адекватны ли реакции (берем анализы или визуально оцениваем).
Если какой-то тест завалился, ищем, как наши изменения в коде привели к этому, исправляем и повторяем заново.

5 Помимо юнит-тестирования, после крупных изменений надо проводить функциональное - проверка работы программы в боевом режиме. Заставляем существо проснуться и подвигаться. Часто бывает, что по отдельности все работает, а как встал и пошел, так вдруг хромать начал, будто запутался в веревке или выстрелил себе в ногу.

6 Проводим остальные виды тестирования. Стресстестирование под нагрузками - проверяем у организма выносливость, максимальную силу, реакцию.
UI-тестирование - смотрим, все ли ок с внешним видом существа - не посинело ли, не оттопырились ли уши.
Тестирование безопасности - не стало ли существо уязвимо для вирусов, для болезней.
Интеграционное тестирование - проверяем взаимодействие с внешним миром и другими системами, может ли работоть ложкой, жевать еду и т.п.

7 Если все тесты прошли и все довольны - выпускаем в продакшн, собираем отзывы. Существо отпускаем на волю в реальный мир и любуемся своим творением. Вскоре должны полезть баги. Они бывают критичные (существо сдохло), тогда это фейл; или некритичные (существо зависает перед зеркалом) - это можно пофиксать в следующей версии или выпустить патч с набором таблеток, которые каждый может накатить сам.

Profile

lankastersky: (Default)
lankastersky

January 2021

S M T W T F S
      12
3456789
10111213141516
171819 20212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 26th, 2026 02:02 pm
Powered by Dreamwidth Studios