Skip to content

Instantly share code, notes, and snippets.

@muslemomar
Created May 6, 2024 13:16
Show Gist options
  • Save muslemomar/81153f6e17ea28554adfbb3493bfb1e1 to your computer and use it in GitHub Desktop.
Save muslemomar/81153f6e17ea28554adfbb3493bfb1e1 to your computer and use it in GitHub Desktop.
  1. List four types of tests commonly used in software development.
  2. Explain the difference between unit tests, integration tests, and end-to-end tests.
  3. Explain the concept of TDD and discuss its advantages and disadvantages.
  4. Why is testing considered crucial in software development.
  5. What's the difference between manual testing and automated testing.
  6. Why is integrating testing into CI/CD beneficial for software development?
  7. What are some common types of non-functional tests? How do these tests contribute to the overall quality and reliability of a software system?
@Mohammed-Nazar
Copy link

Mohammed Nazar, Zainab Al-Najjar, Didam Goran, Payam R.
1.
a. Unit Tests
b. Integration Tests
c. Regression Tests
d. Acceptance Tests

a. Unit Tests: These check if small parts of the code (like functions or classes) work correctly on their own.
b. Integration Tests: They ensure that different parts of the code work well together as a whole system.
c. End-to-End Tests: These test the entire application from start to finish, just like how a real user would use it.

Test-Driven Development (TDD) means writing tests before writing the actual code.

Advantages:
Better Code Quality: Helps in writing cleaner and more maintainable code.
Faster Feedback: Catches bugs early, saving time and effort in the long run.
Disadvantages:
Initial Time Investment: Requires extra time upfront to write tests first.
Complex for Existing Code: Harder to implement in projects with existing code.

  1. Testing is crucial in software development because it helps find and fix mistakes early, ensuring that the software works well, performs efficiently, and satisfies users. It saves time and money, builds trust, and makes it easier to make improvements in the future.

  2. Manual Testing:
    Done by humans.
    Testers click around and check if everything works as expected.
    Slower, more subjective, and prone to human error.

Automated Testing:
Done by machines.
Tests are written in code to automatically check the software.
Faster, more reliable, and good for repetitive tasks.

  1. Integrating testing into CI/CD is beneficial because it catches bugs early, provides quick feedback to developers, ensures code quality before deployment, streamlines the deployment process, helps in continuous improvement, and increases development efficiency.

  2. Common non-functional tests include:
    Performance: Checks how fast the software is and how well it handles heavy use.
    Security: Makes sure the software is safe from unauthorized access and data breaches.
    Usability: Tests how easy and intuitive the software is to use.
    Reliability: Ensures the software works consistently over time without crashing.
    Compatibility: Checks if the software works on different devices and systems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment