Types of tests

Unit Testing

Unit Testing: Analysing a small piece of code is known as Unit Testing. Each unit test targets a unit of code in isolation. Unit testing should be as simple as possible, and it should not be depended on another functions/classes.

Тестваме само отделните методи на даденият клас. При подаване на някакви тестови аргументи, и знаейки какъв резултат трябва да буде върнат, виждаме дали методът работи правилно.

Не се допуска взаимодействие с какъвто и да било storage (DB, files…) както и например HTTP заявки към други компютри. Ако например ни трябва работа с DB, то фейкваме самата връзка за та не се осъществи реално работа с DB.

Всеки тест е напълно независим от останалите.

Functional Testing

Тези тестове имат цел про да симулират потребителското взаимодействие с SUT като например посредством браузър.
„Отвори този URL, събмитни дадена форма, в отговора има ли даден текст…“

Integration Testing

Много близък до Unit test тип, с разликата че работим реално с DB или друг сторидж.

Acceptance Testing

Acceptance Testing: This is the last phase of the testing process. Here we check the behavior of whole application from users side. End users insert the data and check the output whether it meets the required specifications or not. They just check the flow, not the functionality.

Допускат се взаимодействие с storage (DB, files…) както и например HTTP заявки към други компютри. Тестваме цялостното поведение на SUT от позицията на външен поребител.

Литература:

https://www.valuebound.com/resources/blog/understanding-phpunit-and-how-to-write-unit-test-cases