Показаны сообщения с ярлыком java. Показать все сообщения
Показаны сообщения с ярлыком java. Показать все сообщения

вторник, 16 апреля 2019 г.

Лезем в java-код для локализации бага (видео и ДЗ)

Одна из тем моего курса по локализации багов — проверка по коду. Если разработчики заботятся о чистоте кода, то тестировщик с минимальными навыками ЯП может туда залезть, прочитать и даже внести исправления!

Я рассказываю на примере приложения folks, как можно "прочитать" объект, подсмотреть в схему создания БД и сделать какие-то выводы из этого. Сразу предупреждаю — программированию не учу! =)


Домашнее задание на просмотр кода на курсе необязательное — только для тех, кому это интересно. Но ребятам понравилось! Причем тем ребятам, которые впервые видят фолкс:

вторник, 3 апреля 2018 г.

Folks — open-source проект с API-тестами на Java



Знакомьтесь, это Folks! Проект с открытым исходным кодом, сделанный на основе реальной системы. И в этом его ценность — это не просто абстрактный тестовый проект, написанный под студентов, неприменимый в реале.

Ссылка на документацию — https://testbase.atlassian.net/wiki/spaces/FOLKS/overview (доступна без авторизации)

Что интересного есть в проекте:
  • Требования на поиск — можно проверить свои познания в тест-дизайне и тест-анализе.
  • Фреймворк автоматизации — самое важное, что дает система. Возможность пощупать реальный фреймворк автоматизации. Увидеть, что автотесты — это не обязательно чистый код, это могут быть просто... Эксельки. Да-да!
  • Код есть, GUI нет — тоже важное свойство. Если вы хотите проверить какую-то теорию, то только через автотесты. Для тестировщика важно уметь придумывать тесты ДО того, как их можно будет пощупать, но это тяжело. Осилите?))
  • SOAP и XSLT — добавили в систему недавно, чтобы поиск можно было дергать и по SOAP в том числе. Сделано под будущий курс интеграционного тестирования, но пользоваться можно уже сейчас!
Тут и свои навыки тест-дизайна можно проверить, и баги в коде найти, и поавтоматизировать попробовать... Welcome!

См также:
Автотесты на уровне API для Java-приложений — доклад с SQA Days, где я рассказываю принципы, заложенные в тестовый фреймворк автоматизации.


В дальнейшем на примере фолкс я планирую рассказать для своих студентов, что такое система контроля версий и все такое.

Также буду делать дополнительные обучающие видеоролики, чтобы еще проще было начать автоматизировать в фолкс. Буду показывать, как это все делается. Ждите Smile :)

среда, 20 сентября 2017 г.

Подключаем Lombok и выкидываем унылые геттеры / сеттеры в Java

Когда мы описываем модель данных в java-классе, это выглядит примерно так:

============================

private String name;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

============================

Сначала указали переменную, а потом идут геттеры и сеттеры для нее. Когда переменных много, java-класс раздувает.
Раздутый java-класс

Но если подключить Lombok, то этой проблемы не будет и ровно тот же самый код будет выглядеть так

понедельник, 4 ноября 2013 г.

Folks. Исходный код и инструкция по установке

Эта статья актуальна для версии folks 1.0. Актуальная версия лежит в bitbucket, все инструкции — в конфлюенсе

Коллеги, всем привет!

9 ноября в 12.45 я выступаю на конференции SQA Days 14 с докладом Автотесты на уровне API для Java-приложений.

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

Приложение называется Folks - оно содержит в себе информацию о людях, которые приехали на конференцию, позволяя по этой самой информации искать, сортировать и фильтровать данные.

Исходный код приложения можно скачать по этой ссылке.
Source code - download.

Далее описаны:
  • Установка приложения.
  • Запуск теста на поиск.

Установка приложения

Установка очень простая - скачали архив, распаковали.
Подключили библиотечки, которые лежат в папке lib, как внешние библиотеки - все, можно запускать!

Но я, пожалуй, распишу подробнее для любимой среды разработки:

1. Скачиваем и устанавливаем среду разработки IntelliJ IDEA (есть бесплатная версия)
2. Скачиваем и устанавливаем последнюю версию jdk. Обращаю внимание - нам нужно именно JDK, не JRE!
3. Запускаем IDEA.
4. File - Open. Открываем pom.xml из распакованного проекта folks.
5. File - Project Structure. Можно, кстати, открыть по горячим клавишам или по быстрой кнопке на панели
6. Настраиваем Java.
Закладка Project в структуре - нажимаем new и указываем путь к скачанному и установленному jdk, получится примерно так - C:\Program Files\Java\jdk1.7.0_40


