Software quality assurance in DESFIDE is a process affecting project lifecycle in all phases. QA is a process aiming to make resulting product satisfy project specification. Quality assurance is provided through many procedures and techniques and includes unit testing, user testing, system testing, code reviews and other.
Unit Tests
Unit tests are a bridge between project requirements and actual software code.
Every website and application we develop is based on principles of test-driven development. This paradigm states that prior to any new features are implemented test modules must first be written, then production code is developed to make these tests pass and finally the code must be refactored.
Unit tests provide fast feedback after any change implemented in the system, which results in code quality, immediate reaction to any system defect that caused test failure and overall software quality and supportability.
Manual (User) Tests
Although unit testing is a powerful and generally accepted technique for making software reliable and scalable, it can’t guarantee that software satisfy all the requirements listed in specification. The latter can only be provided by simulations, during which quality analysts test websites and applications in environment very close to real-world needs. The functional and usability tests performed by them simulate all aspects of user interaction with the software that is being developed.
System Testing
System testing procedures include performance, load, volume and security testing. This type of testing is meant to prove system is stable in the real-world environment. System testing is conducted by quality analysts with special testing tools.