We believe in agile and this is what we and eventually our customers follow
We are using TDD, a method of software development in which unit testing is repeatedly done on source code. Write the tests watch it fails and then refactor it. The concept is we write these tests to check if the code we wrote works fine. After each test, refactoring is done and then the same or a similar test is performed again. The process is iterated as many times as necessary until each unit is functionally working as expected.
We are using BDD to test that reflect the behavior desired by the stakeholders. BDD provides us a new vocabulary and thus focus for writing a unit test. It is usually done in very English-like language helps the Domain experts to understand the implementation rather than exposing the code level tests.