Final Flashcards
(113 cards)
Error
Mistake that introduces a fault (making a typo or conceptual misunderstanding)
Fault
Instance of incorrect code that can lead to a failure (a “bug” in the code)
A fault is something “wrong” with the code that leads to the software behaving in unexpected ways (aka failures).
Failure
Deviation from the expected behavior
Why do failures occur?
Failures occur because there exists a fault (bug) in the code.
What introduces a fault into a program?
A fault (bug) is introduced to the program when a programmer makes an error (mistake).
When you make a typo it’s a _____, but the typo in the code itself is a ____.
Making a typo is an error, but the typo in the code itself is a fault.
How are failures discovered?
Failures are not discovered by looking at the code, but by observing that the “output” for a given “input” is not what we expected.
Functional testing
Used to verify the software meets the requirement specifications when it comes to functionality: does it do what it is expected to do?
Types of functional testing
Unit testing
Integration testing
Regression testing
Acceptance testing
Non-functional testing
Used to verify software performs at the required levels (performance, usability, reliability, and robustness)
Types of non-functional testing
Performance testing
Scalability testing
Usability testing
Acceptance testing
Pros and cons of manual testing
Pros: intuitive, no upfront cost
Cons: time-consuming, human mistakes could miss software failures, not easily repeatable.
Pros and Cons of Automated Testing
Pros: Easy to repeat, fewer mistakes, very efficient / Cons: high upfront cost/time, not suited for everything (like UI testing), test maintenance
5 categories of software development process
Requirements, design, implementation, verification, maintenance
SDP: requirements
determine what the software must do
SDP: design
planning how to bring requirements to life
SDP: implementation
coding
SDP: verification
ensure the implementation meets the requirements
SDP: maintenance
bug fixes, add features, fix non-functional requirements
What is software testing?
trying to generate a fail state in software with ultimate goal of being unable to do so.
Testing Framework
Used for automated testing, provides following functionality: 1) test fixture, 2) test case, 3) test suite, 4) test runner
TF: test fixture
a way to set up elements required for a test and then roll back the setup when test is complete
TF: test case
a way to test a particular unit of the software with a specific input for a given response
TF: Test suite
a collection of test cases