Part E: Testing Flashcards
Testing definitions
What are Error, Fault, Failure and Incident?
Error: People make errors. A good synonym is mistake. When people make mistakes while coding, we call these mistakes bugs. Errors tend to propagate; a requirements error may be magnified during design and amplified still more during coding.
Fault: A fault is the representation of an error, also called defect.
Failure: A failure occurs when the code corresponding to a fault executes. Software faults become software failures only when they are executed.
Incident: An incident is the symptom associated with a failure that alerts the user to the occurrence of a failure.
Testing definitions
What is testing?
Testing is concerned with errors, faults, failures, and incidents. A test is the act of exercising software with test cases.
Testing definitions
What is your view of the goal of testing?
A test has two distinct goals: to find failures or to demonstrate correct execution.
Testing definitions
What are the limitations of testing?
Testing cannot prove correctness
Testing can demonstrate the presence of defects
Testing cannot prove the absence of defects
Testing levels
Name and describe the different levels of testing.
Unit Testing
UNIT TESTING is a type of software testing where individual units or components of a software are tested. The purpose is to validate that each unit of the software code performs as expected. Unit Testing is done during the development (coding phase) of an application by the developers. Unit Tests isolate a section of code and verify its correctness. A unit may be an individual function, method, procedure, module, or object.
Component Testing
Component Testing is performed on each individual component separately without integrating with other components. Component testing is performed by testers. ‘Unit Testing’ is performed by the developers where they do the testing of the individual functionality or procedure. After Unit Testing is performed, the next testing is component testing. Component testing is done by the testers. It’s one of the most frequent black box testing types which is performed by the QA Team.
Integration Testing
INTEGRATION TESTING is defined as a type of testing where software modules are integrated logically and tested as a group. The purpose of this level of testing is to expose defects in the interaction between these software modules when they are integrated
System Testing System Testing (ST) is a black box testing technique performed to evaluate the complete system's compliance against specified requirements. In System testing, the functionalities of the system are tested from an end-to-end perspective. System Testing is usually carried out by a team that is independent of the development team in order to measure the quality of the system unbiased. It includes both functional and Non-Functional testing.
Acceptance Testing
Acceptance testing, a testing technique performed to determine whether or not the software system has met the requirement specifications. The main purpose of this test is to evaluate the system’s compliance with the business requirements and verify if it has met the required criteria for delivery to end users.
There are various forms of acceptance testing:
User acceptance Testing
Business acceptance Testing
Alpha Testing
Beta Testing
Testing process
What is a common process of doing testing according to ISTQB?
Analyse Test Basis
Identify Test Conditions
Design and Specify Test Cases
Develop Test Procedures
Testing challenges
What are the common testing challenges?
Not enough time to test properly, test well, test thoroughly
Difficulty in determining the expected results of each test
Nonexistent or rapidly changing requirements
Management that either doesn’t understand testing or doesn’t care about quality
No training in testing process
No tool support
White box & black box testing
What is “white box testing”?
White Box Testing is software testing technique in which internal structure, design and coding of software are tested to verify flow of input-output and to improve design, usability and security. In white box testing, code is visible to testers.
White box & black box testing
What is “black box testing”?
Black-box testing is a method of software testing that examines the functionality of an application based on the specifications. The content (implementation) of the black box is not known, and the function of the black box is understood completely in terms of its inputs and outputs.
Test cases
What is a test case?
A test case is a set of inputs and a list of expected outputs
Test cases
When do we say a set of test cases are effective and efficient?
Effective – detect more faults
• Focus attention on specific types of faults
• Know you’re testing the right thing
Efficient – detect faults with less effort
• Avoid duplication
• Systematic techniques are measurable and repeatable
Test coverage
What is test coverage and why is it useful?
Test coverage is a measure of how much of the program is executed when a set of test cases are run, in percentage. For example the number of lines of code or number of paths that is covered when the program runs.
Test coverage
Name and describe a few code coverages
test coverage is to see how much of the code you execute with your test case.
Statement coverage - statements executed by test case
decision coverage - decisions executed by test case. Stronger than statements coverage.
condition coverage -
path coverage -
Test coverage
Is a set of test cases with higher coverage are “better” test cases (discuss in terms of more effective and efficient)?
high test coverage makes it efficient, but it does not tell it to be more effective.
Static testing
What is review?
Review is to read the code of another person’s work.