Programming & QA
333 subscribers
272 photos
177 links
Smartiqa - платформа о технологиях, программировании и тестировании ПО.

Сайт: https://smartiqa.ru
Канал YouTube: https://www.youtube.com/channel/UCk_7MNLSD0S2fxi0EQ-V6lQ
Vkontakte: https://vk.com/smartiqa
Vkontakte Python: https://vk.com/smartiqa_python
Download Telegram
Вопрос №23

Q: Что такое Cheat-sheet в тестировании?

A: Чит-лист – список повторяющихся проверок. Чит-листы составляются с целью их последующего многократного использования. В связи с этим такие списки создаются в отношении распространённых и часто встречающихся составляющих программного обеспечения, с которыми предстоит работать неоднократно не только на текущем проекте, но и на последующих.

Примерами могут быть следующие: валидация поля редактирования для ввода электронного адреса, инъекции SQL и XSS, список проверок для проведения юзабилити тестирования.

Чит-листы также отлично зарекомендовали себя как инструмент для документирования корпоративных стандартов компаний, которые должны быть соблюдены, а потому и проверены в обязательном порядке (например, требования к интерфейсу разрабатываемого ПО).
Примеры чит-листов:
1. Чит-лист регистрации от Алексея Лупана: https://wiki.software-testing.ru/%D0%A7%D0%B8%D1%82-%D0%BB%D0%B8%D1%81%D1%82_%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%82_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8F_%D0%9B%D1%83%D0%BF%D0%B0%D0%BD%D0%B0
2. Чит-лист по Web UI контролам от Игоря Любина: https://wiki.software-testing.ru/%D0%A7%D0%B8%D1%82-%D0%BB%D0%B8%D1%81%D1%82_%D0%BF%D0%BE_Web_UI_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%B0%D0%BC_%D0%BE%D1%82_%D0%98%D0%B3%D0%BE%D1%80%D1%8F_%D0%9B%D1%8E%D0%B1%D0%B8%D0%BD%D0%B0
3. MySQL SQL Injection Cheat Sheet: https://pentestmonkey.net/cheat-sheet/sql-injection/mysql-sql-injection-cheat-sheet
👍2
- - - - - - - - -
Полезные статьи. Часть 3.
- - - - - - - - -

1. Gray-box тестирование. Подробно: https://softwaretestingfundamentals.com/gray-box-testing
2. Позитивное и негативное тестирование. Статья: https://www.softwaretestingclass.com/positive-and-negative-testing-in-software-testing/
3. Альфа и бета тестирование. Полное руководство: https://www.softwaretestinghelp.com/what-is-alpha-testing-beta-testing/
👍2
👍2
👍3
- - - - - - - - -
Полезные статьи. Часть 4.
- - - - - - - - -

1. Что такое исследовательское тестирование (на английском): https://www.satisfice.com/articles/what_is_et.shtml
2. 10 экспериментов по улучшению ваших навыков по исследовательскому тестированию: https://blog.eviltester.com/2013/09/10-experiments-to-improve-your.html
3. Ошибочные представления о тестировании: https://www.huibschoots.nl/wordpress/?p=1118
👍1
👍3🔥1
👍3
- - - - - - - - -
Как правильно учиться в IT - сфере. ТОП ошибок при обучении. Конкретный план обучения.
- - - - - - - - -

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

https://www.youtube.com/watch?v=eKZNKA-jAYY

https://www.youtube.com/watch?v=eKZNKA-jAYY
👍2
- - - - - - - - -
Полезные статьи. Часть 5.
- - - - - - - - -

1. Что такое тестирование функциональности в программном обеспечении: https://tryqa.com/what-is-functionality-testing-in-software/
2. Автоматизация тестирования производительности: основные положения и области применения: https://svyatoslav.biz/technologies/performance_testing/
3. Типы тестирования производительности: https://msdn.microsoft.com/en-us/library/bb924357.aspx
👍2
👍3
Вопрос №24

