• Оптимальный набор тест-кейсов для покрытия клиент-серверной части приложения?

    lxsmkv
    @lxsmkv
    Test automation engineer
    сервер для вас - черный ящик в данном случае. поэтому единственное место где можно проверить реакцию на стимул это клиент. Т.е. вы можете делать только end-to-end тесты. Но без возможности контроллировать сервер, многие сценарии проверить не удастся. Например, если сервер шлет оповещение клиенту за 15 минут до начала события (допустим это напоминалка). Чтобы прокрутить часы вперед и проверить срабатывание и обработку напоминания (напр. если мы заглушили оповещение оно не должно больше приходить) нужен доступ к серверу.
    С другой стороны, чтобы спроектировать тест сервер не нужен, тест проектируется в голове, а вот то, что его нельзя будет выполнить без специальных возможностей это нужно донести до заказчика.
    Ответ написан
  • Есть ли ISO описывающий позиции в отделе обеспечения качества?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Есть такая бумажка: сертификат ISTQB Advanced Level Test Manager.
    В него можно тыкать и говорить что вы QA Manager.
    Ответ написан
  • Как тестирование систему управления производством компьютерной графики?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Вы хотите проверить, что скрипт по заданным данным на выходе выдает ожидаемый результат? Это можно, посмотрите как сделаны регрессионные тесты для утилиты GraphViz dot https://github.com/ellson/MOTHBALLED-graphviz/tree... они делают прогон на тестовых файлах и сравнивают разницу с эталонными файлами.
    Писать автоматические проверки на работу всего пайплайна я бы не стал. Хотя и такое делается https://github.com/jenkinsci/JenkinsPipelineUnit
    И на докер можно тесты писать https://medium.com/@aelsabbahy/tutorial-how-to-tes...
    Все можно, но чем больше у вас кода тем больше необходимости тестировать тестирующие скрипты. А надо вкладывать силы в продукт, потому что продукт приносит деньги а не тонны тестировочного кода. Какой-то минимум проверок - да. Главное не увлекаться.
    Ответ написан
  • Раскритикуйте мобильное меню - имеет право существовать?

    lxsmkv
    @lxsmkv
    Test automation engineer
    для мобильной страницы это одно из адекватных решений, до кнопки можно дотянуться пальцем. Так сделано на хабре. Можно еще сделать чтобы кнопка плавала при скролле. либо меню было зафиксированно. Также видел вариант, что при свайпе в сторону открывается меню.
    Ответ написан
  • Чему учиться для работы из дома?

    lxsmkv
    @lxsmkv
    Test automation engineer
    А фирм нет где нужно какую-нибудь оптимизацию делать? Это ведь прямой профиль экономиста. Грузоперевозки, склады. Закуп. Процессы оптимизировать. Маркетинг. Планирование смен. Бухгалтерия. Налогообложение. Да не перечислить всего. У экономиста с дипломом выбор задач колоссальный. Конечно если в университете ничему из этого не научили, то обидно конечно. И программистом становиться не выход. На это уйдет дофига времени. Идите тестировщиком, это единственная специальность где порог входа самый низкий, и логика вам там тоже пригодится. А если постараться можно стать хорошим специалистом.
    Ответ написан
  • Как назвать булеву переменную которая указывает делать что-то или не делать?

    lxsmkv
    @lxsmkv
    Test automation engineer
    filteringOptionEnabled - включена ли опция пользователем.
    если говорить should_ то получается должна быть включена и не до конца сразу ясно это ее текущее состояние или желаемое.
    если говорить active - это активен ли фильтр, он может быть включен пользователем в опциях но не быть активным, потому что в данный момент нечего фильтровать.

    Видел булеву переменную она называлась EnabledDisabledServiceState - Это означало ... щас мозги в кучу соберу .. оключил ли пользователь сервис, при этом показывалась соответствующая иконка, что сервис отключен пользователем.
    Ответ написан
  • Как создать видимость активности компьютера в интернете?

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

    lxsmkv
    @lxsmkv
    Test automation engineer
    --
    Как перестать беспокоиться и начать писать тесты

    Задача тестов отвечать для Вас на вопросы. Совершенно неважно к какой вымышленной категории Вы эти тесты отнесете.
    Важно чтобы при проектировании теста Вы учитывали, что тест доказывает и чего он не доказывает либо не полностью доказывает. Какую информациою он Вам дает и какую не дает. На что он указывает и на что не указывает. У меня масса таких тестов про которые можно сказать "это не 100% гарантия, но лучше чем ничего".
    Чем меньше Вы будете беспокоиться о том, к какому типу относятся Ваши тесты, тем быстрее Вы начнете думать о том, а что же я хочу проверить и как я могу это проверить. И просто будете это проверять.

    Я читал достаточно разных определений, и скажу что нет единого мнения о том, что как называть. Но есть и хорошая новость - названия не помогут Вам сделать хороший тест. Помогут только правильные вопросы к системе: "в чем я хочу убедиться" и "как я могу в этом убедиться". И поскольку убедиться во всем досконально нехватит никаких ресурсов, Вы начнете искать для себя приемлемые компромиссы, между информационной ценностью тестов и скоростью/легкостью их написания и поддержки.

    Чтобы Вы лучше поняли бессмысленность всех этих определений:
    Лакмусовая бумажка тоже тест - это интеграционный тест или юнит тест, или это приемочный тест? Где границы системы? Он просто говорит Вам: "Да, уровень кислотности не выше чем". А вопрос к этому ответу соответственно: "Не превышает ли уровень кислотности значение х?". Вам важна информация ("что я хочу знать") и способ получить эту информацию - лакмусовая бумажка.
    Ответ написан
  • Тестирование продукта на фрилансе?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Опять же тестирование это отдельная профессия

    Есть профессия - инженер. Инженер это человек кторый в состоянии обдумать все нюансы. Инженер и разработать может и спецификацию написать и протестировать.
    Если вам в мастерской меняют колеса, а на трассе у вас слетают болты - и монтажник скажет, мол "Ну, болты у вас не стандартные. Откуда мне было знать, что для них другой момент нужен. Надо было сразу сказать." (история из жизни)
    Тут сразу возникает возмущение, неправда ли? Мол, как же так, ты же мастер, или что.
    Так же заказчик отностися к исполнителю в IT - он ожидает качественной, профессиональной работы.
    Конечно заказчик хочет все дешево и быстро, но это задача профессионала, обьяснить ему, что входит в стоимость услуг, задать ему необходимые вопросы. Если вы заказываете вязку свитера, он должен быть полосатый, сине-белый, а вам делают полоски вдоль хотя вы рассчитывали на поперек - это чья проблема? Проблема исполнителя. Заказчик рассчитывает, на то, что его обо всех нюансах спросят. Оффициант когда принимает заказ на кофе спрашивает про сливки и сахар. Это профессиональная обязанность. И если принесут не то, что вы хотели, ваш заказ меняют за счет заведения. Без дискуссий.
    Фриланс тем и сложен, что исполнитель должен совмещать в себе несколько ролей.
    Ответ написан
  • Для чего существуют другие парадигмы программирования?

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

    lxsmkv
    @lxsmkv
    Test automation engineer
    Это нормально, другие делают вид что поняли, кивают, а потом выясняется что они не до конца все поняли. Но тогда уже поздно. Лучше сразу дать понять что ты не до конца понимаешь. Переспросить, переформулировать.
    Я вообще по жизни угараю с совещаний - всегда такое впечатление что все все поняли - но оказывается что никто ничего до конца не понял, все просто покивали головами чтобы не казаться дураками. Никогда не надо стесняться спрашивать, хоть это и не всегда удобно. Как говорят японцы: "Спросить — стыдно на минуту, а не знать — стыд на всю жизнь"
    Не стесняйтесь тормозить разговор. Типа:
    - Можно я перескажу своими словами как я это понял.
    - Я хотел бы лучше понять для чего это нужно? Какую проблему это решает?
    Особенно если вы новичок никто не будет предьявлять к вам завышенных требований, а кто-то даже наборот отметит тягу к знаниям. Нет ничего хуже когда человек до конца не разбираясь делает вид что он шарит и ему все по-плечу (Эффект Даннига-Крюгера).

    Есть еще т.н. проблема XY xyproblem.info - обязательно ознакомьтесь. Я однажды с удивлением выяснил, что страдаю этим синдромом. Не обьясняю контекст задачи, а задаю конкретный вопрос. Это ставит людей в тупик, и в этом нет ничего хорошего. Со временем я приучил себя обьяснять проблему так чтобы мне давали развернутый ответ. Главное не бояться перегрузить людей деталями. Они, эти детали, как правило сильно меняют дело.
    Вот шаблон с контекстом:
    - Я делаю ... у меня есть ... и для того чтобы сделать ... я использую ... . Но если мне нужно ..., например чтобы .... то этот подход не работает. Как можно сделать лучше?

    Также я приучил себя всегда стараться дать пример, на примере всегда быстрее и четче доходит. И сразу есть контекст на котором можно проверить ответ. Не жалейте времени составляя хороший пример. Хороший пример всегда можно горизонтально и вертикально расширить, типа:
    - А что если у меня этих ... будет N штук.
    - А что если у нас нет прямого доступа к .... Ну, например, оно управляется через ...?
    Прямо к примеру так и припишите все дополнительные расширяющие вопросы. Перечитайте еще раз. Уберите ненужное. Что-то отвалится само.

    Иногда я использую то, что я называю отложенным мышлением (deferred thinking). В том случае если нет времени на обсуждение. Я задаю вопрос, и просто запоминаю ответ, и обдумываю его потом. А человеку говорю "Спасибо за наводку, я еще раз все прокручу в голове. Если мне еще что-то будет не понятно я приду снова, окей?" Обычно никто не отказывает. Главное предупредить что ты возможно придешь еще раз.
    Ответ написан
  • Иду в школу учителем хотелось совета по теме?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Думаю в таком возрасте важно и достаточно, чтобы они правильно могли пользоваться названиями комплектующих. Системный блок, материнская плата, графическая карта, монитор, клавиатура, мышь, процессор, блок питания. Также показать где на материнской плате сидят графическая карта, процессор, и ОЗУ, что куда подключается; Что из них является устройствами ввода а что устройствами вывода; Обьяснить что в компоненты сделаны так что их нельзя воткнуть не туда (принцип Poka Yoke). Больше за 10 минут вы не успеете.
    Можно потом сделать тест, на листе бумаги изобразить голую материнскую плату, и по краям разьемы в фас. И комплектующие, чтобы они соединили стрелочками что куда нужно подключать. комплектующие обозначить словами, а не картинками, так вы проверите, что они запомнили их названия.
    Ответ написан
  • Как правильно составить тесткейсы?

    lxsmkv
    @lxsmkv
    Test automation engineer
    непонятно, как на 100% обеспечивать наличие имени у одного, и отсутствие у второго.
    Обычно для этого делают тестовые аккаунты. Но это не гарантирует проверку динамики. может получиться так что у старых пользователей без имени все норм, а у тех кто удалил имя - нет.

    Вообще подумайте, каким образом это условие может возникнуть, что имя у пользователя отсутсвует. (Я думаю - он его стер, он его не задал при создании аккаунта) Но может есть еще какие-то способы.
    Тогда это будет просто одним из ожиданий тестов в разделе "изменение данных пользователя" и "создание пользовательского аккаунта"
    Ответ написан
  • Можно ли воскресить спикер на 10-ой винде?

    lxsmkv
    @lxsmkv
    Test automation engineer
    может в настройках звука отключена стандартная звуковая схема?
    >>> control mmsys.cpl sounds
    закладка звуки, меню звуковая схема.
    Ответ написан
  • Написать тест jsapi для корзины товаров?

    lxsmkv
    @lxsmkv
    Test automation engineer
    вы хотите тест который будет показывать вам что загрузка корзины стала тормозить?
    Торможение загрузки зависит от многих факторов (в том числе от скорости соединения, мощности компьютера, от пинга к базе данных) тут лучше профайлинг сделать.

    Если вы подозреваете торможение на определенном участке то нужно замерять его.
    Можно конечно сделать тест на селениуме, который будет выбирать и добавлять в корзину продукты, и перезагружать страницу и мерять сколько длилась загрузка.
    Но если вы просто хотите определить узкое место, автоматизация тут не нужна, такой эксперимент будет быстрее сделать руками.
    Ответ написан
  • Есть ли у кого то такая привычка и как вы с ней боритесь?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Может стоит при постройке прототипа делать сверху вниз?
    Я например делаю так: пишу шаблон конечного кода, так так будто те фунцкии которые я в нем использую существуют.

    Вот эскиз того как я при этом думаю:

    Вот тут мы получаем это, а потом передаем сюда, а, нет наверное лучше без параметра, тогда в конструктор вот тут. А потом в зависимости от результата .. если значение 1 то .. а если ноль то .. так, я не хочу чтобы у меня тут были условия. Пусть тогда функция сразу делает, то что надо в зависимости от результата. Тогда переименуем функцию, чтобы было ясно как она работает. Так, ага, все красным подчеркнуто - ну да, щас заимплементим и будет конфетка."

    И тогда остается наполнить эти функции жизнью.

    У меня был даже интересный опыт, я делал заказ на добавление функции во фреймворк. Я им дал код того как я бы использовал эту новую функцию у себя в коде. Им по факту оставалось только заставить мой код работать. На удивление они очень быстро справились, и не перезванивали уточнаяя детали (как это обычно бывало).
    T.e. код служил спецификацией. В этом подходе всего два шага:
    1. "Я хочу чтобы мой конечный код выглядел вот-так"
    2. "Волшебник, сделай так, чтобы оно заработало."


    P.S. Вот еще рекомендую просмотреть (хотя бы часть 2 и 3): Паттерны для масштабируемых JavaScript-приложений
    Ответ написан
  • Почему скрипт в jsfiddle.net работает, а из index.html нет?

    lxsmkv
    @lxsmkv
    Test automation engineer
    у меня так все работает. IE, Chrome, FF
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width">
      <title>JS Bin</title>
    </head>
      <style>
      #trigger {
      width: 100px;
      height: 100px;
      background: gray;
    }
    
    #trigger2 {
      width: 100px;
      height: 100px;
      background: black;
      display: block;
    }
      </style>
    <body>
    <div id="trigger"></div>
    <div id="trigger2"></div>
      <script>
        switch ('x') {
      case 'x':
        document.getElementById('trigger').style.display = 'none';
        break;
      default:
        alert('yt')
    };
    
      </script>
    </body>
    </html>
    Ответ написан
  • Как написать программу для ограничения времени в играх?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Такая функция называется Родительский Контроль (либо Parental Control по-английски). Найдите подходящую программу и пользуйтесь. Вот у Касперкого есть https://www.kaspersky.ru/safe-kids и наверняка у других "безопасников" похожие продукты имеются, ведь это известный рыночный сегмент.

    А чтобы Вам не казалось не думали, что какое-то "наколенное" решение даст результат, почитайте это:
    "Родительский контроль взламывается ребёнком на 1,2,3"
    https://answers.microsoft.com/ru-ru/windows/forum/...

    Как альтернативу такому подходу можно просто использовать трекер времени (типа https://www.manictime.com/ ) Просто обговорить с ребенком количество времени которое ему позволено проводить за компьютером, и сказать что вы будете делать такие замеры - получится у него контролировать себя или нет. Можно на спор. И если он справится то получит какую нибудь награду. Я думаю нужно развивать в ребенке самоконтроль, а не использовать методы начала прошлого века.
    А использовать позицию силы (я могу отключить и отключу) - ни к чему хорошему кроме конфликтов не приведет. Нужно договориться о правилах. Обычно дети охотно соглашаются. А вот если они не соглашаются на договор, тогда можно включить позицию силы как альтернативу, тогда почувствуется, что если упираться - не получишь ничего, а если договориться то можно "нормально жить". Выполнять обещания и получать награды. Которых раньше не было. Но на такой подход терпение надо, сам знаю, не всегда оно это терпение есть.

    Upd:
    сегодня сам с ребенком (9 лет) разговор на эту тему вел:
    - как ты думаешь сколько времени в день нужно играть в компьютер?
    - ну часа два, ну три
    - хорошо, а сколько времени нужно готовить уроки и тренировать правописание, чтение, и математику?
    - ну два часа.
    - хорошо, а что сначала, а что потом?
    - ну сначала уроки а потом играть, потому что вечером уже нет сил чтобы делать уроки.
    - а ты знаешь, что глаза у нас работают весь день? вот ноги например, они не всегда нагружены, мы много сидим. А глаза заняты весь день. Больше чем глаза занято только сердце - оно вообще никогда не останавливается, всю жизнь работает и днем и ночью. Как ты думаешь было бы хорошо дать глазам отдохнуть?
    - ну да.
    - знаешь от чего глаза устают?
    - нет
    - глаз тоже имеет мышцы и когда мы смотрим на что-то то эти мышцы напрягаются. Если не дать этим мышцам расслабляться то они не смогут так хорошо менять свою форму и задубеют, и тогда ты не сможешь смотреть вдаль и вблизь. Мышцы должны быть гибкими чтобы они быстро реагировали. Если мышцы глаз гибкие ты легко сможешь переключать зрение с близи в даль и наоборот. Попробуй смотреть на газету а потом на дерево за окном. Чувствуешь глазу нужно немного времени чтобы переключиться?
    - да
    - если все время смотреть только на близкие предметы - например на экран - мышцы переключающие на дальнее зрение ослабеют и ты станешь хуже видеть. поэтому рекомендуют не сидеть за экраном дольше чем 45 минут, и урок длится тоже не дольше 45 минут, чтобы глаза могли отдохнуть от тетради.
    ...

    Конечно одного такого разговора будет недостаточно, но ребенок вполне понимает причину беспокойства родителей. Ни один ребенок не хочет расстраивать родителей. С ним можно договориться. Это превратится в своеобразную игру и всем от этого будет только польза.
    Так же спросите почему ему бывает так трудно оторваться от игры? Проэкспериментируйте от какой игры легче оторваться и почему. Вы узнаете много интересного.
    Ребенок познает мир, познает себя, задавайте ему вопросы, и ищите вместе ответы на них, ставьте эксперименты. Используйте проблемную ситуацию для получения новых знаний. (см. передачу Галилео, они там все ставят под вопрос, это очень увлекательно и познавательно)
    Ответ написан
  • На каком языке пишут скрипты в QA?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Для всех основных языков есть драйвера/обертки/библиотеки/API для работы с базами данных и для отправки SQL запросов. Автоматизированные тесты часто пишут на скриптовых языках, они гибче и легче в изучении. (bash и powershell хоть и тоже скриптовые языки, имхо не легки в изучении. Это уже из области системного программирования)
    Если система на фреймворке, то на сайте фреймворка есть как правило документация как проводить юнит-тестирование для этого фреймворка.
    Когда говорят умение писать скрипты, я думаю подразумевают, что разработчик в имеет опыт с одним из ходовых скриптовых языков (php, python, ruby, groovy, js) и за короткое время (недели три-четыре) в состоянии изучить любой другой, на достаточном для выполнения задач уровне. Для человека с опытом программирования это как правило не проблема. Детали синтаксиса всегда можно в документации посмотреть.
    Ответ написан