Course Outline
 

 

Introduction & Overview
  • What is Software testing
  • Overview and History of Software testing
Software Testing Basics
  • Testing scope
  • Testing types (Functional vs Non-functional, Static vs Dynamic)
  • Defects and failures
  • Combinations and preconditions of Input
  • Verification and validation of Software
  • SQA and the software testing team
  • The box approach to testing
White Box Testing
  • What is white Box Testing and its introduction
  • Design techniques of White Box Testing
  • Illustrating API testing which is a type of white box testing, with example and implementation
  • Degree of source code testing given by code coverage and its criteria with listing tools for different computer languages
  • Introducing faults to test code paths by Fault injection method, its history, software implementation and tools (research and commercial tools)
  • Modifying program code in small ways by mutation testing, its overview, equivalent mutant and mutant operators in mutation testing
  • Requirement review by static testing
  • Code coverage types in white box testing
  • White box testing as penetration testing
Black box testing
  • Testing application functionality by Black box testing
  • Application functionality testing as per requirement by Specification-based testing
  • Advantages and disadvantages of Black box testing
  • Testing by using Decision tables with example and benefits
  • Testing by pairing input parameter to a system algorithm
  • Using state transition tables in one and two dimension for testing
  • Partitioning the input data in equivalent classes for testing
  • Testing by using values at edges of equivalent classes by boundary value analysis and its application
  • Black box penetration testing
  • Combining white and black box testing in Grey box testing
Unit Testing
  • Overview of testing the smallest part of an application by unit testing
  • Advantages of unit testing in integration, making changes, design and documentation
  • Using abstract interfaces to separate interface from implementation
  • Limitations of Unit testing
  • Using unit testing in Extreme Programming and automation framework
  • Frameworks for Unit testing
  • Direct language support for unit testing
Integration testing
  • Purpose of testing combined modules of software
  • Types of integration testing covering big-bang, top-down and bottom-up
  • Limitations in conducting Integration testing
System testing
  • Testing the whole system
  • Testing the GUI by Planning and artificial intelligence, generating the test case and using Event Flow Graphs
  • Illustrating the history, goals and methods of Usability testing to test Usability of the application
  • Assessing the performance of application by performance testing
  • Testing compatibility of application with computing environment
  • Illustrating Error handling testing, its Verification, support in programming languages, implementation
  • Exception safety of code and its level to handle run-time errors
  • Exception handling based on Design by Contract
  • Checked exceptions in Java
  • Synchronous and asynchronous exceptions
  • Condition systems in Lisp
  • Return to expression that signaled an exception by Continuable exceptions
  • Testing normal and anticipated peak load conditions by Load testing using Software and Mechanical load testing
  • Testing with certain amount of data by Volume testing
  • Security testing for Confidentiality, Integrity, Authentication and Non-repudiation
  • Testing capability to scale by Scalability testing
  • Profiling to profile a program's behavior for optimization
  • History, types, methods to use profiler
  • Testing to determine the stability by performing Stress testing using Rationale, Field experience and Relationship to branch coverage with various Measures.
  • Scale vertically vs. horizontally, Tradeoffs to make and designing for scalability
  • To evaluate whether result of calculation is true by Sanity testing
  • Describing the Exploratory testing with its Benefits and drawbacks
  • Retesting the program for new bugs by Regression testing
  • Testing the Reliability of application by Reliability, Recovery and failover testing
  • Testing compliance to accessibility for disabled persons by Accessibility testing
Miscellaneous Testing Levels
  • Testing System with coexistence with others by System integration testing
  • Explaining Regression, Acceptance, Alpha & Beta testing
Non-functional testing
  • Illustrating Software performance, load, Stability, Usability, Security testing and Internationalization and localization testing
  • Explaining Destructive testing and its types
The Testing Process
  • Testing in Traditional waterfall software development model
  • Capability Maturity Model Integration with testing
  • Testing in Agile or Extreme software development model
  • Explaining a Sample testing cycle
Automated testing
  • Automate the testing process
  • Testing with variety of input arguments of public interfaces by Code-driven testing or Test-driven development
  • Testing by a framework generating user interface events like keystrokes and mouse clicks, and observes the changes by Graphical User Interface (GUI) testing
  • Quantifying what to test in automated tests
  • Applying Framework approach in test automation
  • Defining boundaries between automation framework and a testing tool
  • Various types of Testing tools
  • Measurement to be taken in software testing
Testing Artifacts
  • Various records or artifacts generated during testing are Test plan, Traceability matrix, Test case, Test script, Test suite, Test data and Test harness

Apply for Certification

https://www.vskills.in/certification/Certified-Software-Testing-Professional