• Автоматизация тестирования Android-приложений с помощью Robotium и Spoon

    • Tutorial
    В рамках внутренней активности с кодовым названием e-Lectures мы продолжаем выкладывать небольшие видео от наших мобильных разработчиков.

    В этой лекции Степан stepango Гончаров расскажет об инструментах и методиках, применяемых в компании e-Legion для автоматизированного тестирования Android-приложений.


    Презентация

    В комментариях делитесь своими впечатлениями о докладе и рассказывайте, как вы тестируете Android-приложения.
    • +40
    • 18,9k
    • 9
  • Тестирование мобильных приложений: tips & tricks

      Наша новая статья представляет собой список рекомендаций и советов. Из неё вы узнаете:

      • как облегчить процесс тестирования мобильных приложений в целом;
      • о специфике работы с сетью, внутренними и внешними сервисами, платформах iOS и Android;
      • какие процессные решения и изменения позволят вам развиваться быстрее и вводить культуру тестирования в отделе разработки;
      • какие существуют полезные инструменты и решения для тестирования, отладки, мониторинга и миграции пользователей.

      Начинающим тестировщикам советы могут помочь расти быстрее, а более опытным — упорядочить знания. Статья также будет полезна разработчикам, продакт-менеджерам и менеджерам проектов, словом — всем, кто хочет улучшить качество продукта и наладить взаимодействие между отделами.

      Как облегчить процесс тестирования?


      1. Используйте принципы эвристики и мнемоники — они помогают удержать в голове все аспекты, которые нужно учесть при тестировании фичи или приложения.

      2. Скриншоты, логи и видео — лучшие аргументы тестировщика!
      К сожалению, с логами «общения» с сервером зачастую не всё так гладко, как с клиентскими логами. Обычно они добавляются скорее для удобства разработчика при отладке работы с сервером, чем для работы тестировщика.
      Читать дальше →
    • Семь удивительных «возможностей» Javascript

      • Перевод
      За последние несколько месяцев я сделал несколько доработок для JSHint, в основном с целью изучить ES6 (я особенно горжусь тем, как переделано обнаружение областей видимости для переменных). Во время этого процесса я наткнулся на несколько вещей, которые меня удивили — в основном, в ES6, однако есть и кое-что про ES3, что я до этого никогда не использовал.

      Break из любого блока


      Наверняка вы знаете, что в любом цикле можно использовать ключевые слова break и continue — это стандартная возможность в современных языках программирования. Однако не все знают, что циклам можно давать метки и с их помощью прерывать любой конкретный цикл:

      outer: for(var i = 0; i < 4; i++) {
          while(true) {
              continue outer;
          }
      }
      
      Читать дальше →
    • Быстрый security-oriented fuzzing c AFL

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

        «Фаззинг – методика тестирования, при которой на вход программы подаются невалидные, непредусмотренные или случайные данные.» © Habrahabr



        Читать дальше →
        • +14
        • 9,4k
        • 7
      • Играем мускулами. Методы и средства взлома баз данных MySQL



          MySQL — одна из самых распространенных СУБД. Ее можно встретить повсюду, но наиболее часто она используется многочисленными сайтами. Именно поэтому безопасность базы данных — очень важный вопрос, ибо если злоумышленник получил доступ к базе, то есть большая вероятность, что он скомпрометирует не только ресурс, но и всю локальную сеть. Поэтому я решил собрать всю полезную инфу по взлому и постэксплуатации MySQL, все трюки и приемы, которые используются при проведении пентестов, чтобы ты смог проверить свою СУБД. 0day-техник тут не будет: кто-то еще раз повторит теорию, а кто-то почерпнет что-то новое. Итак, поехали!
          Читать дальше →
        • Разработка простого плагина для JIRA для работы с базой данных

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

            Плагин буду делать для джира 4.4.4. Для начала создадим пустой проект. Проект можно создать с помощью Atlassian SDK, а затем открыть в любимой IDE. В данном случае я буду работать с Netbeans. Файловая структура проекта будет выглядеть следующим образом:


            Читать дальше →
            • +9
            • 15,5k
            • 5
          • Каких ответов я жду на собеседовании по тестированию

            Я провожу собеседования на тестировщиков. У меня иногда болит голова.

            Долго собирался написать статью… И вот, наконец, выполнил свое намерение. Вопросы, поднимаемые в статье, обсуждались уже не раз и не два, но усердные поиски компиляции ответов на эти вопросы так и не увенчались успехом. Но, как подсказывает мой опыт, такая компиляция очень нужна. Прежде всего она требуется юниорам, ибо в сети по запросу «тестирование» на них (соискателей) обрушивается огромный объем информационного мусора, который плохо структурирован и часто противоречит сам себе.
            Читать дальше →
          • Лекции Технопарка. 1 семестр. Алгоритмы и структуры данных

            • Tutorial
            Очередной пост в рамках нашего цикла лекций Технопарка. В этот раз мы предлагаем вашему вниманию курс, посвящённый алгоритмам и структурам данных. Автор курса — Степан Мацкевич, сотрудник компании ABBYY.

            Лекция 1. Основы


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


            Читать дальше →
          • 12 игр, которые обучают детей программированию

            • Перевод


            Программирование сейчас очень популярно. По всему миру 36 миллионов детей принимают участие в мероприятиях движения «Час программирования». Цель этих мероприятий – помочь детям стать активными, а не пассивными пользователями технологий, а также получить знания, которые в будущем могут помочь устроиться на хорошую работу в нашем все более и более техническом мире.

            Даже если ваши дети не хотят в будущем зарабатывать на жизнь программированием, базовое понимание принципов программирования развивает мышление и, в дальнейшем, ребенок лучше справляется с решением возникающих задач. Билл Гейтс когда-то сказал: «Если вы учитесь создавать программы, это развивает ваш разум, помогает вам лучше мыслить и создает образ восприятия вещей. В целом, я думаю, что человеку это будет полезно вне зависимости от сферы его деятельности».

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

            Читать дальше →
          • Автоматизация тестирования iOS-приложений с применением Calabash и Cucumber



              В процессе разработки любого приложения наступает момент, когда в связи с ростом функциональности трудозатраты на регрессионное тестирование становятся непомерно велики. Другая причина значительной трудоемкости тестирования iOS-приложений (так же как и любых других мобильных приложений) — разнообразие линейки поддерживаемых устройств и версий ОС, необходимость тестирования в альбомном и портретном режимах, а также при различных условиях соединения с интернетом. Стремление оптимизировать процесс тестирования приводит нас к необходимости его полной или частичной автоматизации.

              В этой статье я расскажу о том, как мы автоматизируем тестирование наших приложений (ICQ и Агент Mail.Ru), поделюсь нашими наработками в этой области и упомяну о проблемах, с которыми мы сталкиваемся.
              Читать дальше →
            • Эффективные ревью кода: 9 советов от исправившегося скептика

              • Перевод
              Я знал теорию. Ревью кода помогает:
              • Находить баги
              • Обеспечивать читаемость и поддерживаемость кода
              • Распространять знания кода на всю команду
              • Быстрее входить в работу новым членам команды
              • Показывать всем новые подходы к решению задач

              Или, это всего лишь пустая трата времени. По крайней мере, таким было мое первое впечатление от ревью кода.
              Читать дальше →
              • +13
              • 18,6k
              • 5
            • Уменьшаем количество ошибок с помощью чек-листа Code Review

              • Перевод
              В нашей статье об эффективных ревью кода мы рекомендовали использовать чеклист. Чеклисты (контрольные списки) — это великая вещь в ревью: они гарантируют, что ревью действительно прошло через вашу команду. Также они способствуют выявлению и решению общих трудностей.

              Исследование, проведенное Software Engineering Institute, показывает, что программисты делают 15-20 распространенных ошибок. Добавив такие ошибки в чеклист, вы можете быть уверены, что заметите их в момент появления и поможете от них избавиться надолго.

              Чтобы вам было от чего отталкиваться, вот вам список типичных пунктов:
              Читать дальше →
            • Шестиногий робот двигается почти как живой

                Робот PhantomX от Trossen Robotics обладает впечатляющей гибкостью и подвижностью и способен бегать со скоростью около одного метра в секунду. Он работает под управлением Arduino-совместимого контроллера, и может управляться дистанционно с пульта или компьютера. Робот уверенно передвигается по пересечённой местности.



                Стоимость комплекта для сборки робота составляет 1200 долларов.
              • Дания: страна победившего здравого смысла

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

                  «Доверяй, но проверяй» — это про Данию.
                  Читать дальше →
                • Облачные автотесты Selenium + Ubuntu (пошаговая инструкция)

                  В данной публикации я расскажу о том, как подружить Linux (ubuntu server 14.04) с Selenium Server v.2.43.1, о подводных камнях и зачем мне в облаке понадобился сервер для автоматических тестов.

                  image

                  Не так давно на Хабре была опубликована статья «Автотесты – барское дело». Я считаю, что в команде, где более 2-х разработчиков работают над одним проектом — это просто необоходимая вещь. Когда я работал один, обходился без тестов. Проект писался с нуля, код я знал как свои 5 пальцев. Компания росла очень быстро — в месте с ней и количество задач. Появились новые разработчики, тут то и начались проблемы. Пишем один функционал — отваливается другой. Не подумайте, такое случалось редко, но такие ошибки стоили дорого и нужно было с этим бороться. В это время я принял решение ввести автотесты в процесс разработки, о чем ни капли не жалею.

                  Сейчас я решил еще больше оптимизировать процесс тестирования. Идея в том, чтобы автоматически запускать тесты при поднятии функционала на дев, продакшин. Преимущества такого подхода очевидны и о них уже писали не раз. Как минимум — это моя уверенность в том, что тесты отработали и при заливке на продакшин ничего не сломается.
                  Читать дальше →
                  • +10
                  • 27,2k
                  • 9
                • Обзор бесплатных инструментов для пентеста web-ресурсов и не только v2

                    Как-то давно я уже писал об этом, но немного скудно и сумбурно. После я решил расширить список инструментов в обзоре, добавить статье структуры, учесть критику (большое спасибо Lefty за советы) и отправил ее на конкурс на СекЛаб (и опубликовал ссылку, но по всем понятным причинам ее никто не увидел). Конкурс закончен, результаты объявили и я с чистой совестью могу ее (статью) опубликовать на Хабре.

                    Бесплатные инструменты пентестера веб-приложений


                    В данной статье я расскажу о наиболее популярных инструментах для пентестинга (тестов на проникновение) веб-приложений по стратегии «черного ящика».
                    Для этого мы рассмотрим утилиты, которые помогут в данном виде тестирования. Рассмотрим следующие категории продуктов:

                    1. Сетевые сканеры
                    2. Сканеры брешей в веб-скриптах
                    3. Эксплойтинг
                    4. Автомазация инъекций
                    5. Дебаггеры (снифферы, локальные прокси и т.п.)

                    Читать дальше →
                  • Секреты Metasploit

                    Вступление


                    В 2003 году, хакеру, известному как «HD Moore», пришла идея разработать инструмент для быстрого написания эксплоитов. Так был рожден хорошо известный во всех кругах проект Metasploit. Первая версия фреймфорка была написана на языке Perl, содержавшая псевдографический интерфейс на базе библиотеки curses.

                    К 2007 году разработчики консолидировались, основав компанию Metasploit LLC; в это же время проект полностью переписали на Ruby и, частично на Си, Python и Ассемблер.

                    В октябре 2009 года, проект Metasploit был приобретен компанией Rapid7 с условием, что HD Moore останется техническим директором фреймворка, на что согласилась компания Rapid7.
                    Читать дальше →
                  • 25+ видеоуроков по Android для начинающих

                    • Tutorial

                    Приветствую вас, уважаемый хабрачеловек!
                    Предлагаю вашему вниманию бесплатно серияю видеоуроков в котрых рассмотренно базовые понятия разработки под Android.
                    Читать дальше →
                  • Атаки на отказ в обслуживании: практика тестирования

                      Пост — резюме


                      Думаю, начать стоит с того, что в последнее время все больше заказчиков обращаются не только за тестированием на проникновение, но и за проверкой устойчивости их сервисов к атакам на отказ в обслуживании, чаще всего — веб-сайтов. И на нашей практике пока не было ни одного случая, чтобы реальный работающий сайт (не заранее подготовленная площадка) не вышел из строя, в т.ч. находящийся под разными защитными системами. И этот пост — резюмирование текущего опыта (D)DoS тестирования разными методами совершенно разных инфраструктур (от банков до типичных корпоративных сайтов).
                      Читать дальше →