ShroomLord

На Пикабу
187 рейтинг 0 подписчиков 2 подписки 1 пост 1 в горячем
Награды:
5 лет на Пикабу
97

Псс, парень. Не хочешь немного системных автотестов?

Всем привет!


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


Что такое системные тесты? Если вкратце - это тестирование программы (или набора программ) с учетом окружения, в котором программе предстоит работать.


Представьте, что вы написали приложение-калькулятор. Вы написали для него множество простейших тестов (проверили функции сложения, умножения, деления, и так далее). В сущности, вы написали unit-тесты (или, по-русски, модульные тесты).

Псс, парень. Не хочешь немного системных автотестов? Тестирование, Тестирование по, Автоматизация, Habr, Видео, Длиннопост

Модульные тесты очень хороши, и оченнь многие ответственные программисты пишут достаточно много таких тестов для своих приложений. И это часто даёт им возможность спокойнее спать по ночам, зная, что их программа работает нормально, и хоть прямо сейчас её можно выкатывать довольным заказчикам.


Но так ли это? Ведь ваш калькулятор будет работать не просто так, а в конкретной операционной системе с конкретными настройками. А ещё у него может быть инстяллятор, который должен успешно отрабатывать, несмотря ни на что. А ещё он может зависеть от внешних библиотек, которые не всегда установлены в целевой системе...


И вот получается, что все модули по отдельности вроде бы протестированы, а на самом деле, спокойно спать всё ещё нельзя: ведь если калькулятор устанавливается и работает в Windows XP, то это абсолютно не означает, что он будет так же работать в Windows 7 или Windows 10.


И вот даже в самом простом калькуляторе вы сталкиваетесь с проблемой: как удостовериться, что мой калькулятор успешно устанавливается на Windows XP x32, Windows XP x64, Windows 7 x32, Windows 7 x64.... И вот с этого момента вы начинаете, по сути, заниматься системным тестированием.

Псс, парень. Не хочешь немного системных автотестов? Тестирование, Тестирование по, Автоматизация, Habr, Видео, Длиннопост

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


Чаще всего системные тесты проводят вручную. Обычно этим занимаются тестировщики (если они есть). Это проще всего, не требует особого умственного труда, но занимает кучу времени. Для крупных коммерческих проектов один полный прогон системных тестов может занимать несколько месяцев работы целого отдела.


Поэтому часто бывает так: в компании перед релизом проводят один полный прогон системных тестов, в ходе которого вылавливают N багов. Затем разработчики фиксят эти баги, а тесирование проверяет, что баги успешно закрыли. Но на второй полный прогон системных тестов времени уже просто не остаётся, поэтому компания просто надеется, что фиксы найденных багов не затронут другие части системы. Очень надёжно, правда?


Компания и рада бы проводить прогон системных тестов каждый день/неделю, да никаких ресурсов для этого у неё просто нет. Да и представьте сами - если вы написали калькулятор, готовы ли вы каждый раз при новой сборке проверять, что он усатнавливается на все возможные операционные системы?


Именно на решение этой проблемы мы направили свои усилия в своём проекте, который мы решили назвать Testo. В состав этой платформы входит специальный язык тестовый сценариев Testo-lang (да, мы написали целый язык для тестовых сценариев), который позволяет вам писать интуитивно-понятные сценарии для системных тестов.


Вместо тысячи слов - просто посмотрите как с помощью нашего проекта можно автоматизировать установку Dr. Web на Windows 7:

Для создания тестовых сценариев не обязательно иметь навыки программирования - достаточно просто документировать все действия, которые вы делаете руками, тестируя какую-либо программу. Например, тест с Dr. Web выражается вот таким сценарием. Даже если вы не знаете ни одного языка программирования, вы всё равно наверняка сможете понять, что именно тут происходит:

Псс, парень. Не хочешь немного системных автотестов? Тестирование, Тестирование по, Автоматизация, Habr, Видео, Длиннопост

Я не буду в этом посте очень долго распыляться о том, как это работает и  устроено. Любители технических подробностей могут найти парочку наших статей на хабре (поиск по слову Testo-lang).


Также у нас есть сайт (тоже легко гуглится по Testo-lang), где вы можете скачать абсолютно бесплатно, без регистрации и СМС нашу платформу и пользоваться её сколько угодно (да, у нас есть платная версия, но она отличается от бесплатной только скоростью работы команды wait).


Больше примеров можно глянуть на Youtube-канале (тоже элементарно гуглится).


Если мы сможем помочь хоть одному пикабушнику, который как раз думает о том "как бы мне автоматизировать вот эту штуку..." - то значит уже три года разработки не прошли даром :)


Приятного тестирования!

Показать полностью 3 1
Отличная работа, все прочитано!