С чего начать , когда ты первый тестировщик в небольшой компании?

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

Критерии выхода, завершения тестирования (Exit criteria). Когда остановиться тестировать?

Критерии завершения тестирования это один из часто задаваемых вопросов на собеседованиях на должность тестровщика ПО. Давайте разберем какие же основные факторы влияют на принятие решения о завершении тестирования тестировщиком.

Часто новички в тестировании отвечают на данный вопрос — буду тестировать пока не найду все баги :)
А возможно ли это? Нет конечно, никто не может гарантировать отсутствие багов, даже если это приложение было протестировано несколькими опытными тестировщиками. Исчерпывающие тестирование невозможно и об этом гласит один из принципов тестирования

Следует выделить 3 основных критерия для остановки, завершения тестирования:
  • Время
  • Бюджет
  • Все тест кейсы пройдены, найденные баги исправлены и перепроверены
Критерии выхода из тестирования

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

Читать дальше →

Критерии качества требований программного обеспечения

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

Корректность
Бывает что в требованиях допускают ошибки при составлении таковых. Это можно обнаружить проанализировав требования целиком, найдя еще одно место где есть расхождения с предыдущим значением, к примеру некорректная необходимая процентная ставка по кредиту в банковском приложении, но если это место уникально то такую неточность тестировщику может оказаться распознать проблематично и только пользователь или тот кто детально введен в курс дела по точности данных, может распознать и исправить ее.
Корректность требований
Недвусмысленность
Точность формулировки в требованиях может по-разному интерпретироваться тестировщиками, разработчиками и другими участниками проекта. Проблема возникает из-за того что требования пишутся на «естественном языке» и разные члены команды, относящиеся к разным группам настолько привыкли к своей интерпретации слов или фразы что им уже сложно предстать что это для кого-то другого имеет совершенно другой смысл.
Полнота
Часто в требованиях забывают описать валидации на поля или единицы измерения в каких будет показываться значения или даже целые секции, которые могут быть пропущены по невнимательности.
Непротиворечие
Конфликты в описании одного и того же функционала в разных частях требований зачастую находятся посредством механического анализа. Одна часть требований может гласить что на какое-то действие нужно выполнять то-то, в тоже время как в другой части требований можно найти что та же самая функциональность должна выполнять что-то другое.

Читать дальше →

Тенденции в сфере Тестирования ПО в 2016 году

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

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

Python для автотестирования

Популярность Agile и Continuous delivery выросли в больших масштабах
Цикл релизов значительно сократился за последние годы, вместе с этим тестирование все больше проникло в цикл разработки продукта. То есть программисты все больше вовлечены во взаимодействие с тестировщиками еще на ранних стадиях кодирования. В последствии такие инструменты тестирования как автотесты и системы отслеживания багов стали все больше интегрированы в окружения разработки которые помогают с быстрым Continuous delivery

Континиус дэливери

Читать дальше →

Что такое Юзкейс (Use Case) или "Сценарий Использования" в Тестировании ПО?

Юзкейс (Use Case) — это перечень действий, сценарий по которому пользователь взаимодействует с приложением, программой для выполнения какого-либо действия для достижения конкретной цели. Тестирование по юзкейсам проводится для того чтобы обнаружить дополнительные логические дыры и баги в приложении, которые сложно найти в тестировании индивидуальных модулей, частей приложения отдельно друг от друга. Юзкейс тестирование может проводится как часть Приемочного тестирования. Для удобства визуального восприятия Use Case часто рисуют в виде диаграмм с переходами.

Пример Юзкейсов (Use Cases)
для разных типов пользователей онлайновой системы:

Юзкейс

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

Читать дальше →

Что такое Верификация и Валидация (Verification and Validation) и различия между ними?

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

Validation and Verification

Для удобства сведем различия и определения в таблицу из двух колонок

Верификация

