Introduction Flashcards
(134 cards)
What is Software Testing?
Software testing is an investigation conducted to provide stakeholders with information about the quality (the degree to which a product meets customer expectations) of the product or service under test.
Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation.
Software testing can be stated as the process of validating and verifying that a computer program/ application/ product: meets the requirements that guided its design and development works as expected can be implemented with the same characteristics satisfies the needs of stakeholders.
What does Poppendieck’s theory tell us about the development cycle and the need for testing…
Poppendieck’s estimate that each handoff leaves
behind approximately 50% of the knowledge we intend to transfer
What is Positive Testing?
Does the software meet the requirements ?
Do the requirements meet the users needs ?
What is Negative Testing?
Finding defects in code and requirements
Trying to break the system
Demonstrating it does not do what its not supposed to do
What two features of a product must be assessed by testing?
Quality
The degree to which a component, system or process meets the specified requirements and/or user/customer needs and expectations.
Risk
A factor that could give negative consequences; usually expressed as impact and likelihood
What is the Test Basis?
All documents from which the requirements of a component or system can beinferred. The documentation on which the test cases are based. If a document can be amended only by way of formal amendment procedure, then the test basis is called a frozentest basis.
What is a Test Condition?
An item or event of a component or system that could be verified by one or more test cases, e.g. a function, transaction, feature, quality attribute, or structural element.
What is a Test Case?
A set of input values, execution preconditions, expected results and execution postconditions, developed for a particular objective or test condition, such as to exercise a particular program path or to verify compliance with a specific requirement.
What are the 5 Main activities in the Testing process?
Test Planning and Control Test Analysis and Design Test Implementation and Execution. Evaluating Exit Criteria and Reporting (can loop back to any previous stage and move down through again) Test Closure
What is Test Planning?
The activity of defining the objectives of testing and the testing activities
What is Test Control?
The on-going activity of comparing progress against the plan and reporting status
What tasks are involved in the Test Analysis and Design
phase?
Reviewing the test basis
Evaluating the testability of the test basis
Identifying and prioritising test conditions
Designing and prioritising high level test cases
Identifying necessary test data
Designing the test environment set-up
Identifying any required infrastructure and tools
Creating bi-directional traceability
Test cases to test basis
Test basis to test cases
What tasks are involved in the Test Implementation and Execution phase?
Finalising and prioritising test cases
Finalising the test data
Developing and prioritising test procedures
Creating the test data
Preparing test harnesses
Writing automated test scripts
Creating test suites from the test procedures for efficiency
Verifying the test environment has been set up correctly
Verifying traceability between test basis and test cases
Executing test procedures in planned sequence
Manually or using test execution tools
Logging the outcome of test execution
Comparing actual results with expected results
Recording discrepancies as incidents
Analysing incidents for causes
Repeating test activities (with any necessary regression)
What tasks are involved in the Evaluating Exit Criteria and Reporting phase?
Checking logs against exit criteria specified in Test Planning
Assessing if more tests are required
Assessing if exit criteria need changing
Writing a test summary for stakeholders
What tasks are involved in the Test Closure phase?
Checking planned deliverables have been delivered
Closing incident reports
Raising change records for remaining open incidents
Documenting the acceptance of the system
Finalising and archiving test-ware and test environment
Analysing lessons learned
Using information gathered to improve test maturity (retrospective)
What are the Seven Principles of Testing?
Testing shows the presence of defects Exhaustive testing is impossible Early testing Defect Clustering Pesticide paradox Testing is context dependent Absence-of-errors fallacy
Explain the principle: Testing shows the presence of defects?
Testing can show the defects are present, but cannot prove that there are no defects. Even after testing the application or product thoroughly we cannot say that the product is 100% defect free.
Testing always reduces the number of undiscovered defects remaining in the software but even if no defects are found, it is not a proof of correctness.
Explain the principle: Exhaustive testing is impossible?
Testing everything including all combinations of inputs and preconditions is not possible. So, instead of doing exhaustive testing we can use risks and priorities to focus testing efforts.
For example: In an application in one screen there are 15 input fields, each having 5 possible values, then to test all the valid combinations you would need 30,517,578,125 (515) tests. This is very unlikely that the project timescales would allow for this number of tests. So, accessing and managing risk is one of the most important activities and reason for testing in any project.
Explain the principle: Early testing?
In the software development life cycle testing activities should start as early as possible and should be focused on defined objectives.
Explain the principle: Defect Clustering?
A small number of modules contains most of the defects discovered during pre-release testing or shows the most operational failures.
Explain the principle: Pesticide paradox?
If the same kinds of tests are repeated again and again, eventually the same set of test cases will no longer be able to find any new bugs. To overcome this “Pesticide Paradox”, it is really very important to review the test cases regularly and new and different tests need to be written to exercise different parts of the software or system to potentially find more defects.
Explain the principle: Testing is context dependent?
Testing is basically context dependent. Different kinds of sites are tested differently. For example, safety – critical software is tested differently from a free mobile app.
Explain the principle: Absence-of-errors fallacy?
If the system built is unusable and does not fulfil the user’s needs and expectations then finding and fixing defects does not help.
What are the differences between the mindset of a Developer vs a Tester?
Developer:
The software is of acceptable quality and will work
Tend to look for what works
Thinks testers are too negative and pedantic
Tester:
The software contains defects and won’t work
Tend to look for what does not work
Thinks developers are too optimistic