Unit Testing Flashcards
1
Q
What is software testing and what is its purpose?
A
- Тестването на софтуер е процесът, при който се проверява дали дадена програма или приложение работи правилно и отговаря на зададените изисквания
- Целта на софтуерното тестване е да се открият грешки, бъгове или дефекти в програмата, преди тя да бъде пусната за използване от потребителите
2
Q
What are the different testing types and techniques?
A
- Типове:
- Функционално
- Нефункционално
- Техники:
- White-box, Black-box, Gray-box
- Static vs Dynamic
- Manual vs Automated
3
Q
What is the structure of a unit test?
A
“Arrange, Act, Assert” (AAA):
- Arrange (подготовка) - подготовка на тестовата среда; създаване на обекти, задаване на начални стойности и т.н.
- Act (изпълнение) - изпълнява се тестовият код; извикване на метода или операцията, която искаме да тестваме
- Assert (проверка) - проверява се дали резултатът от програмата отговаря на очаквания резултат
4
Q
What is unit testing?
A
- Юнит тестването (Unit Testing) е вид софтуерно тестване, при което се проверяват отделни части от кода, наречени “юнити” (единици), като функции или методи.
- Целта е да се уверим, че всяка отделна част от кода работи правилно сама по себе си.
5
Q
What are some of the guidelines for writing unit tests?
A
- използване на Testing Framework
- използване на Naming convention
- тестване на всички публични методи (с изключение на getter & setter(освен ако нямат валидация))
- unit тестът трябва да тества само едно нещо
- трябва да сме сигурни, че кодът минава всички тестове преди committing
- съхраняваме на едно място с кода (в същия проект)
- всеки, който има достъп до проекта, трябва да може да стартира тестовете
- тестът трябва да казва ясно какъв резултат се очаква
- failing test трябва да показва, че има бъг в кода, а не грешка в теста