• Что такое end-to-end тестирование?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Понятие еnd-to-end обозначает всего-навсего классификацию тестов по уровню, на котором тестируется система, и, само по себе, ничего не говорит ни о том, какие конкретно должны быть эти тесты, ни о том, какую роль они играют в общей стратегии обеспечения/проверки качества и, также, не является методикой тестирования. (Методика - это совсем другое понятие.)

    Для понимания сути этого понятия хорошо сравнить его с модульным ("нижний" уровень) и интеграционным ("средний") тестированием на каком-нибудь конкретном примере. Давайте рассмотрим некий сферический webshop в вакууме. Предположим, в нем есть 50 классов и для большинства из них написаны модульные тесты. Они проверяют исключительно функционал конкретного модуля (чаще всего, класса), т.е. тот, что зависит только от самого модуля и ни от чего чего более. Потом есть интеграционные тесты. Они проверяют корректность работы отдельных "модулей", если их собрать вместе согласно архитектурe. Например, работает ли правильно "Корзина", состоящая, в свою очередь, из 10 классов (предварительно проверенных модульными тестами), или "Корзина", подключенная к "Вебморде" и т.д. Где-то повыше в этой иерархии есть такие интеграционные тесты, которые проверяют конкретный функционал всей системы. Например, отправляется ли юзеру мейлом копия оплаченного заказа...

    И вот тут начинается самое интересное для понимания того, что такое end-to-end тестирование! Можно представить себе тест, проверяющий, что соответствующий мейл генерируется и сбрасывается SMTP серверу. Если SMTP сервер не рассматривать, как часть разрабатываемой системы, то этот тест вполне можно назвать end-to-end тестом (послали кучку HTTP запросов через "Вебморду" и проверили сброс мыла на SMTP - все зашибись!). Однако, если настройки и эксплуатация SMTP сервера - часть проекта (например, заказана разработка webshop "под ключ"), может оказаться, что это мыло будет отфильтровано каким-нибудь спам-фильтром, превысит лимит почтового ящика пользователя... короче, не дойдет до него. Тогда этот же самый тест уже нельзя считать end-to-end, а нужно бы было написать тест, проверяющий приход мыла в POP3/IMAP ящик. (Опять же, если это действительно нужно! Ибо, в зависимости от конкретных функциональных и нефункциональных требований, архитектор и QA инженер вполне могут найти возможность обеспечить адекватный контроль качества и без такого теста.)

    Таким образом, end-to-end тесты, это такие интеграционные тесты, которые воздействуют на систему через ее самые внешние интерфейсы и проверяют ожидаемую реакцию системы через эти же интерфейсы. Почему именно интеграционные? Потому, что это единственное, что можно о них сказать наверняка: они по определению не могут быть модульными тестами. А все остальное: являются ли они одновременно приемочными, нагрузочными или еще какими - зависит только от общих плана/стратегии тестирования и той роли, которые эти тесты в них играют.
    Ответ написан
    Комментировать
  • Где пройти обучение Android разработке?

    @YuryBorodkin
    Android dev
    Тут недалеко, в принципе, как переплывешь Тихий океан - сразу направо.
    Если серьезно, пристойных курсов не видал - пока сам учился список тем онлайн курсов вызывал удивление, типа "1 урок - ставим android studio", "2 урок - качаем sdk".... "25 урок - делаем git clone, gradlew assembleDebug - вы разработчик!!!11111". Регулярно вижу вакансии - преподаватель курсов android - 15 к. Смешно.
    Сам читал "busy developers guide" by Mark Myrphy && писал приложения. Норм все, успешно работаю по направлению.
    Ответ написан
    2 комментария
  • Где пройти обучение Android разработке?

    goricvet
    @goricvet
    На платформе Udacity есть много бесплатных интерактивных курсов, посвященные android, причем сделаны они в кооперации с компанией Google. Уровни курсов - от новичка до профессионала. Во время прохождения курсов учащиеся создают всё более сложные приложения. За деньги можно пройти те же курсы (программа Nanodegree) - с менторами, фидбеком и прочими плюшками. Если пройти программу Nanodegree до дедлайна, то вернут половину стоимости. Для жителей США гарантируют работу или полный возврат денег.

    Здесь можно ознакомиться с дорожной картой изучения Android, предусматривающая в том числе вариант, когда учащийся уже знает Java:
    https://s3-us-west-1.amazonaws.com/udacity-content...

    Я сам прошел пару курсов, понравилось, буду учиться по ним дальше.
    Ответ написан
    Комментировать
  • Как разрешить ошибку "A JNI error has occurred, please check your installation and try again" при компиляции java программы?

    MrLinder
    @MrLinder
    Programmer C++
    В переменных средах у вас по списку первее стоит:

    C:\Program Files (x86)\Common Files\Oracle\Java\javapath


    а в конце путь до jdk:

    C:\Program Files\jdk\bin

    Поэтому операционная система когда ищет java.exe сперва находит тот что в ...\javapath и останавливается, а вам нужен тот что в ...jdk\bin. Поэтому вам надо в переменных средах ...\jdk\bin поставить раньше чем ...\javapath Примерно так:

    PATH=C:\Program Files\jdk\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\QuickTime\QTSystem\
    Ответ написан
    8 комментариев