Testing Flashcards
Why is automatic testing better than manual testing?
- takes less time
- can be run again and again
- useful for big projects with multiple developers working on them
What are the types of tests that exist?
- unit
- integration
- system
- acceptance
For what part is unit testing done?
Tests specific code sections; each test is for a specific unit of code(small)
Detailed Design
For what is integration testing done?
It tests whether the components work properly together; for complex integration with external services
Architectural Design
What is system testing used for?
It tests complete, real program flows
What is acceptance testing used for?
It tests whether the program fulfils the requirements; usually done with/by the customer
Requirements definition
What is the reglementation used for a coding project and what does it mean?
SPICE - Software Process Improvement and Capability dEtermination(top-down design and bottom-up testing)
What does top-down design mean?
- Requirements
- Architectural Design
- Detailed design
- Coding
- Configuration
What does bottom-up testing mean?
- Configuration
- Testing Data Preparation
- Unit
- Integration
- Acceptance
What are the stages of TDD?
- Design
- Writing Tests
- Writing code
- Refactoring
What is TDD?
Test Driven Development; the concept of defining a method’s specifications through assertions in a test before implementing the method itself.
Why choose TDD?
- tests take time
- they are boring
- less testing if they are left right before the deadline
Should the stages of TDD be done by the same person/team?
No, most stages should be carried out by separate teams so that the people writing the tests would have no knowledge of the implementation. This way, they can test everything from the perspective of the client and be more thorough.
What is JUnit?
A testing framework that can be used for automatic unit testing. The test files are simple classes that make use of annotations and assertions to perform the tests.
What are annotations?
They are structures added above a method to augment its behavior. (@Test, @BeforeEach, @AfterAll etc)