Software Testing

148 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
148
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Software Testing

  1. 1. ТЕСТИРОВАНИЕ ПО
  2. 2. Введение в профессию2
  3. 3. План лекции  История профессии  В чем уникальность этой профессии?  Что делает тестер? 3
  4. 4. История профессии 1. Профессия тестера появилась в начале 90х Рис 1 – первый браузер NCSA Mosaic. Отображал картинки и текст, и было это хорошо Рис 2 – программа WordStar, один из первых текстовых редакторов 4
  5. 5. История профессии 2. В начале 90х количество персональных компьютеров увеличивалось. За несколько лет образовалась армия неподготовленных пользователей. Рис 3 - количество ПК в мире по данным Международного союза электросвязи 5
  6. 6. История профессии  Время на тестирование сокращается, объемы и сложность тестирования растут;  Разработка ПО рассыпалась по всему миру;  Профессия развивается, потребность в тестировщиках растет. 6
  7. 7. В чем уникальность профессии?  Университеты не предлагают ВО в области тестирования;  Не обязательно иметь образование в сфере ИТ, но важно иметь хорошие пользовательские навыки;  Переносимые навыки;  Достаточно высокая оплата труда;  Тестирование относительно просто в изучении;  Повсеместная востребованность во всем мире;  Тестирование – международно-конвертируемая профессия. 7
  8. 8. Что делает тестер? Тестирование – это сравнение реального программного продукта с программой, которая была задумана изначально.  Мы изучаем спецификации (ТЗ);  Играем с программой;  Пишем тест-кейсы;  Автоматизируем тесты;  Рапортуем баги;  Проверяем починки. 8
  9. 9. Вопросы? 9
  10. 10. Юнит-тестирование10
  11. 11. Юнит-тестирование  Подход в программировании, позволяющий проверить на корректность отдельные модули программы. 11
  12. 12. Тест  Процедура, которая позволяет либо подтвердить, либо опровергнуть работоспособность кода. 12
  13. 13. Цель юнит-тестирования  Изолировать отдельные части программы и показать, что по отдельности эти части работоспособны. 13
  14. 14. Недостатки  Модульное тестирование не позволяет отловить все ошибки программы;  Требуется больше времени на разработку и поддержку;  Могут создать ложное ощущение надежности. 14
  15. 15. Преимущества  Поощрение изменений;  Упрощение интеграции;  Документирование кода;  Отделение интерфейса от реализации. 15
  16. 16. 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
  17. 17. 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
  18. 18. NUnit 18
  19. 19. Разработка через тестирование19
  20. 20. Разработка через тестирование  Способ разработки программного обеспечения, который основывается на повторении очень коротких циклов разработки:  пишется тест;  пишется код;  проводится рефакторинг. 20
  21. 21. Цикл разработки через тестирование21
  22. 22. 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
  23. 23. 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. 24. Преимущества  Разработчик реже ощущают необходимость использовать отладчик;  Разработчик продумывает детали интерфейса до реализации;  Тесты защищают от ошибок;  Тесты позволяют производить рефакторинг кода без риска его сломать;  … 24
  25. 25. Недостатки  К разработке через тестирование сложно привыкнуть. 25
  26. 26. Вопросы? 26

×