Q: Расскажите про основные особенности Agile подхода к разработке ПО
A: Раньше продукты делали сразу целиком, т. е. в рамках каскадной модели (Waterfall model), где все происходит поэтапно и последовательно. Для этого они шли по цепочке:
1. идея
2. техзадание
3. дизайн
4. программирование
5. тестирование
6. Релиз

Если на этапе дизайна появлялась новая идея, приходилось игнорировать её или переделывать все предыдущие этапы. Это было неудобно — проект или получался хуже, чем мог бы, или растягивался во времени и не укладывался в бюджет. Прогрессивные разработчики стали пробовать новые подходы к работе. Так появились Скрам, Канбан и ещё с десяток новых техник. Команды могли тестировать и изменять продукты в процессе работы. Эксперименты оказались удачными: клиенты получали отличные продукты, разработчики выдерживали сроки и бюджеты, а размеры компании не влияли на продуктивность команд.

Чтобы найти формулу успешных продуктов, в 2001 году 17 практиков современных подходов собрались в маленькой горной деревушке Сноубёрд. Они обсудили свои стратегии разработки и сделали открытие: подходы у всех разные, но общие идеи совпадают. Эти идеи легли в основу «гибкой» философии, которую назвали Аджайлом. Их записали в Agile Манифесте и дополнили Принципами Аджайла.

Гибкая методология разработки (англ. Agile software development, agile-методы) — серия подходов к разработке программного обеспечения, ориентированных на использование итеративной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля. Существует несколько методик, относящихся к классу гибких методологий разработки, в частности экстремальное программирование, DSDM, Scrum, FDD.

На что обратить внимание в определении?
1. Agile - серия подходов к разработке. Это значит, что Agile включает в себя целое семейство методик. И говорить, к примеру, что Agile - это SCRUM(хотя SCRUM и является самой популярной Agile методологией), абсолютно некорректно.
2. Agile подразумевает итеративную разработку. Работа идет короткими отрезками времени(спринтами), по окончанию отрезка - промежуточный вариант рабочего продукта. Работающий продукт выпускается как можно чаще, с периодичностью от пары недель до пары месяцев. Тем самым удовлетворяются потребности заказчика, благодаря регулярной и ранней поставке ценного программного обеспечения.
4. Требования к продукту формируются динамически. Команды могут тестировать и изменять продукты в процессе работы — за это Agile подходы и назвали гибкими. На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе. Изменение требований приветствуется, даже на поздних стадиях разработки.
5. Команда состоит из специалистов различного профиля.

Итого:
1. Самое главное люди и взаимодействие.
2. Работающий продукт важнее исчерпывающей документации(которую очень ча
сто еще никто и не читает).
3. Сотрудничество с заказчиком важнее согласования условий контракта.
4. Готовность к изменениям важнее следования первоначальному плану.
Вопрос №25

Q: Расскажите про основные преимущества Agile подхода к разработке ПО
A: Что получаем мы (как команда)?
1. Больше общения.
С командой: внутри коллектива складываются настоящие команды, где один за всех, и все за одного. Такие мушкетёры делятся проблемами и в нужный момент приходят товарищу на помощь ради успеха общего дела.
С заказчиком: команде на руку общение с заказчиком(чтоб без этого: «Вы меня неправильно поняли — переделайте все быстренько. И да, это надо вчера!»), прозрачность процессов, что уменьшает шансы на неожиданности, быстрое решение проблем. Ну и многие понимают, куда девается время и где работа стопорится. Мелочь (на самом деле нет), а приятно.

2. Свобода от диктата бумажек и начальников.
Профессионалы могут больше времени посвящать интересным задачам и развитию своего потенциала, и меньше — подготовке формальных отчётов или бессмысленным митингам ради регламента.

