Sobes.tech
Junior

What stages and types of testing exist in the application build process?

sobes.tech AI

Answer from AI

  • Unit Testing: Testing the smallest independent parts of code (functions, methods, classes). Checks their correctness in isolation.
  • Integration Testing: Testing the interaction of multiple modules or system components. Checks how they work together.
  • Functional Testing: Testing the application's functional requirements. Checks whether the application performs the declared functions.
  • Acceptance Testing: Testing for compliance with end-users or customer's expectations. Checks whether the application meets business requirements.
  • System Testing: Testing the integrated system as a whole. Checks full compliance with specifications.
  • Performance Testing: Testing system performance, scalability, and stability under various loads. Includes:
    • Load Testing (testing under expected load)
    • Stress Testing (testing under load exceeding expectations)
    • Soak/Endurance Testing (testing stability under prolonged load)
    • Spike Testing (testing reaction to sudden load increase)
  • Security Testing: Testing the system for vulnerabilities and data protection. Includes:
    • Penetration Testing (attack simulation)
    • Vulnerability Scanning (automatic vulnerability detection)
    • Security Auditing (code and configuration analysis)
  • Usability Testing: Testing the application's ease of use for end-users.
  • Regression Testing: Re-testing after making changes to code or configuration to ensure new changes haven't broken existing functionality.

Types of testing during the build process (often automated):

  • Static Analysis: Code analysis without execution to find potential errors, coding standard violations, and vulnerabilities.
  • Dependency Checking: Checking versions and licenses of used libraries and dependencies.
  • Code Coverage Analysis: Determining the percentage of code covered by automated tests.
  • Container Scans: Scanning container images for vulnerabilities and misconfigurations.
  • Integration Tests: Often run as part of CI/CD pipeline after successful Unit Tests.
  • End-to-End Tests: Testing the full user flow through the system. They can be part of automated build tests but are often run less frequently due to execution time and maintenance complexity.