ТЕСТИРОВАНИЕ ПО
Введение в профессию2
План лекции
 История профессии
 В чем уникальность этой профессии?
 Что делает тестер?
3
История профессии
1. Профессия тестера появилась в начале 90х
Рис 1 – первый браузер NCSA Mosaic.
Отображал картинки и текст, и было это
хорошо
Рис 2 – программа WordStar, один из
первых текстовых редакторов
4
История профессии
2. В начале 90х количество персональных компьютеров увеличивалось. За несколько
лет образовалась армия неподготовленных пользователей.
Рис 3 - количество ПК в мире по данным Международного союза электросвязи
5
История профессии
 Время на тестирование сокращается, объемы и сложность
тестирования растут;
 Разработка ПО рассыпалась по всему миру;
 Профессия развивается, потребность в тестировщиках растет.
6
В чем уникальность профессии?
 Университеты не предлагают ВО в области тестирования;
 Не обязательно иметь образование в сфере ИТ, но важно
иметь хорошие пользовательские навыки;
 Переносимые навыки;
 Достаточно высокая оплата труда;
 Тестирование относительно просто в изучении;
 Повсеместная востребованность во всем мире;
 Тестирование – международно-конвертируемая
профессия.
7
Что делает тестер?
Тестирование – это сравнение реального
программного продукта с программой, которая была
задумана изначально.
 Мы изучаем спецификации (ТЗ);
 Играем с программой;
 Пишем тест-кейсы;
 Автоматизируем тесты;
 Рапортуем баги;
 Проверяем починки.
8
Вопросы?
9
Юнит-тестирование10
Юнит-тестирование
 Подход в программировании, позволяющий
проверить на корректность отдельные модули
программы.
11
Тест
 Процедура, которая позволяет либо
подтвердить, либо опровергнуть
работоспособность кода.
12
Цель юнит-тестирования
 Изолировать отдельные части программы и
показать, что по отдельности эти части
работоспособны.
13
Недостатки
 Модульное тестирование не позволяет отловить
все ошибки программы;
 Требуется больше времени на разработку и
поддержку;
 Могут создать ложное ощущение надежности.
14
Преимущества
 Поощрение изменений;
 Упрощение интеграции;
 Документирование кода;
 Отделение интерфейса от реализации.
15
BankAccount
namespace UnitTestingExamples.Library
{
using System;
public class BankAccount
{
private double _balance = 0.0;
public void Deposit(double amount)
{
_balance += amount;
}
public double Balance
{
get { return _balance; }
}
}
}
16
BankAccountTests
namespace UnitTestingExamples.Tests
{
using System;
using NUnit.Framework;
[TestFixture]
public class BankAccountTests
{
[Test]
public void TestDeposit()
{
BankAccount account = new BankAccount();
account.Deposit(125.0);
account.Deposit(25.0);
Assertion.AssertEquals(150.0, account.Balance);
}
}
}
17
NUnit
18
Разработка через тестирование19
Разработка через тестирование
 Способ разработки программного обеспечения,
который основывается на повторении очень
коротких циклов разработки:
 пишется тест;
 пишется код;
 проводится рефакторинг.
20
Цикл разработки через
тестирование21
TestPerson
namespace NunitExample
{
[TestFixture]
public class TestPerson
{
[Test]
public void TestFullName()
{
Person person = new Person();
person.Lname = "Doe";
person.Mname = "Roe";
person.Fname = "John";
string actual = person.GetFullName();
string expected = "John Roe Doe";
Assert.AreEqual(expected, actual,
"The GetFullName returned a different Value");
}
}
}
22
Person
public class Person
{
public string Fname { get; set; }
public string Lname { get; set; }
public string Mname { get; set; }
public string GetFullName()
{
if (string.IsNullOrEmpty(this.Lname))
{
throw new MissingFieldException("Lname is empty");
}
return string.Format("{0} {1} {2}", this.Fname,
this.Mname, this.Lname);
}
}
23
Преимущества
 Разработчик реже ощущают необходимость
использовать отладчик;
 Разработчик продумывает детали интерфейса
до реализации;
 Тесты защищают от ошибок;
 Тесты позволяют производить рефакторинг кода
без риска его сломать;
 …
24
Недостатки
 К разработке через тестирование сложно
привыкнуть.
25
Вопросы?
26

Software Testing