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?
@HalwestEast
Copy link

HalwestEast commented May 6, 2024

  1. Unit testing.
    Integration testing.
    System testing.
    Acceptance testing.

  2. Unit testing is a software testing process for testing specific units, components, or software elements. integration testing, which is when different software components and modules are combined and tested as a group to make sure everything is ready for the next level. End-to-end testing is a software testing technique that verifies the functionality and performance of an entire software application from start to finish by simulating real-world user scenarios and replicating live data.

  3. It is a software development approach which is about typing the test function before the real code. it helps to improve code quality and it helps with refactorization. it can take too much time.

  4. It ensures that the app is works the way intended and avoids bugs. It confirms that software meets specified requirements and user expectations.

  5. Manual testing involves humans testing and interacting with a software application or product to identify issues, while automated testing uses computer programs, applications, or scripts to write pre-defined tests and run them programmatically

  6. Because you will have faster information about how your code is running making it easier and faster to spot the bugs and fix them, which make integrating of new feature much easier and reliable

  7. Non-Functional Testing is defined as a type of Software testing to check non-functional aspects (performance, usability, reliability) of a software application. It is designed to test the readiness of a system as per nonfunctional parameters which are never addressed by functional testing

Halwest, Dawood, Hanan Isalm, SHvan, Zainab Mirza

@r0deo
Copy link

r0deo commented May 6, 2024

zhin, Amal, Koshyar, Ali, Barham

  1. here we have : unit test, functional testing, Integration tests, Regression Testing
  2. unit tests is like a function that test a specific task and operation in the project, and integration It tests the interactions between various components to ensure they integrate correctly, and end to end tests checks if the user login is successfully performed
  3. Test-Driven Development (TDD) is a software development approach where tests are written before the actual code implementation.
    Advantages: 1.Faster Feedback Loop 2. Improved Code Quality 3.Documentation
    disadvantages: 1.Upfront Investment 2. Learning Curve 3.Maintenance Overhead
    4.Testing is crucial in software development because it helps identify and prevent bugs, ensures that the software meets requirements, improves code quality, and boosts user confidence in the product's reliability and performance. Essentially, it helps catch issues early, reduces the risk of defects in production, and ultimately contributes to a better user experience.

5.Manual testing involves humans executing test cases by hand, while automated testing involves using software tools to execute test cases automatically. Manual testing is more flexible but time-consuming and prone to human error, while automated testing is faster, repeatable, and scalable but requires upfront investment in tools and scripts.

6.Early Issue Detection: Finds problems early.
Quick Feedback: Provides rapid notifications.
Better Code Quality: Maintains high standards.
Confident Releases: Increases trust in deployments.
Smooth Deployment: Reduces chances of deployment failures.
Continuous Improvement: Helps refine both code and processes.
Shift-Left Testing: Encourages testing early in development.

7.For example, using performance testing is a type of non-functional testing that lets you check the performance of an application under heavy traffic or user load. Also, it helps ensure that your application is stable and can handle heavy loads.
common types: 1. Compatibility Testing 2. Performance Testing 3. Security Testing

@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