3. Отключение от матрицы рядовых сотрудников.
Они перестают быть винтиками, от которых ничего не зависит. Люди задумываются о профессиональном развитии, работа становится важной и интересной. Сотрудники перестают ждать окончания рабочего дня, чтобы выйти из офиса и начать жить.

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

Что с заказчиками?
Заказчик вовремя получает хотя бы минимально работоспособный продукт (не важно, речь идет о ПО или же о других процессах и явлениях), меняет условия, при этом не оставаясь с дыркой от бублика в кармане, — это уже к вопросу о страховании рисков.
👍4
🔥2
- - - - - - - -
Собеседование Тестировщика - как тестировать карандаш
- - - - - - - - -

Типичное задание на собеседовании тестировщика - запрос протестировать карандаш, кружку, лифт или любой другой предмет.

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

https://www.youtube.com/watch?v=RCkXBY6W2XY&list=WL&index=10

https://www.youtube.com/watch?v=RCkXBY6W2XY
👍3
👍2
Вопрос №26

Q: Расскажите про основные недостатки Agile подхода к разработке ПО
A: С Agile легко потерять чувство равновесия. В разработке программного обеспечения нет волшебной пилюли или бесплатного сыра. Если вы хотите принять гибкие принципы, вы должны быть уверены, что менеджмент и команда понимают все правила. Также нужно признать, что требования заказчика могут быстро стать подводными камнями:

1. Меньше предсказуемости
Для некоторых программных продуктов разработчики не могут в полной мере количественно оценить требуемые усилия, особенно в начале жизненного цикла разработки крупных продуктов. Команды, не имеющие опыта гибкой разработки, боятся этих неизвестных. Этот страх приводит к разочарованию, плохим практикам и часто к плохим решениям. Более регламентированный каскадный процесс (Waterfall model) позволяет легко определить количество усилий, времени и стоимости поставки конечного продукта.

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

3. Повышенные требования к клиентам
Принципы Agile требуют тесного сотрудничества и активного участия пользователя. Хотя это интересная и полезная система, она требует большего участия клиентов для успешного завершения проекта. Клиенты должны пройти обучение, чтобы помочь в разработке продукта. Любой недостаток участия клиента будет влиять на качество программного обеспечения и конечный успех.

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

5. Проект легко сбивается с пути
Этот метод не требует подробного планирования для начала работы и предполагает, что потребности заказчика постоянно меняются. Такие недостаточные исходные данные могут ограничить использование Agile. Затем, если обратная связь заказчика не ясна, разработчик может сфокусироваться на разработке в неправильном направлении. Кроме того, имеется опасность неконтролируемого расширения границ проекта, и постоянно меняющийся продукт становится бесконечным.
Подводя итог:

Да, у Agile есть свои подводные камни. Да, не факт, что методология сразу начнет работать на вас, а не против. Но поверьте, при грамотном подходе и полном
👍2🔥1
понимании сути и всех нюансов Agile методологии Вы получите действительно рабочую и эффективную схему выстраивания рабочего процесса в Вашей команде.
🔥1
- - - - - - - - -
Полезные статьи. Часть 6.
- - - - - - - - -

1. Тестирование на основе поведенческих моделей. Введение: https://www.womentesters.com/behaviour-driven-testing-an-introduction/
2. Что такое переходное тестирование в тестировании программного обеспечения: https://tryqa.com/what-is-state-transition-testing-in-software-testing/
3. Хороший пользовательский интерфейс: https://cmsmagazine.ru/journal/items-186846/
👍2
Вопрос №27

Q: Что такое SCRUM?
A: SCRUM - одна из методологий гибкой разработки.
SCRUM состоит из:
1. Скрам Команд (Scrum Teams), внутри которых распределены соответствующие роли (roles),
2. Мероприятий (events),
3. Артефактов (artifacts),
4. Правил (rules)

Каждый компонент SCRUM имеет свое предназначение и является ключевым для его успеха и использования. В последующих постах рассмотрим каждый из компонентов подробнее.
👍3