0
0
Testing Fundamentalstesting~8 mins

Testing in the software development lifecycle in Testing Fundamentals - Framework Patterns

Choose your learning style9 modes available
Framework Mode - Testing in the software development lifecycle
Folder Structure of a Testing Project
  project-root/
  ├── requirements/          # Documents describing what the software should do
  ├── design/                # Design documents and architecture diagrams
  ├── src/                   # Source code of the application
  ├── tests/                 # Test cases and test scripts
  │   ├── unit/              # Unit tests for small code parts
  │   ├── integration/       # Tests for combined parts
  │   ├── system/            # Tests for the whole system
  │   └── acceptance/        # Tests to check if requirements are met
  ├── test-data/             # Data used for testing
  ├── docs/                  # Testing plans, reports, and manuals
  └── ci-cd/                 # Scripts for continuous integration and deployment
  
Test Framework Layers in the Development Lifecycle
  • Requirement Analysis Layer: Understand what to test based on requirements.
  • Test Planning Layer: Decide what tests to create and when to run them.
  • Test Design Layer: Write test cases and prepare test data.
  • Test Implementation Layer: Develop automated tests or prepare manual test scripts.
  • Test Execution Layer: Run tests and record results.
  • Defect Tracking Layer: Report and track bugs found during testing.
  • Test Reporting Layer: Summarize test results for the team and stakeholders.
Configuration Patterns for Testing in SDLC
  • Environment Setup: Use separate environments for development, testing, and production to avoid conflicts.
  • Test Data Management: Maintain clean and reusable test data sets for consistent testing.
  • Version Control: Keep test scripts and configurations under version control to track changes.
  • Parameterization: Use configuration files or environment variables to switch browsers, URLs, or credentials easily.
  • Scheduling: Automate test runs at specific times or after code changes using CI/CD tools.
Test Reporting and CI/CD Integration
  • Test Reports: Generate clear reports showing passed, failed, and skipped tests with details.
  • Dashboards: Use dashboards to visualize test trends over time for better decision making.
  • Alerts: Configure notifications (email, chat) for test failures to quickly inform the team.
  • CI/CD Integration: Integrate tests into pipelines so tests run automatically on code commits or merges.
  • Traceability: Link test results back to requirements and defects for full visibility.
Best Practices for Testing in the Software Development Lifecycle
  1. Start Testing Early: Begin testing activities as soon as requirements are available to catch issues sooner.
  2. Automate Repetitive Tests: Use automation for regression and frequent tests to save time and reduce errors.
  3. Maintain Clear Documentation: Keep test plans, cases, and results well documented for team understanding and audits.
  4. Collaborate Across Teams: Encourage communication between developers, testers, and business analysts for better quality.
  5. Continuously Improve: Review and update tests and processes regularly based on feedback and defects found.
Self Check Question

Where in this folder structure would you add a new test case that verifies a new feature described in the requirements?

Answer: In the tests/acceptance/ folder, because acceptance tests verify that new features meet the requirements.

Key Result
Testing is integrated throughout the software development lifecycle to ensure quality from requirements to delivery.