Foundations Of Testing Flashcards
What are the six primary duties of testers?
- Evaluating the system being tested
- Test planning
- Designing & implementing tests
- Test execution
- Analyzing results
- Reporting testing progress
What is Dynamic Testing vs Static Testing. Give one example of each testing type.
Dynamic testing is when a system or component is under test (currently being tested) Ex: The execution of a workflow within a system to ensure that it works
Static testing is When a system is not directly being used as part of the testing Ex: Reading a technical description of the system that has not yet been created and asking questions that lead to changes in the design based on issues not yet introduced into the system
What is validation testing.
Checking that the system will meet user needs such as accessibility
What are seven objectives of a typical testing project?
① Preventing defects- by evaluating requirements, user stories, designs & code
② Verifying-all specified requirements have been fulfilled
③ Checking for completeness- by validating if it works as stakeholders expect
④ Build confidence in the system under test
⑤ Reduce risk level-by finding defects and failures before handing the system over to the customer
⑥ Providing sufficient information to stakeholders
⑦ Making sure the system complies with contractual and legal requirements and standards
What’s the difference between testing and debugging?
- Testing - execution of tests that can show failures that are caused by defects in the system
- Debugging - development activity that finds, analyzes and fixes such defects
(In some SDLC’s, including Agile, the tester may do both component testing and debugging)
Why is Testing Necessary?
- Reduces the risk of failures
- Contributes to the quality of the components or system
- Produces a better product overall
- Ensures the system meets industry-specific standards and meets contractual and legal requirements
How can testers help early in the SDLC before coding even begins? What are some benefits to this?
① Testers review initial requirements and user stories to find any requirement defects- Ex: an untestable feature
② Then they work with other team members to identify & remove design defects before coding begins.
- Having testers work with developers while the system is being designed can increase everyone’s understanding of the system and how to test it.
- This allows needed tests to be identified early in the SDLC
How are QA and software testing related?
Quality Assurance - is the maintenance of a desired level of quality in a service or product by means of attention to every stage of the process of production and/or delivery. It addresses a number of management issues. Examples:
① Checklists
② Project analysis
③ Development techniques & methods
- Every product development process is affected by QA, including predesign, development, testing, & product release
Software Testing- is a group of processes aimed at ensuring the existing version of the software produces results most similar to those specified in the requirements and then providing clear and understandable error reports
Testing is a part of the overall QA strategy
How are software testing and QA different?
- Software testing assists with finding and fixing existing errors. While QA aims to avoid them in the first place
- QA focuses on ensuring stakeholders are satisfied with the design while testers aim to detect bugs or bigger shortfalls
According to the ISTQB glossary, what’s the difference between Errors, Defects , and Failures?
ERRORS are mistakes made by people. This can lead to the introduction of a DEFECT in the code and a FAILURE which is the resulting crash from running the defective code.
Name at least three reasons errors are made in the SDLC
• Time pressure
• Inexperienced project participants
• Miscommunication
• Insufficient skill
• Code complexity
• Unfamilar technologies
• Basic human fallibility
Give a 3 step example of the following principle: “An error that leads to the introduction of a defect in one component can trigger an error that leads to the introduction of a defect in a related component”
① an error in the requirements of a component can introduce a requirements defect
② This can result in a coding error which leads to a defect in the code
③ A failure is the result of that defective code being executed
Failures can be caused by things other than code defects what is one example?
Environmental conditions like radiation, electromagnetic fields, and pollution can cause defects in firmware or influence the execution of software by changing the hardware’s conditions
What are the seven principles of software testing?
① Testing shows the presence of defects, not their absence
⑦ Absence of errors is a fallacy
② Exhaustive testing is impossible
③ Early testing saves time and money
④ Defects cluster together
- A small number of modules usually contain most of the defects or operational failures
⑤ Beware of the Pesticide Paradox which states that The same tests repeated several times eventually stop finding new defects. Therefore existing tests & test data may need to evolve in order to find new defects
⑥ Testing is context dependent
What are some contextual factors that might determine the testing strategy of a project?
- SDLC models & project methodologies used
- Test types and levels being considered
- Product & Project risks
- Business Domain
- Operational Constraints
- Organizational policies
- Internal/External standards