Please type your answers in the comment section below
- What are the differences between manual and automated tests?
- What are the differences between functional and non-functional tests?
- Explain the main idea of the following test types:
- Unit tests
- Integration tests
- End-to-end tests
- Smoke tests
Team Member: Abdullah Alawad, Hadeel Obaid, Noor Alra'i, Wajd Kayyali
Q1. Manual Testing:
• Execution: Human testers manually interact with the application's interface.
• Speed: Slower, relies on human observation.
• Repeatability: Results may vary due to human factors.
• Exploratory Testing: Allows for creative exploration to find defects.
• Setup and Maintenance: Minimal upfront setup, but ongoing efforts can be labor-intensive.
• Human Judgment: Relies on human intuition and judgment.
• Cost: Lower initial investment but may become costlier in the long run.
• Adaptability to UI Changes: Adapts well to frequent UI changes.
• Usability Testing: Well-suited for evaluating user experience and GUI testing.
Automated Testing:
• Execution: Automated tools execute pre-scripted tests.
• Speed: Faster and more efficient for repetitive tasks.
• Repeatability: Provides consistent and repeatable results.
• Exploratory Testing: Primarily focuses on scripted tests, less suitable for exploration.
• Setup and Maintenance: Requires upfront investment but is time-efficient for regression testing.
• Human Judgment: Lacks subjective judgment capabilities.
• Cost: Higher initial setup costs but more cost-effective for repetitive tasks.
• Adaptability to UI Changes: May require script modifications with significant UI changes.
• Usability Testing: Limited in assessing user interface aspects beyond predefined scripts.
Q2. Functional requirements [USER view] —> explain how the system must work, while
non functional requirements [HACKER view] —> explain how the system should perform.
Examples:
functional: APIs testing, Smoke Testing, Unit Testing, and Database Testing.
Non functional: performance testing and stress testing
Q3.
-Unit Testing: Unit testing is the process where you test the smallest functional unit of code. Software testing helps ensure code
quality,
and it's an integral part of software development. It's a software development best practice to write software as small, functional units
then write a unit test for each code unit.