7. Настраиваем внешние библиотеки.
Закладка Modules в структуре - вначале удаляем оттуда все лишнее, оставляя только java (когда открываем как maven-проект, там может оказаться куча всяких зависимостей, которые нам не нужны). Подчистив все, нажимаем на "+" - кнопку добавления библиотек.



В выпадающем меню нажимаем "Jars or directories".


А дальше выбираем все, что лежит в folks/lib.


Получаем такой вид


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

Жмем Apply - Ok и теперь наш код больше не светится красным, он готов к запуску!

Запуск теста на поиск.

Открываем java-класс -  C:\folks\src\test\java\ru\olgak\folks\service\SearchCase.java

Встаем на название класса, нажимаем правой кнопкой мыши и запускаем - Run 'SearchCase'


Наслаждаемся результатом Smile :)

А после конференции я более подробно распишу, как писать сам java-код. Терпение! И все будет Smile :)

пятница, 29 марта 2013 г.

Java - разомни мозги!

Просто не смогла удержаться. Когда был выпущен журнал по тестированию, раздаваемый во время SQA Days, у него сзади на обложке был напечатан кроссворд по тестированию. Ух, какая классная фишка - помню, мы сидели с коллегами в субботу на работе, на уютном кожаном диванчике - и гадали кроссворд Smile :)

Поэтому представляю вашему вниманию нагло стыренный из "Изучаем Java" кроссворд. Да, он не совсем по тестированию. С другой стороны, наши автоматизаторы сейчас пишут в основном на java, судя по динамике тем на форуме software-testing... В общем, наслаждайтесь!

 

четверг, 20 сентября 2012 г.

IDEA - как остановиться в брек-поинте только при определенных условиях?

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

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

Потом вы опять не понимаете, "что тут происходит". Опять зовете разработчика... И так по кругу. Рано или поздно научитесь делать это сами Smile :)

Я расскажу про интересный момент работы в IDEA.

Как известно, для дебага программы необходимо поставить брек-поинты на тех строках, в которые мы хотим попасть, чтобы посмотреть на входные / выходные параметры.

Но, допустим, что в эту строку мы попадаем часто - в программе стоит цикл, которые бегает по всем полям формы. А нам нужно, например, проверить только поле "surname".

Какие варианты? Ставим брекпоинт на строку и сидим, жмем resume (программа бежит дальше до следующей точки останова, в нашем случае, возвращается в начало цикла), пока в поле fieldName попадется нужное нам значение. Тут главное - не прозевать момент и на автомате не нажать на кнопку продолжения. Иначе придется начинать сначала.

Есть и другой вариант:

1. Нажимаем на кнопку "View Breakpoints"



2. Открывается окно "Breakpoints", в котором перечислены все установленные в коде брек-поинты.

3. Находим нужную нам строку (в которую мы хотим попасть только при определенном условии) и устанавливаем галку "Condition"



4. Вводим условие. Нам нужно, чтобы поле fieldName =  "surname". IDEA подсказывает, что мы можем иметь в виду.



5. Но, так как fieldName - строка, условие будет выглядеть так:
fieldName.equals("surname")
Все! Закрываем окно (сохранение автоматическое) и дебажим. А в указанную строку мы попадем тогда и только тогда, когда поле fieldName =  "surname"

четверг, 21 июня 2012 г.

Как снять Thread Dump с помощью Java VisualVM


Thread dump - дамп потоков, нужен, чтобы понять, почему ваше приложение зависло и чем оно сейчас занимается в "подвешенном" виде.
Jboss - Open Source Java application server reignited. Другими словами, это то,  с помощью чего запускается java приложение.
Чтобы снять thread dump, необходимо:
  • Скачать Java VisualVM - http://visualvm.java.net/download.html
  • Распаковать архив и запустить приложение (находится в папке bin)
  • В левой области под названием “Applications” выбрать jboss.

  • Перейти на закладку “Threads” и нажать на кнопку “Thread Dump”.

  • Полученный дамп откроется в окне VisualVM, а также появится в дереве приложений. В дереве приложений необходимо нажать на «+» около Jboss-a, щелкнуть правой кнопкой мыши по дампу и нажать «Сохранить как».