Тестване Flashcards
Софтуерно тестване
Какво е софтуерно тестване
- дава обективна оценка на софтуера
- проверява дали приложението отг на всички изисквания
- не само за откриване на грешки - подобряване на функционалността
Софтуерно тестване
Софтуерен дефект
последователност на възникване
- грешка на разработчика
- бъг в сорс кода
- при изпълнение може да настъпи срив
Софтуерно тестване
Видове тестване
- ръчно
- автоматизирано
Софтуерно тестване
Test driven development
концепция
Преди да се напише код, се пишат тестове, които играят ролята на спецификация какво трябва да се случи
разработчикът е задължен да работи коректно
Софтуерно тестване
KISS
принцип на работа
keep it stupid simple
Софтуерно тестване
Покритие на кода
Измерва колко код се изпълнява по време на тестовете
Софтуерно тестване
Статични тестове
Разчитат само на преглед на кода
Свързани с верификация
Софтуерно тестване
Динамични тестове
Проверка на работата на кода
Свързани с валидация
режим на дебъгване
Софтуерно тестване
Видове статично тестване
- ревю
- постъпково изпълнение
- инспекция
Софтуерно тестване
Ревю
статично тестване
минава се през целия код и се следи за грешки
Софтуерно тестване
Постъпково изпълнение
статично тестване
представяне на кода пред заинтересованите страни, които задават въпроси
Софтуерно тестване
Инспекция
Статично тестване
специалист преглежда кода и пише доклад
Софтуерно тестване
Верификация
Статично тестване
Проверка на документи, дизайн, код и програма
Може да се извършат различни видове тестове
Софтуерно тестване
Какво е метод на отворената кутия
Интересува ни само какво се случва вътре
Софтуерно тестване
Какви тестове включва методът на отворената кутия
- на системата за контрол
- на системата за пренос на данни
- на разклоненията
- на пътищата
и др
Софтуерно тестване
Какво е метод на черната кутия
Виждаме само какво се случва извън кутията
Софтуерно тестване
Нива на тестване
- отделни градивни единици - юнит
- интеграция - интегрейшан
- цялостна система - систем
Софтуерно тестване
Видове тестове
- инсталационни тестове
- за съвместимост
- регресивно
- за производителност
- за възстановяване след авария
- за ползваемост
- за сигурност
- на документацията
Компонентно тестване
Логически фази на компонентно тестване
Arrange
Act
Assert
Компонентно тестване
Компонентно тестване предимства
- позволява рефакториране на по-късен етап
- не е нужно да чакаме завършване на другите етапи на разработка
Компонентно тестване
Компонентно тестване недостатъци
- не могат да открият всички грешки в кода
- не хващат интеграционни грешки
Компонентно тестване
Практики
- правене на много тестове
- грешките се оправят преди правене на друга функционалност
- именуване на тестовете
- независими тестове
и др
Компонентно тестване
nUnit
фреймуърк за тестване на .нет код
Регресивно тестване
Какво е регресивно тестване
Проверява дали скорошна промяна е повлияла на вече създадените функции