Валидация

  • Отвечает на вопрос правильно ли мы делаем продукт и все ли в соответствии с поставленными требованиями
  • Отвечает на вопрос делаем ли мы продукт правильно с точки зрения ожидания потребности пользователей или заказчика от нашего продукта
  • В процессе верификации убеждаемся что функционал нашего продукта работает правильно
  • В процессе валидации убеждаемся что функционал нашего приложения соответствует поведению которое ожидает и подразумевает от такого функционала пользователь или заказчик
  • Верификация включает в себя такие вещи как проверка соответствия требованиям, технической документации и корректности выполнения кода на каждом этапе цикла разработки и тестирования ПО
  • Валидация в большей степени включает в себя оценку продукта «в общем» и может включать в себя субъективную оценку насколько хорошо работает программа или приложение

Читать дальше →

Как перетащить объект в браузере используя Selenium Webdriver?

В наше время все чаще веб приложения пишутся активно используя JavaScript и JQuery и бывает что в автотесте один обьект нужно перетащить в другое место на странице

Для таких случаев в Selenium Webdriver существует класс Actions который в свою очередь имеет нужные нам методы DragAndDrop() и DragAndDropToOffset()

Для начала нам нужно 2 локатора: 1й — обьекта который нужно перетащить и 2й — локатор поверхности куда нужно этот объект перетащить

Для выполнения такой операции нам нужно написать:

var actions = new Actions(Driver);
var random = new Random();
int x = random.Next(-75, 75);
int y = random.Next(-75, 75);
actions.DragAndDrop(this.objectToDrag, this.fieldArea)
           .DragAndDropToOffset(this.objectToDrag, x, y)
           .Perform();


x и y — это координаты в пикселях поверности, куда именно нужно перетащить объект, расчитывается от центра (в данном случае высота и ширина задается рандомно, в пределах от -75 до 75)
this.objectToDrag — это элемент самого объекта
this.fieldArea — это элемент поверхности

Подробнее изображено на рисунке:
Drag and Drop Selenium WebDriver

Читать дальше →

Основные Атрибуты NUnit для написания автотестов на C#

Атрибуты NUnit для Тест сьюта и тест кейсов

Все классы в проекте, помеченные атрибутом [TestFixture] означают что данный класс содержит автотесты и фактически это тест сьют. Внутри данного класса должны размещаться методы с атрибутами [Test] которые в свою очередь и означают что данные методы это тест кейсы (автотесты)
[TestFixture]
public class Tests
{
 [Test]
 public void Test1() { }

 [Test]
 public void Test2() { }
}


Атрибуты NUnit для выполнения перед и после Тест сьюта

Бывают случаи когда требуется выполнение какого либо действия перед и после выполнения всего тест сьюта. Для этого используют атрибуты [TestFixtureSetUp] — выполняется перед запуском всех тестов из всего тестового класса и [TestFixtureTearDown] — выполняется после выполнения всех тестов в тестовом наборе. В коде это будет выглядеть таким образом:

[TestFixture]
public class Tests
{
 [TestFixtureSetUp]
 public void BeforeTestSuit() { }

 [TestFixtureTearDown]
 public void AfterTestSuit() { }
}


Читать дальше →

Что такое Исследовательское Тестирование (Exploratory testing)?

Исследовательское Тестирование в тестировании ПО

Исследовательское Тестирование — одновременно является и техникой и видом тестирования. Такое тестирование подразумевает под собой одновременно изучение проекта, функционала, проектирование тест кейсов в уме и тут же их исполнение не записывая и не создавая тестовую документацию.

Exploratory testing Исследовательское Тестирование

Эффективность Exploratory testing

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


Читать дальше →

Как прикрутить NUnit автотесты к Тимсити (TeamCity)

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

В статье предполагается что у вас уже созданы билдагенты и настроен Version Control Settings

Для начала следует создать темплейт в тимсити для вашей конфигурации

1) Для этого нужно перейти в раздел Администрирования
тимсити темплейт
2) Заполнить имя и нажать «Создать»

3) Приаттачить VCS Root и Выбрать билд агент в Agent Requirements

4)Заполнить General Settings и Build Step (создать 2 степа на ребилд проекта и на запуск)
билд степ в тимсити

Этого будет достаточно для самой простой конфигурации. Далее можно настроить зависимости от выполнения других конфигураций и триггерры для автозапуска автотестов

Читать дальше →