Shared Flashcard Set


Software Tester Certification Foundation Level
ITSQB Certification Exam
Computer Science

Additional Computer Science Flashcards




Identify the common reasons for testing
To find and prevent defects - or faults - so serious failures do not occur after shipment.
Showing that software continues to work properly after a change to an existing system.
Predicting quality by measuring results of tests.
Legal requirements and contractual agreements
Describe the causes of software failures
People -> Errors -> Defects
Defects in requirements lead to bad design
Developers not testing while coding
Inappropriate use of a system
External environmental conditions
Illustrate the possible impacts of software defects
Defects in requirements can create a design flaw
Defects in design result in redesign and recoding
Defects in programming results in defects in the executable that is built/deployed
Defects in deployments are from environmental conditions that were not anticipated (hardware/improper use of a system)
Explain how testing relates to software quality
They are not the same.
Software quality is about big picture things - organizational policies, objectives, best practices, process improvements and measurement
QA testing is about evaluating software and providing info to stakeholders about the quality during the software lifecycle
Identify the seven principles common to all testing
1. Testing shows the presence of defects, not the absence of them
2. Exhaustive testing is impossible
3. Early testing is valuable
4. Defects cluster (Pareto Principle)
5. Pesticide paradox - running the same tests over and over won't find any new bugs
6. Testing is context dependent
7. Absence-of-errors fallacy - testing is pointless if the software doesn't fulfill the users' needs and expectations (or if it's unusable)
List the standard test types
Functional testing
Non-functional testing
Structural (white-box) testing
Change-related (maintenance) testing
Specification-based (black-box) testing
Describe each of the test types
Functional testing - usually checks against requirements. Examines from a user's perspective/expectations - inputs and outputs. Ie. interoperability testing
Non-functional testing - checks Reliability, Efficiency, Usability, Maintainability and Portability. Should be based on quantifiable requirements. ISO 9126
Structural testing - based on design and program code. Measured by code coverage. NOT debugging.
Change-related testing - performed after changes are made to an existing systems. This includes, but is not limited to regression testing
Specification-based testing - based on specifications and requirements and does not rely on the system's structure and code. Can include both functional and non-functional requirements.
Identify the viewpoints of developers and testers
Testing and developing should be separate in order to encourage more objective testing.
Developers are viewed as "constructive" and tend to test "what they did". They can take things personally when defects are discovered.
Testers are viewed as "destructive" and test against requirements. They can throw interpersonal skills out the window when documenting bugs.
List ways testers can work effectively with developers
Testers should: communicate findings in a fact-focused way; include positive feedback; collaborate with developers.
Supporting users have an ad free experience!