Экзамен по китайскому? Завтра? Ну доставай методичку, будем учить...
Вероятно, каждый не раз примерял на себя этот студенческий анекдот. Со мной такое случалось чуть менее, чем регулярно, и одна из таких историй неожиданно прошла мимо мемуаров. Что ж, пришло время.
Один маленький нюанс: речь пойдет не о естественном языке, а о языке программирования. Но разница в общем небольшая, если вспомнить, что великий Бьярн Страуструп не только математик, но и лингвист
Сейчас вокруг IT-отрасли сложилась нездоровая атмосфера инфоцыганщины, даже уважаемые журналисты на Youtube, до сих пор не причисленные к лику иноагентов, проговаривают рекламу курсов «Из сантехника в дата-сайентологи за небольшое время (и большие деньги)».
Разумеется, медом там совсем не намазано, и так легко, как в анекдоте, выучить язык, даже программирования, не получится. Но попробовать можно...
Сначала присказка.
Работал я тогда техническим писателем в питерской конторе, делавшей вебсайты и приложения, в том числе, для госзаказчика. Общение с удивительными во всех отношениях людьми со стороны заказчика изрядно доставляло, чего стоила одна только ловля дефисов и замена их на неразрывные в слове «Санкт-Петербург»...
Писать приходилось в том числе и программы испытаний, а для этого тестировать продукт руками. В итоге родился документ из нескольких десятков пунктов. Понятно, что заказчика в первую очередь интересовала бумага, однако, по-хорошему, все эти пункты стоило бы проверить в реальности.
Вот тут мне и предложили этот процесс автоматизировать, поскольку вручную все тесты прогонять было бы человекозатратно.
Все уже украдено написано до нас, инструментов для тестирования страниц в браузере достаточно много, но скрипты поддерживают далеко не все. В финал вышли некий инструмент на JavaScript и живая классика — Selenium. Последний можно дергать из скриптов на Python, потому Selenium и победил: сайты делались именно на этом языке.
Вот только Python я до этого видел только в статьях на Хабре да в кусках исходников, которые нужно было отдавать заказчику на бумаге. Да, ГОСТы 19 и 34 писались еще при советской власти, когда распечатки были обычным и подчас единственным способом переноса кода из одного места в другое. Но любим мы эти ГОСТы не только за это, потому их никто и не отменял.
А вот и сама сказка.
Начал я, конечно же, с букваря документации по языку. Но долго букварь не почитаешь. Лучший способ изучать новый естественный язык — читать и говорить на нем, лучший способ изучать новый язык программирования — писать на нем.
Вот и начал я писать. Сначала болванку для запуска тестов, которую потом постепенно наполнял тестами. Поскольку речь шла о веб-страницах, то приходилось выстраивать много заковыристых выражений, чтобы вычислять идентификаторы элементов: полей ввода, которые скрипт вместо человека должен был заполнять, и кнопочек, который он должен был нажимать. Опять же, проверить результат можно было, подождав некоторое время и проверив, появился ли в нужном месте нужный текст.
То есть тест должен был полностью заменить обезьянку человека за клавиатурой.
Обычно начинающим программистам именно тесты и поручают. Пока джун тесты пишет, заодно и в коде продукта разбирается. На код самих тестов при этом можно смотреть только так
Мой код не был исключением из этого правила.
Однако после месяца отладки, когда смотреть на код уже было не так страшно, скрипт был сдан, разработчики конторы даже доработали его напильником и включили в процесс выпуска продукта.
Так и получилось, что автоматический интеграционный тест для серьезного продукта написал не разработчик, а технический писатель. А я добавил к десятку языков, которые знал на тот момент, еще и Python.
Выучить новый язык за месяц можно. Не в совершенстве, а основы. Главное, приложить немного труда.
Подробнее https://sacai.livejournal.com/290248.html?me...