• Как расшифровать ответ по GET запросу для парсинга?

    lxsmkv
    @lxsmkv
    Test automation engineer
    может поискать api которая предоставляет исходные данные? они же не провайдер данных, сами пользуются каким-то источником.
    Ответ написан
    Комментировать
  • Как избавиться от погрешности при делении суммы?

    lxsmkv
    @lxsmkv
    Test automation engineer
    echo round(9.375, 2);  // 9.38 
    echo round(9.375, 2, PHP_ROUND_HALF_DOWN); //9.37
    Ответ написан
  • Как автоматизировать процессы с помощью PHANTOM JS?

    lxsmkv
    @lxsmkv
    Test automation engineer
    PhantomJS предназначен для эмуляции действий пользователя на веб странице не используя при этом браузер. Применяется для автоматизированного тестирования веб приложений. В отличии от некоторых других инструментов он позволяет работать с динамикой сайта которая реализована на JS. Думаю он может помочь, да. Но это не точно. Зависит от приложения.
    Ответ написан
    5 комментариев
  • Создание робота-паука для сбора данных - где искать информацию?

    lxsmkv
    @lxsmkv
    Test automation engineer
    само это занятие называется web scraping или web harvesting, по этой теме инфы очень много в интернете.
    Ответ написан
    Комментировать
  • Реализация свойства как объекта: паттерн или антипаттерн?

    lxsmkv
    @lxsmkv
    Test automation engineer
    попробуйте написать для ваших объектов юнит-тесты - если это будет легко и удобно - архитектура годная.
    Ответ написан
    Комментировать
  • В каких ситуациях при тестировании может понадобиться Reflection?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Мы используем рефлексию для работы с объектами во время выполнения программы.
    Наша архитектура не всегда предоставляет доступ к объектам (в некоторых частях приложения нет фабрик, нет реестров объектов, нет синглтонов и пр.) либо не предоставляет интефейса для работы с ними. Но такая необходимость признак не очень хорошей архитектуры.
    Если вы хотите тестировать не запуская программу, то рефлексия в принципе и не нужна, только если вы хотите залезть "голыми руками в трансформаторный щиток" и знаете что делаете. Архитектура компонент должна предоставлять вам необходимые интерфейсы для тестирования. Иначе у вас классическая проблема с "testability".
    Такая проблема часто возникает когда сначала пишут приложение, а потом думают как бы его протестировать. Но уже поздно. И приходится рефакторить.
    Ответ написан
    Комментировать
  • Клавиатура для программиста, какую выбрать?

    lxsmkv
    @lxsmkv
    Test automation engineer
    для печати только механика.
    Ответ написан
    2 комментария
  • Как правильно использовать инкапсуляцию в Page Object паттерне?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Если интерфейс контроллера предназначен для простых смертных, лучше писать функции общего плана с параметрами. Так вы сведете к минимуму возможность ошибочного использования. Например чтобы выбрать предмет из списка его нужно сперва раскрыть раскрывание будет производиться внутри общей функции напр. selectItemFromListMatchingName(String n) путем вызова приватной функции openItemList() а она будет использовать приватную функцию isListOpen() чтобы не открывать уже открытый список. Править такие тесты очень легко. Вы чините код в одной маленькой функции один раз. И все тесты которые опираются на нее чинятся автоматически.
    Ответ написан
    Комментировать
  • Правильно ли объясняется в тексте почему в 1 кб 1024 байт?

    lxsmkv
    @lxsmkv
    Test automation engineer
    знаки классической печатной машинки (американской) ~ различных 94 знаков (укладываются в 7 бит) и один паритетный бит. Вот и 8.
    если представить себе матрицу памяти со строками и столбцами, что удобней адрессировать две квадратные решетки по 8x8 = 128
    или решетку 5х25 = 125 ?
    Ответ написан
    Комментировать
  • Чем можно протестировать работу поискового движка на корректность выдаваемых им результатов?

    lxsmkv
    @lxsmkv
    Test automation engineer
    зависит от требований которые закладывались в систему поиска.
    - толерантность к опечаткам - подмена символа или нескольких в строке
    - одинаковый ответ при одинаковом запросе.
    - реакция на длинный запрос (пытается ли она найти пересечения)
    - взять два ключевых слова в одной и обратной последовательности (я ввожу "sony apple" и "apple sony" но система выводит только продукты apple, наверно так не должно быть)
    - порог соответствия, что результаты ниже определенного требованиями порога не выводятся. (пишу "пленка" выводятся только 10-15 результатов и далеко не все продукты содержащие слово "пленка" - наверное так не должно быть)
    - как реагирует алгоритм если в базе очень мало записей? А если очень много записей с очень высокой схожестью?

    Чем тестировать ? У вас есть api, берите jmeter шлите через аpi запросы и проверяйте ответы.
    Или не jmeter a другой интрумент для тестирования web api. в конце концов pycurl или python + curl вариантов достаточно. Первоочередная сложность не в инструменте а в определении требований к системе поиска.

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

    Или возьмите студента-тестировщика он вам быстрее найдет все серьезные недочеты если вам критичен скорый выход на рынок. А автоматизацию подтянете по ходу дела.
    Ответ написан
    Комментировать
  • Как создать карту игры на Pygame?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Ответ написан
    Комментировать
  • Где можно выложить свой проект, так чтобы получить код ревью по нему?

    lxsmkv
    @lxsmkv
    Test automation engineer
    сказать честно, всем пофиг как устроен ваш код, если он делает что надо.

    Я поиграл в версию 1.5 (если это то о чем вы говорите) . Задумка игры интересная, у механики хороший потенциал.
    Общие замечания:
    1) нужно переводить на английский язык. Солидно будет если в игре будет система поддерживающая перевод сообществом.
    2) ИИ, ведет себя не умно, и гадает мое местоположение даже когда я не передвигался. (если вам удастся сделать сносное ИИ для этой игры это будет классно)
    3) консольный ввод очень нудно и муторно, нужна какая-то графическая оболочка и управление мышью. Это быстрее
    4) статистика боя и абстрактные "очки", не то ради чего я играю в нее (работайте над геймплеем - на очки можно купить какую то броню, оружие, патроны для оружия, прокачать точность, чтобы наносить больше урона и т.п.)
    5) солидно будет если у вас код будет с юнит-тестами
    6) солидно будет если будет инструкция как запустить код у себя на компьютере
    7) солидно будет если у вас будет автоматическая система сборки
    8) если идея игры ваша, хорошо будет написать диздок.
    9) такую игру надо делать браузерной либо под андроид.
    Баги:
    1) когда от удара здоровье уходит в минус он пишет негативное значение, а должен писать ноль.
    2) лог

    Ваш ход.
    Что будете делать: атаковать (а) или передвигаться (п)?
    а
    Введите предположительное местоположение противника (от 1 до 6):
    3

    Вы попали по врагу и нанесли ему урон 2 ед.
    Очки здоровья противника после Вашей атаки:
    5/10

    Ход противника
    Противник решил передвинуться...
    Враг передвинулся на энную позицию.

    Ваш ход.
    Что будете делать: атаковать (а) или передвигаться (п)?
    а
    Введите предположительное местоположение противника (от 1 до 6):
    3

    Вы попали по врагу и нанесли ему урон 5 ед.
    Очки здоровья противника после Вашей атаки:
    0/10
    получается я попал по врагу он передвинулся и я ударил в то же место и снова по нему попал. (сложность была выбрана высокая)

    Короче, этот простенький проект можно облепить так, что он покажет что вы на практике знакомы с процессами разработки от идеи до релиза.
    Ответ написан
    5 комментариев
  • Добавить счетчик в имя переменной?

    lxsmkv
    @lxsmkv
    Test automation engineer
    m1 = [0,2,4,6,8]
    m2 = [1,3,5,7,9]
    i= 2
    console.log(eval("m"+i)[3])

    напишет 7.
    Ответ написан
    Комментировать
  • Есть ли книги по мануальному/автоматическому тестированию веб-проектов и прикладного ПО?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Для начинающих:
    "Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах" (Роман Савин) - для тех кто хочет понять, а что же такое тестирование и зачем оно нужно. Написано очень доступным языком.

    Для продвинутых:
    "Lessons learned in software testing" (Kaner, Bach, Pettichord) - никакой воды только жизненные примеры что работает а что нет. Как не наступить на грабли. На эту книгу можно смело положиться на практике. Самому приходилось аргументировать не-тестировщикам сложности тестирования, и пригодилось очень.

    "A practitioner's guide to software test design" (Lee Copeland) - "Матчасть" так сказать.

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

    Ну и конечно слушать лекции Джеймса Баха на ютубе. Он вообще вдохновил меня пойти в тестирование.

    И еще по автоматизации могу порекомендовать вики test automation patterns (Dorothy Graham) - просто "экстракт" практической пользы.
    Ответ написан
    Комментировать
  • Не работает определятор победителя.: ) где ошибка?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Я беру поле номером 1
    
    	 O | X | X
    	 ----------
    	   | X | O
    	 ----------
    	 O |   | X
    Твой ход. выбери одно из полей (0 - 8):  3
    ладно...
    
    	 O | X | X
    	 ----------
    	 O | X | O
    	 ----------
    	 O |   | X
    Я беру поле номером 7
    
    	 O | X | X
    	 ----------
    	 O | X | O
    	 ----------
    	 O | X | X
    ничья
    ничья

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

    Мне кажется return None в winner() нужно сдвинуть влево, чтобы он был не в цикле а в конце функции.
    И юниттесты тоже помоглы бы, с их помощью можно потестировать расчет победителя задавая конфигурацию доски.
    Ответ написан
    1 комментарий
  • Как изменить пример так что бы сервер ждал когда клиент подключится?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Прописать в ServerSocketHints переменную acceptTimeout = 0
    Ответ написан
    Комментировать
  • Как правильно получить данные с XML?

    lxsmkv
    @lxsmkv
    Test automation engineer
    другой способ, это jaxb unmarshalling (и вы забудете про парсинг xml как про страшный сон :)
    возмите схему файл xsd по адресу xmlns="maps.yandex.ru/ymaps/1.x"
    из нее через jaxb плагин для эклипс сгенерируйте java классы, и читайте xml с помощью этих классов/методов.
    в любом случае рекомендую разобраться с jaxb - пригодится.

    Или если хочется попарсить, можно попробовать jsoup библиотеку. Она на мой вкус попроще будет чем jdom
    Ответ написан
    Комментировать
  • Есть ли тома книг Randall Hyde: Write great code на русском?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Значит это не та книга ради которой стоит мучаться с переводом. Все действительно стоящие книги были переведены на русский язык. (Имя автора на хабре не упоминается. А это о чем-то говорит. )
    Ответ написан
    Комментировать
  • Почему я создаю одинаковые объекты а у них разные хэшкоды?

    lxsmkv
    @lxsmkv
    Test automation engineer
    на картинке неудачно используют обозначение object1 object2.
    На самом деле имеется ввиду если ссылка указывает на один и тот же объект, то хешкод будет идентичным.
    код
    public class Main{
      public static void main(String [] args){
        H h1 = new H();
        H h2 = new H();
        System.out.println(h1.hashCode());
        System.out.println(h2.hashCode());
        h2 = h1;
        System.out.println(h1.hashCode());
        System.out.println(h2.hashCode());
      }
    }
    class H{
      int a = 2;
      int b = 3;
    }

    output
    1252169911
    2101973421
    1252169911
    1252169911
    Ответ написан
    Комментировать
  • Как загрузить уроки из Thinking in Java в Eclipse?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Там файл есть Eclipse.py этот скрипт конвертирует папку в проект для Eclipse. Тогда его можно будет импортировать. Потом он будет ругаться что нет "cloning", "discovering" и др. путей, открываем .classpath файл и убираем/комментируем эти строки
    вот так у меня выглядит файл
    .classpath
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
    	<classpathentry excluding="polymorphism/|holding/|flow/|exceptions/|concurrency/|typeinfo/|innerclasses/|arrays/|interfaces/|reusing/|initialization/|cloning/|io/|containers/|generics/|xml/|hiding/|io/xfiles/|passing/|gui/|annotations/|enumerated/|discovering/|object/|strings/|swt/" kind="src" path=""/>
    	<classpathentry kind="src" path="annotations"/>
    	<classpathentry kind="src" path="arrays"/>
    	<classpathentry kind="src" path="concurrency"/>
    	<classpathentry kind="src" path="containers"/>
    	<classpathentry kind="src" path="enumerated"/>
    	<classpathentry kind="src" path="exceptions"/>
    	<classpathentry kind="src" path="generics"/>
    	<classpathentry kind="src" path="gui"/>
    	<classpathentry kind="src" path="holding"/>
    	<classpathentry kind="src" path="initialization"/>
    	<classpathentry kind="src" path="innerclasses"/>
    	<classpathentry kind="src" path="interfaces"/>
    	<classpathentry excluding="xfiles/" kind="src" path="io"/>
    	<classpathentry kind="src" path="io/xfiles"/>
    	<classpathentry kind="src" path="object"/>
    	<classpathentry kind="src" path="polymorphism"/>
    	<classpathentry kind="src" path="reusing"/>
    	<classpathentry kind="src" path="strings"/>
    	<classpathentry kind="src" path="swt"/>
    	<classpathentry kind="src" path="typeinfo"/>
    	<classpathentry kind="src" path="xml"/>
    	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/eclipse"/>
    	<classpathentry kind="output" path="bin"/>
    </classpath>



    возможно перед этим нужно сборку сделать через ant. но build файлы написаны под java 1.5 так что то еще удовольствие будет все это заставить работать.
    еще зависимости нужно установить как указано в официальной инструкции в п. 11

    чтоб на русском инструкцию найти это врядли. Не думаю что кто-то стал бы ее переводить она не сложная.
    гугл переводчик вполне с ней справляется
    Ответ написан
    1 комментарий