Ответить
  • AceEek Senior MemberАвтор темы
    офлайн
    AceEek Senior Member Автор темы

    8068

    16 лет на сайте
    пользователь #112466

    Профиль
    Написать сообщение

    8068
    # 13 мая 2005 12:18 Редактировалось AceEek, 21 раз(а).

    Курсы тестирования ПО:
    A1QA QA-academy (мануальное\автоматизация)
    Образовательный центр ПВТ / ручное и автоматизированное тестирование
    Курсы тестирования и не только, Training.by (EPAM)
    Курсы «Тестирование ПО», BelHard
    Курсы тестирования ПО Натальи Савастюк
    Курсы тестирования ПО Stormnet
    Курсы тестирования
    Учебного центра «Древо Знаний
    - отзывов нет, ничего плохого или хорошего сказать невозможно, внимательно изучайте предложение и общайтесь с преподавателем

    Яндекс Практикум QA и не только

    Познавательный подкаст RadioQA - там же можно найти Савина в формате аудиокниги.

    Гарвардский курс CS50 2015 (перевод JavaRush)
    Обновленный CS50 2016 на английском

    Тренинги на software-testing.ru
    Школа начинающих тестировщиков
    Книга «Тестирование программного обеспечения. Базовый курс.»

    Онлайн курс Романа Савина How To Become A Software QA Tester на английском
    Дорогие друзья,

    это ваш покорный слуга Роман Савенков широко известный в узких кругах под псевдонимом "Роман Савин".

    Во-первых СПАСИБО за все ваши теплые слова и за поддержку. Вы вдохновили меня, чтобы написать английское издание по мотивам "Тестирование дот ком."

    Начал я, в общем, переводить, и думаю, что можно сделать лучше. Если кто-то помнит, то в русском издании я использовал примеры как будто есть такой чумовой стартап http://www.testshop.rs. "Так вот," - подумал я, "а что если сделать отчаянный шаг и написать такой веб-сайт, чтобы читатели (или вернее "студенты";) могли воочую увидеть примеры из книги и иметь возможность интеракции с софтом, включая использование баг тракинг системы, QA automation и т.д." В общем, я стал параллельно писать англ. издание и кодировать.

    Закончил где-то месяц назад. В печатной форме получился об'ем примерно в 2 (!) раза больше, чем русское издание (405 страниц формата А4). Так что в английском издании очень много нового (хотя некоторые параграфы были мною тупо переведены из "Тестирование дот ком";). И назвал я это дело Practical Course "How to Become a Software Tester". "Курс" - потому что это уже не чтение, а непосредственное самобучение по системе книга - софтвер - книга - софтвер - и тд.

    Теперь приятная часть: онлайн версия учебника и софтвер для треннинга абсолютно бесплатные. Поначалу я, конечно, хотел бессовестно нажиться на страданиях американского народа, угнетаемого финансовым кризисом, и начал продавать курс за большие деньги, но, во-первых у меня никто его особо не покупал, а во-вторых даже если и покупали, то нифига по нему не занимались. Как я знал, что не занимались? Просто смотрел на активность в базе данных. Ребята, поймите меня правильно, я потратил примерно 1.5 года на то, чтобы создать курс, который бы помог людям, а тут, понимаешь, дело совсем не движется. Вот и решил я сделать доброе дело и бесплатно выложить учебник плюс открыть доступ к тренировочному сайту.

    URL учебника: http://www.qatutor.com.

    Спасибо вам за все, ребята.

    С уважением,
    Савин

    Материалы для самоподготовки (для тестировщиков и не только) на Training.by (EPAM)

    Улыбайся - это раздражает
  • zffman Senior Member
    офлайн
    zffman Senior Member

    1077

    17 лет на сайте
    пользователь #97691

    Профиль
    Написать сообщение

    1077
    # 13 сентября 2018 22:41

    А смысл? Если проект состоит из одних вызовов api, то там тестировщик вообще не нужен. Разработчики сразу могут написать проверки и их использовать потом. Ui тесты вообще особо смысла автоматизировать не вижу, так как время на создание тестов никогда не отобьется

    ну я помню и другие ваши высказывания. Если специфика у вашего проекта такова - не надо чесать остальных под всю гребенку.

  • DenisN89 Xbox Team
    офлайн
    DenisN89 Xbox Team

    12273

    15 лет на сайте
    пользователь #183952

    Профиль
    Написать сообщение

    12273
    # 14 сентября 2018 00:56
    zffman:

    А смысл? Если проект состоит из одних вызовов api, то там тестировщик вообще не нужен. Разработчики сразу могут написать проверки и их использовать потом. Ui тесты вообще особо смысла автоматизировать не вижу, так как время на создание тестов никогда не отобьется

    ну я помню и другие ваши высказывания. Если специфика у вашего проекта такова - не надо чесать остальных под всю гребенку.

    Специфика почти всех проектов такова, что тысячи кейсов там не нужны, а уж автоматизация этих тысяч кейсов и подавно.
    Ui автоматизация вообще за гранью. Был проект, который за 5 лет 3 раза полностью менял свой вид и ещё раз 10 были разные abc тесты и мелкие изменения. Смысл там от ui автоматизации, если на написание и поддержку уйдёт времени больше чем на то, чтобы просто быстро посмотреть? И таких проектов сейчас большинство, никто не сидит с одним ui/ux дизайном годами.
    Просто для меня сам принцип автоматизации кейсов порочный. Тестирование это не сверка со спекой. Если бы это было просто сваркой, то тестировщики вообще не нужны были. Можно было бы сразу покрывать все unit тестами и не париться

  • jackjones Senior Member
    офлайн
    jackjones Senior Member

    524

    9 лет на сайте
    пользователь #1552418

    Профиль
    Написать сообщение

    524
    # 14 сентября 2018 09:22
    DenisN89:

    Тестирование это не сверка со спекой. Если бы это было просто сваркой, то тестировщики вообще не нужны были. Можно было бы сразу покрывать все unit тестами и не париться

    а что же тогда такое тестирование, говоря простыми словами?

  • DeathInfector Senior Member
    офлайн
    DeathInfector Senior Member

    15494

    15 лет на сайте
    пользователь #159010

    Профиль
    Написать сообщение

    15494
    # 14 сентября 2018 09:55

    DenisN89,
    Не поймите превратно, но у меня сложилось впечатление, что у вас какое-то идеализированное представление о юнит-тестах, их применимости и пользе.

    Мне не нужна вечная игла для примуса, я не хочу жить вечно (c)
  • zffman Senior Member
    офлайн
    zffman Senior Member

    1077

    17 лет на сайте
    пользователь #97691

    Профиль
    Написать сообщение

    1077
    # 14 сентября 2018 10:22

    Просто для меня сам принцип автоматизации кейсов порочный.

    просто автоматизировать надо то, что надо

  • Slovopyt Senior Member
    офлайн
    Slovopyt Senior Member

    7564

    13 лет на сайте
    пользователь #470958

    Профиль
    Написать сообщение

    7564
    # 14 сентября 2018 10:25
    zffman:

    просто автоматизировать надо то, что надо

    А что надо? И когда автоматизация оправдана?

  • zffman Senior Member
    офлайн
    zffman Senior Member

    1077

    17 лет на сайте
    пользователь #97691

    Профиль
    Написать сообщение

    1077
    # 14 сентября 2018 10:38 Редактировалось zffman, 2 раз(а).

    И таких проектов сейчас большинство, никто не сидит с одним ui/ux дизайном годами.

    ну хватит, ну позязя! есть огромная куча проектов, где никто ничего не будет переписывать. Пишут себе на jquery до сих пор и пишут. Да, могут заюзать новомодное что-то.. для новой части. Все переписывается по 10 раз только если это переписывать быстро (и соответственно объем кода небольшой - пару десятков тысяч строк каких). Но это супер-мелкий проект.
    Или же критично влияет на конверсию (а таких проектов 5%). Или стартап с разработчиками в состоянии транса, смешанного с паникой.

    если у вас в приложении хотя бы несколько сот тысяч строк - как вы представляете переписать все с нуля? прям вот ВСЮ прилагу берут и полностью перехерачивают? наверное же по частям, правда? причем небольшим. И наверняка все больше косметика без больших изменений внутри. Я вам даже больше скажу, если переписывается действительно большое серьезное приложение со сложной бизнес-логикой - без авто-тестов вы зароетесь в багах и потеряете всех своих клиентов.

    Добавлено спустя 13 минут 19 секунд

    Slovopyt:

    zffman:

    просто автоматизировать надо то, что надо

    А что надо? И когда автоматизация оправдана?

    Могу провести консультацию по вашему проекту.

    А если рассуждать про коней в вакууме - надо автоматизировать то, что жрет больше всего ресурсов (время, деньги, нервы). Автоматизация не заканчивается на автоматизации тонн ui-сценариев, написанных мануальщиками (более того - это неправильный путь).ю

  • SpiritMoon Senior Member
    офлайн
    SpiritMoon Senior Member

    1267

    11 лет на сайте
    пользователь #775104

    Профиль
    Написать сообщение

    1267
    # 14 сентября 2018 11:32
    Slovopyt:

    zffman:

    просто автоматизировать надо то, что надо

    А что надо? И когда автоматизация оправдана?

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

  • DenisN89 Xbox Team
    офлайн
    DenisN89 Xbox Team

    12273

    15 лет на сайте
    пользователь #183952

    Профиль
    Написать сообщение

    12273
    # 14 сентября 2018 11:54
    DeathInfector:

    DenisN89,
    Не поймите превратно, но у меня сложилось впечатление, что у вас какое-то идеализированное представление о юнит-тестах, их применимости и пользе.

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

    jackjones:

    а что же тогда такое тестирование, говоря простыми словами?

    Исследование продукта и предоставление информации о нем стейкхолдерам

    zffman:

    есть огромная куча проектов, где никто ничего не будет переписывать.

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

    zffman:

    если переписывается действительно большое серьезное приложение со сложной бизнес-логикой - без авто-тестов вы зароетесь в багах и потеряете всех своих клиентов.

    Если приложение действительно переписывается и меняется логика, то автотесты или идут в мусорку, или тратится время на их модификацию

    zffman:

    Автоматизация не заканчивается на автоматизации тонн ui-сценариев, написанных мануальщиками (более того - это неправильный путь).ю

    я про то и говорю. Текущая потребность в автоматизаторах завязана в основном на том, что в крупных аутсорс конторах есть проекты, где написано уже тысячи или даже десятки тысяч кейсов. А потом хитрый продажник говорит заказчику "А давайте мы 10 тысяч кейсов автоматизируем". Заказчик с лапшой на ушах, автоматизатор получает деньги, компания зарабатывает. Такое не только в аутсорсе. linkedin тоже хвалится, что у них все в автоматизации. Однако linkedin при этом редкостная помойка, которой банально не удобно пользоваться

    SpiritMoon:

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

    Если не индусы писали, то не должно быть такого, что в одном месте исправили, а в абсолютно не связанном логически модуле что-то сломалось. В любом случае части будут работать достаточно изолированно. А для действительно полезных проверок (низкоуровневые части, которые почти не меняются и которые вручную сложнее проверить) можно сделать автоматизацию. Но для этого не нужны отделы в 100+ автоматизаторов.

  • SpiritMoon Senior Member
    офлайн
    SpiritMoon Senior Member

    1267

    11 лет на сайте
    пользователь #775104

    Профиль
    Написать сообщение

    1267
    # 14 сентября 2018 12:07
    DenisN89:

    Если не индусы писали, то не должно быть такого, что в одном месте исправили, а в абсолютно не связанном логически модуле что-то сломалось. В любом случае части будут работать достаточно изолированно. А для действительно полезных проверок (низкоуровневые части, которые почти не меняются и которые вручную сложнее проверить) можно сделать автоматизацию. Но для этого не нужны отделы в 100+ автоматизаторов.

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

  • zffman Senior Member
    офлайн
    zffman Senior Member

    1077

    17 лет на сайте
    пользователь #97691

    Профиль
    Написать сообщение

    1077
    # 14 сентября 2018 12:13 Редактировалось zffman, 2 раз(а).

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

    каждое из утверждений вызывает улыбку

    Если приложение действительно переписывается и меняется логика, то автотесты или идут в мусорку, или тратится время на их модификацию

    а ваши чек-листы в мусорку не идут? и заново перепродумывать все нюансы не надо? и времени вы дополнительного тоже не тратите?

    Однако linkedin при этом редкостная помойка, которой банально не удобно пользоваться

    из-за авто-тестов, да :trollface:

    Но для этого не нужны отделы в 100+ автоматизаторов.

    где вы такое видели? может на огромном проекте, где овердофига стримов и 500+ разработчиков - поверю.

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

    я понимаю, про что вы говорите. И это не редкость - спорить не буду. Но у нас в компании, например, автоматизация нередко стартует сразу с самим проектом. И успешно живет, причем опять же нередко идет в ногу с разработкой. Так что ваша выборка аутсорсных проектов нерепрезентативна.

  • DenisN89 Xbox Team
    офлайн
    DenisN89 Xbox Team

    12273

    15 лет на сайте
    пользователь #183952

    Профиль
    Написать сообщение

    12273
    # 14 сентября 2018 12:28
    zffman:

    а ваши чек-листы в мусорку не идут? и заново перепродумывать все нюансы не надо? и времени вы дополнительного тоже не тратите?

    идут, но чек листы это пол дня работы максимум. Ну день. Если говорят, что больше, не верьте, это бездельники.

    zffman:

    из-за авто-тестов, да

    Не из-за них. Просто у них позиционирование, что все автоматизировали и все отлично работает

    zffman:

    где вы такое видели? может на огромном проекте, где овердофига стримов и 500+ разработчиков - поверю.

    Выше про акву было

    zffman:

    я понимаю, про что вы говорите. И это не редкость - спорить не буду. Но у нас в компании, например, автоматизация нередко стартует сразу с самим проектом. И успешно живет, причем опять же нередко идет в ногу с разработкой. Так что ваша выборка аутсорсных проектов нерепрезентативна.

    Ну на Вашу контору придется епам, аква и прочие, где автоматизаторов огромное количество и очень много автоматизации делается не для пользы проекта, а для вытягивания денег из заказчика
    Если вернуться к тому, что изначально было (статья человека из епама), то у меня вопросы и замечания были следующие:
    1. Спрос на автоматизаторов вызван в основном тем, что крупные компании ее успешно продают и автоматизация применяется повсеместно даже если она не нужна.
    2. Видение автора статьи сугубо со стороны разработчика. Вручную тестируют низкоквалифицированные кадры, а потом если развиваются, то уходят в автоматизацию. С этим я категорически не согласен.

  • Slovopyt Senior Member
    офлайн
    Slovopyt Senior Member

    7564

    13 лет на сайте
    пользователь #470958

    Профиль
    Написать сообщение

    7564
    # 14 сентября 2018 12:40
    zffman:

    автоматизация нередко стартует сразу с самим проектом.

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

    Мне просто очень странно. Как автоматизация может стартовать вместе с проектом, когда, по сути, зачастую в самом начале проекта требования очень размыты, есть скоуп может на пару спринтов (и это уже хорошо, остальное просто валяется в бэклоге)?

    Добавлено спустя 1 минута 3 секунды

    DenisN89:

    Если вернуться к тому, что изначально было (статья человека из епама), то у меня вопросы и замечания были следующие:
    1. Спрос на автоматизаторов вызван в основном тем, что крупные компании ее успешно продают и автоматизация применяется повсеместно даже если она не нужна.
    2. Видение автора статьи сугубо со стороны разработчика. Вручную тестируют низкоквалифицированные кадры, а потом если развиваются, то уходят в автоматизацию. С этим я категорически не согласен.

    +++ согласна полностью :love:

    Добавлено спустя 6 минут 40 секунд

    zffman:

    А если рассуждать про коней в вакууме - надо автоматизировать то, что жрет больше всего ресурсов (время, деньги, нервы). Автоматизация не заканчивается на автоматизации тонн ui-сценариев, написанных мануальщиками (более того - это неправильный путь).ю

    Ну вот именно. Но только про ресурсы же вы поймете (в большинстве своем) уже после того, как мануалы протестят и скажут "вот здесь и здесь завал, нужно автоматизировать". Конечно, есть эрии, где сразу ясно, что нужна автоматизация (куча данных для инпута и аутпута, много подготовительных данных и т.п.), но

    а) грамотный мануал пишет не только ui-сценарии и тестит не только пиксел-перфект херню))
    б) даже если овердофига входных параметров, существует много техник для оптимизации данных и проверки их вручную. Конечно, это не будет exhaustive тестирование, но в большинстве случаев полный перебор и не будет ТАК УЖ необходим.

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

  • DenisN89 Xbox Team
    офлайн
    DenisN89 Xbox Team

    12273

    15 лет на сайте
    пользователь #183952

    Профиль
    Написать сообщение

    12273
    # 14 сентября 2018 12:57
    Slovopyt:

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

    я вообще считаю, что качество не может быть обеспечено тестировщиком)
    Просто потому, что тестировщик может сказать, что у нас есть такие вот серьезные проблемы, а еще есть следующиие риски. А product owner сказать: "Пофиг, выпускаем 1.0, а там видно будет"

  • Slovopyt Senior Member
    офлайн
    Slovopyt Senior Member

    7564

    13 лет на сайте
    пользователь #470958

    Профиль
    Написать сообщение

    7564
    # 14 сентября 2018 13:00
    DenisN89:

    Просто потому, что тестировщик может сказать, что у нас есть такие вот серьезные проблемы, а еще есть следующиие риски. А product owner сказать: "Пофиг, выпускаем 1.0, а там видно будет"

    Ну блин, все может быть, конечно) Но даже в этом случае будет обеспечено достаточное качество, так как ПО будет знать риски и проблемы и значит готов с этим смириться и релизиться с этим уровнем качества) Хуже когда все тесты зеленые, релиз, а по итогу "все очень хорошо"....)))

  • DenisN89 Xbox Team
    офлайн
    DenisN89 Xbox Team

    12273

    15 лет на сайте
    пользователь #183952

    Профиль
    Написать сообщение

    12273
    # 14 сентября 2018 13:07 Редактировалось DenisN89, 1 раз.

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

  • SpiritMoon Senior Member
    офлайн
    SpiritMoon Senior Member

    1267

    11 лет на сайте
    пользователь #775104

    Профиль
    Написать сообщение

    1267
    # 14 сентября 2018 13:38 Редактировалось SpiritMoon, 1 раз.
    DenisN89:

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

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

  • zffman Senior Member
    офлайн
    zffman Senior Member

    1077

    17 лет на сайте
    пользователь #97691

    Профиль
    Написать сообщение

    1077
    # 14 сентября 2018 14:21 Редактировалось zffman, 1 раз.

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

    Работаем по аджайл-методикам. Все проекты разные, потому за все даже не буду пытаться говорить.
    PS: ROI для автоматизации - большой обман. У меня все.

    Мне просто очень странно. Как автоматизация может стартовать вместе с проектом, когда, по сути, зачастую в самом начале проекта требования очень размыты, есть скоуп может на пару спринтов (и это уже хорошо, остальное просто валяется в бэклоге)?

    Очень просто. Автоматизаторам тоже надо написать каркас для своего фреймворка, на это надо время, даже если есть домашние заготовки. Опять-таки, в задачи автоматизатора зачастую входит и сетап CI в широком понимании этого слова (т.е. включая деплой компонентов, интеграция с системой контроля версий и тд). Чтобы вы нажали кнопочку, и у вас сбилдился и развернулся на нужном енвайронменте нужный бранч.

    Тестирование может стартовать вместе с началом разработки? Может. Значит и автоматизация может. Даже банально смоук сначала автоматизировать. А пара-тройка месяцев активной разработки пройдет - вот уже и пачка мануальных тестов, которые у мануальщиков нет времени гонять для каждого спринт-релиза. Потому как стране надо давать угля и вам выкатывают 4 из 5 фич аккурат под конец спринта.

    Добавлено спустя 1 час 8 минут 11 секунд

    Да, автоматизатору незазорно и руками потестить, если оно требуется. И тесты / чек-листы написать. Но специализация иная.

  • raman Member
    офлайн
    raman Member

    274

    15 лет на сайте
    пользователь #166880

    Профиль
    Написать сообщение

    274
    # 16 сентября 2018 16:58 Редактировалось raman, 1 раз.
    Slovopyt:

    +100000%. Заметила, что вопрос "а рассматриваете ли вы в будущем изучать автоматизацию?" чаще всего задают в аутсорс-конторах. И понятно, почему: автоматизатора продать проще и дороже, чем мануал. Конечно, я думаю, что заказчик может посчитать простейший ROI и задать вопрос о смысле использования автоматизации, но чаще всего такое не происходит + менеджеры навешают лапши, что с автоматизацией все будет збс точно.

    И да, кстати. По поводу аквы. Не удивлена, что там вырос так сильно департамент автоматизаторов. Как я уже сказала, продавать их лучше, дороже, а менеджеры кастомерам всегда могут правильно обосновать нужность авто. Но блин) Я узнала, что в той же акве автоматизатор - это не человек, который пишет кейсы, а потом их автоматизирует. Автоматизатор в этой конторе просто автоматизирует кейсы, которые УЖЕ написаны ручником или кем-то там. То есть автоматизатор вообще не заменяет ручника, это еще один человек, на котором аутсорс рубит бабки.

    Да, все так и есть. На акве я участвовал в 3-х проектах по автоматизации и все 3 были именно с таким подходом. И из всех 3-х, по моим ощущениям, только на одном был какой-то реальный профит от автоматизации :(
    Но крупные аутсорс-компании задают тренд на нашем рынке труда.

    jackjones:

    всем привет!
    вопрос ПРАКТИКАМ. нагрузочное тестирование. какими способами проводите и как часто вообще? нашел инфу об использовании крутых apache Jmeter (server), Selenium (browser).
    всем спасибо!

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

    По процессу:
    0. Получаем от заказчика требования по нагрузке. Обычно перед стартом проекта у заказчика уже есть примерное понимание сколько пользователей будут использовать систему обычно/в пиковое время.
    1. Составляем сценарии поведения для "типичных" пользователей. Если у нас портал для покупки авиабилетов, то это будет сценарий по поиску билетов по разным направленияем/датам и последующей покупкой в каком-то проценте случаев, сценарий логина + чекина на рейс и т.д. Важно продумать сколько времени в среднем занимает каждый сценарий у реального пользователя и расставить паузы между шагами.
    2. Составляем "профиль нагрузки": 1-му сценарию соответствуют XX% пользователей, 2-му YY, и т.д.
    3. То, что мы сделали в шагах 1-2 обязательно согласовываем с кем-то со стороны заказчика, кто хорошо представляет как систему будут использовать в реальности. Если в рамках проекта переделывается/дорабатывается уже существующая система, то обязательно просим реальную статистику из гугл-аналитики или прочих тулов, которые трекают что делают юзеры в приложении. Еще вариант: попросить DBA выгрузить из продакшен базы статистику использования.
    4. Пересматриваем еще раз требования из п. 0: стыкуются ли они с информацией, которую собрали в п. 1-3. Если стыкуются, получаем окончательный аппрув и считаем что у нас есть сформированные требования :) если нет, то разбрираемся почему так и корректируем сценарии/профиль нагрузки/инфу из п.0
    5. Итак, примерное понимание того, какой будет нагрузка на нашу систему у нас есть. Теперь делаем скрипты, которые будут соответствовать нашим сценариям. Тут используем JMeter/Visual Studio/HP Loadrunner или другую тулу для нагрузочного тестирования
    6. Заботимся об инфраструктуре для нагрузочного тестрования:
    6.1. Решаем на каком окружении мы будем гонять нагрузочные тесты. В идеале, это отдельное окружение, где приложение будет поднято аналогично продовскому: app-сервер(а), отдельный сервер БД и т.д. Hardware этих серверов тоже должно быть близким к предполагаемому продовскому. Сейчас очень популярны облачные сервисы типа AWS/Azure, так что обычно не проблема временно увеличить размеры виртуалок на время нагрузочных тестов
    6.2. Создаем отдельную виртуалку, которая будет "генератором нагрузки". Там будет стоять JMeter и с этом виртуалки будут запускаться нагрузочные тесты (никаких нагрузочных тестов с личного ПК!).
    7. Проводим нагрузочные тесты, запуская скрипты в соотвествии с профилем нагрузки. Обычно это как минимум:
    7.1. Load test 1 - запустить на "среднедневной" нагрузке на 8-10 часов (для многих корпоративных систем это эквивалентно длительности рабочего дня сотрудников). Кол-во пользователей не меняется в течение теста
    7.2. Load test 2 - запустить на "пиковой" нагрузке на 2-3 часа, чтобы убедиться, что система держит и пиковую ожидаемую нагрузку
    7.3. Stress test - плавно увеличивать нагрузку до максимума. Суть в том, чтобы понять как приложение будет вести себя под нагрузкой, выше планируемой. Ожидаемый результат в этом тесте - замедление работы системы с сохранением работоспособности. Т.е. должно работать медленно, но без ошибок
    8. Анализируем результаты тестов: как менялось время отклика в зависимости от нагрузки, наличие ошибок, мониторинг железа серверов.
    9. Если приложение не соответствует требованиям или кидает ошибки под нагрузкой, заводим соответствующие задачи и с помощью разработчиков разбираемся как исправить ситуацию :)

    Конечно, первая итерация нагрузочных тестов самая сложная, трудоемкая и длительная. После нее обычно следует обсуждение результатов с заказчиком, dev командой, какие-то фиксы с последующим ретестом и т.д. Но последующие итерации требуют гораздо меньше времени и усилий, особенно есть автоматизировать рутину. Можно написать скрипт для бекапа БД перед тестом, запуск тестов с нужными длительностью и профилем нагрузки, копирование результатов hardware мониторинга, восстановление БД после теста. Кроме того, автоматизации поддается анализ результатов тестов: тот же JMeter пишет результаты в CSV-формате, который легко парсится Excel, python и т.д. Итого, стартовать тесты и анализировать результаты становится гораздо проще, чем в первый раз :)

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

    Кроме того, можно подумать про:
    1. Интеграцию нагрузочных тестов в CI. Конечно, в упрощенном варианте, с небольшой нагрузкой и на непродолжительное время. Задачей этих тестов будет частый сбор статистики по времени отклика для раннего обнаружения ухудшений. Кроме того, вы будете видеть, что ваши тесты требуют актуализации, если они начинают падать.
    2. Stability testing. Если в связи со спецификой системы, она должна обслуживать пользователей 24/7, то есть смысл запустить тот же load test на 3-4 дня. Таким образом, можно убедиться в отсутствии ухудшения производительности/отсутствии memory leaks при длительной работе.
    3. Volume testing - это когда БД набивают больших кол-вом данных (например, предполагаемый объем за год работы) и оценивают как это влияет на время отклика/загрузку железа БД.
    4. Поговорить с командой разработки, возможно у них есть опасения за конкретную часть системы, либо идеи что можно дополнительно протестировать в рамках нагрузочного тестирования.

    Добавлено спустя 26 минут 41 секунда

    DenisN89:

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

    Наконец-то я понял почему вы считаете, что тестирование слабо влияет на качество продукта, тем самым порождая споры :) Просто почти всегда, когда люди говорят про влияние тестирования на "качество" продукта, то под "качеством" имеют в виду соответствие продукта требованиям. Таким образом, тестирование убеждается в том, что команда разработки "качественно" сделала работу по разработке.

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

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

  • zffman Senior Member
    офлайн
    zffman Senior Member

    1077

    17 лет на сайте
    пользователь #97691

    Профиль
    Написать сообщение

    1077
    # 17 сентября 2018 10:05 Редактировалось zffman, 1 раз.

    Отлично написали, есть пару небольших, но важных дополнений.
    Огромным куском работы может стать генерация тестовых данных, на которых мы будем гонять тесты, если их нет готовых. Плюс может потребоваться анонимизация данных (делается не вами), если будет использоваться реальная прод-база. Также генерация данных может потребоваться, если надо сэмулировать работу системы через 3, 5 и т.д лет использования (упомянутый Volume testing)

    Для сбора и анализа данных могут быть как готовые тулзы в комплекте (например для VS studio агенты), так и сторонние сервисы типа newrelic, которые сильно облегчают жизнь.

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

    Интеграцию нагрузочных тестов в CI.

    лучше подумать про это заранее. У jmeter все ок. У той же VS все блин очень нетривиально, недавно столкнулся: во-первых фокусы самого mstest, во вторых нельзя просто так взять и сгенерить отчет, доступный в jenkins или что у вас там.

    PS: о Jmeter неоднократно слышал, что жестко выжирает память. Коллега очень рекомендовал питон-тулзень locust как замену, ему нравится.