Software Testing by ajay dev septem 2023

 Goal : understand the phases of testing based on requirements for a project, to apply the concepts taught in the course to formulate test requirements precisely, to design and execute test cases as a part of a standard software development IDE, and to apply specially designed test case design techniques for specific application domains.


WEEK 1Software Testing: Motivation, Software Development Life Cycle, Terminologies and Processes, Software Test Automation: JUnit as an example
WEEK 2Basics of Graphs, Fundamental Graph Algorithms, Elementary Graph Algorithms, Structural Graph Coverage Criteria, Algorithms: Structural Graph Coverage Criteria
WEEK 3Graph Coverage Criteria: Applied to Test Code, Data Flow in Graphs,, Data Flow Testing Example, Unit Testing Based on Graphs: Summary
WEEK 4Software Design and Integration Testing, Design Integration Testing and Graph Coverage, Specification Testing and Graph Coverage, Graph Coverage and Finite State Machines (FSM), Testing Source Code: Classical Coverage Criteria
WEEK 5Logic: Basics needed for Software Testing, Coverage Criteria, Logic Coverage Criteria: Making clauses determine predicate, Applied to test code
WEEK 6Logic: Coverage Example, Coverage Specification, Coverage FSM, Coverage Summary, SMT - Solvers
WEEK 7Symbolic Testing, Concolic Execution, Example and Summary Symbolic Execution
WEEK 8Requirements, Functional Testing, ISP, ISP Example
WEEK 9Regular Expense CFGs, Mutation Testing, Mutation Operators Source Code, Mutation Testing Vs Other Criteria, Mutation Testing For Integration And Tools
WEEK 10Basic Object Oriented (OO) Integration Concepts, Mutation Operators OO Integration, Mutation Operators OO Integration, OO Faults, Coupling Criteria
WEEK 11Web Apps Intro, Client Side Testing, Server Side Testing
WEEK 12Regression Testing, Software Quality Metrics, Non Functional Testing, TDD,Course Summary

Understanding the phases of testing based on project requirements is essential for effective software development. Here's a breakdown of these phases:

1. Requirement Analysis:

  • Begin by thoroughly understanding the project's requirements. This involves collaborating with stakeholders to gather detailed specifications.

2. Test Planning:

  • Develop a comprehensive test plan that outlines the testing scope, objectives, resources, schedule, and testing strategies.
  • Identify the types of testing needed (e.g., functional, performance, security) based on project requirements.

3. Test Design:

  • Create detailed test cases and test scripts based on the project's functional and non-functional requirements.
  • Design test data and test environments to support test cases.

4. Test Environment Setup:

  • Set up the necessary testing infrastructure, including hardware, software, and test data.
  • Ensure that the testing environment closely mimics the production environment.

5. Test Execution:

  • Execute the test cases according to the test plan.
  • Record test results and document any issues or defects found during testing.

6. Defect Reporting and Management:

  • Report defects or issues in a standardized format, including detailed descriptions, steps to reproduce, and severity levels.
  • Track defects through resolution and retesting.

7. Regression Testing:

  • After defect fixes or changes in the code, perform regression testing to ensure that existing functionality remains intact.

8. Performance Testing (if applicable):

  • Conduct performance testing, such as load testing or stress testing, to verify system scalability and performance under different conditions.

9. Security Testing (if applicable):

  • Perform security testing to identify vulnerabilities and protect the system from potential threats.

10. User Acceptance Testing (UAT):

  • Involve end-users or stakeholders in UAT to validate that the software meets their requirements and expectations.

11. Test Closure:

  • Evaluate whether the testing objectives have been met.
  • Prepare test summary reports and share them with stakeholders.

12. Continuous Improvement:

  • Conduct a post-mortem to review the testing process and identify areas for improvement in future projects.

Throughout these phases, it's important to apply appropriate test case design techniques, such as boundary value analysis, equivalence partitioning, and decision table testing, to ensure thorough coverage of test scenarios. Adhering to these phases and techniques helps ensure the quality and reliability of the software product.

Prescribed Books

The following are the suggested books for the course:

Paul Ammann and Jeff Offutt, Introduction to Software Testing, Cambridge University Press, 2008.

Glenford J. Myers, The Art of Software Testing, Second edition, 2008.

Paul C. Jorgensen, Software Testing: A Craftsman’s Approach, Fourth edition, CRC Press, 2014.

Lisa Crispin and Janet Gregory, Agile Testing: A Practical Guide for Testers and Agile Teams, Addison-Wesley, 2009.

Appropriate research papers on testing techniques, information regarding testing tools, as applicable.

ajay dev studying online in kakadeo kanpur time is 9 pm 22 sept 2023 

Comments

Popular posts from this blog

Minimum Cost Spanning Tress: Prim's Algorithm

week 12