Week 6: Software Testing Flashcards
(34 cards)
What is the purpose of software testing?
To identify faults in the software system and ensure it behaves as expected by surfacing failures caused by faults.
Define a software fault, failure, and error.
- Fault: A bug in the code caused by an error.
- Failure: Incorrect output caused by executing a fault.
- Error: A mistake made by an engineer due to misunderstanding requirements or design.
Why is completely testing a system impossible?
Faults may exist in rarely executed code.
Faults can mask each other, causing no visible failures.
Testing can prove the existence of faults but not their absence.
Testing must be continuous and iterative.
What are the four levels of software testing?
- Unit Testing: Testing individual components or methods.
- Integration Testing: Verifying modules work together.
- System Testing: End-to-end testing of the entire application.
- Acceptance Testing: Validating the application meets customer requirements.
What is blackbox testing?
Testing based on input/output values without knowledge of the internal code or design.
What is whitebox testing?
Testing based on knowledge of the internal code, focusing on logic and implementation.
What is greybox testing?
A combination of blackbox and whitebox testing, where testers have partial knowledge of the internal structure.
What is the difference between manual and automated testing?
Manual Testing: Human-driven testing, suitable for exploratory and review-based scenarios.
Automated Testing: Tool-driven testing, ideal for repetitive tasks and large-scale, complex applications.
What is the focus of functional testing?
Ensuring features work as intended, including unit, integration, system, and acceptance testing.
What is the focus of non-functional testing?
Evaluating aspects like performance, security, usability, and compliance.
Why is debugging different from testing?
- Testing: Identifies failures in a system.
- Debugging: Associates failures with faults and removes them from the system.
What does “Testing can only prove the existence of faults, not their absence” mean?
Testing cannot guarantee all faults are found, as untested scenarios or hidden issues may exist.
What is the primary goal of acceptance testing?
To ensure the software meets customer requirements and expectations.
What are examples of non-functional testing constructs?
Performance, usability, reliability, compatibility, availability, security, and compliance.
What is automated testing?
The use of tools to automate repetitive testing tasks, reducing human effort, cost, and time.
Why is application monitoring important?
To ensure optimal performance, uptime, and functionality, delivering a great user experience.
Name some key indicators monitored in application testing.
Application uptime,
Database performance,
CPU utilization
Broken links
Page load time
Scalability.
What tools are commonly used for monitoring web-based applications?
Performance Monitoring: GTMetrix, PageSpeed Insights, Pingdom, Dotcom-Monitor.
Load Testing: Selenium, JMeter, LoadRunner.
What should you consider when choosing a testing or monitoring tool?
- Ease of Use: Intuitive interface and minimal learning curve.
- Compatibility: Supports multiple browsers and devices.
- Reporting: Provides detailed insights into errors and optimization.
- Exporting: Allows test results to be saved for in-depth analysis.
What is Selenium, and what does it do?
Selenium is a suite of tools for automating web application testing. It supports multiple browsers, programming languages, and parallel execution.
What are the components of the Selenium Suite?
Selenium IDE: A plugin to record and playback tests for prototyping.
Selenium Remote Control (RC): Runs tests in multiple programming languages.
Selenium WebDriver: Configures browsers for automated test execution.
Selenium Grid: Executes tests in parallel across multiple browsers and OSs.
What is load and stress testing?
Testing the system’s performance under real-life load conditions to evaluate scalability, stability, and maximum capacity.
Name tools commonly used for load and stress testing.
JMeter, LoadRunner, LoadView.
What does Apache JMeter do?
Measures performance and load of web applications under various scenarios.
Supports multiple protocols like HTTP, HTTPS, FTP, SOAP, REST, and JDBC