CHAPTER 2
Types of Testing
Areas to be covered
• Manual Testing Tutorials for Beginners
• Automation Testing
• Category of Testing
• Unit Testing
• Integration Testing
• System Testing
• Smoke and Sanity Testing
• What is Regression Testing?
TYPES OF TESTING
Software Testing can be divided into two major categories namely:
Functional Testing: This is a testing technique that is used to test the
features/functionality of a software.
Examples of Functional Testing include, System testing, Integration Testing,
User Acceptance Testing etc.
Non-functional Testing: This is a software testing technique that verifies the
attributes of the system such as memory leaks, performance or robustness
of the system.
Examples if Non-functional Testing include Performance Testing, Security
Testing
MANUAL TESTING
What is Manual testing?
Manual Testing is a type of Software Testing where Testers manually
execute test cases without using any automation tools.
Any new application must be manually tested before its testing can be
automated. Manual testing requires more effort, but is necessary to
check automation feasibility.
• Manual Testing does not require knowledge of any testing tool.
• One of the Software Testing Fundamental is "100% Automation is
not possible".
• This makes Manual Testing imperative.
Myths of Manual Testing
• Myth: Anyone can do manual testing
• Fact: Testing requires many skill sets
• Myth: Testing ensures 100% defect free product
• Fact: Testing attempts to find as many defects as possible. Identifying all
possible defects is impossible.
• Myth: Automated testing is more powerful than manual testing
• Fact: 100% test automation cannot be done. Manual Testing is also
essential.
• Myth: Testing is easy
• Fact: Testing can be extremely challenging .Testing an application for
possible use cases with minimum test cases requires high analytical skills.
Manual Testing vs Automation Testing
Manual Testing Automated Testing
Manual testing requires human intervention for test
execution.
Automation Testing is use of tools to execute test cases
Manual testing will require skilled labor, long time & will
imply high costs.
Automation Testing saves time, cost and manpower. Once
recorded, it's easier to run an automated test suite
Any type of application can be tested manually, certain
testing types like ad-hoc and monkey testing are more
suited for manual execution.
Automated testing is recommended only for stable systems
and is mostly used for regression testing
Manual testing can be become repetitive and boring.
The boring part of executing same test cases time and again,
is handled by automation software in automation testing.
AUTOMATION TESTING
What is Automation Testing?
• Manual testing is performed by a human sitting in front of a computer
carefully executing the test steps.
• Automation Testing means using an automation tool to execute your
test case suite.
• Goal of Automation is to reduce number of test cases to be run
manually and not eliminate manual testing all together.
AUTOMATION TESTING
Tools to Automate Manual Testing
• Selenium
• QTP
• J-meter
• Load runner
• Quality Center (ALM)
Automated Testing Process:
Following steps are followed in an Automation Process
Two Category of Software Testing
• Black Box Testing
• White Box Testing
• System test falls under the black box testing category of software
testing.
• White box testing is the testing of the internal workings or code of a
software application. In contrast, black box or system testing is the
opposite. System test involves the external workings of the software
from the user's perspective.
Unit Testing
Testing performed on each module or block of code during
development. Unit testing is normally done by the programmer who
writes the code.
Integration Testing
Testing done before, during and after integration of a new module into
the main software package. This involves testing of each individual
code module. One piece of software can contain several modules
which are often created by several different programmers. It is crucial
to test each module's effect on the entire program model.
System Testing
System testing is the testing of a complete and fully integrated software
product.
System testing is actually a series of different tests whose sole purpose
is to exercise the full computer based system.
Smoke Testing
• Smoke Testing is a kind of Software Testing performed after software
build to ascertain that the critical functionalities of the program is
working fine. It is executed "before" any detailed functional or
regression tests are executed on the software build. The purpose is to
reject a badly broken application, so that the QA team does not waste
time installing and testing the software application.
Sanity Testing
• Sanity testing is a kind of Software Testing performed after receiving a
software build, with minor changes in code, or functionality, to
ascertain that the bugs have been fixed and no further issues are
introduced due to these changes. The goal is to determine that the
proposed functionality works roughly as expected. If sanity test fails,
the build is rejected to save the time and costs involved in a more
rigorous testing.
Smoke Testing Vs Sanity Testing - Key Differences
Smoke Testing Sanity Testing
Smoke Testing is performed to ascertain that the critical
functionalities of the program is working fine
Sanity Testing is done to check the new functionality / bugs have
been fixed
The objective of this testing is to verify the "stability" of the
system in order to proceed with more rigorous testing
The objective of the testing is to verify the "rationality" of the
system in order to proceed with more rigorous testing
This testing is performed by the developers or testers Sanity testing is usually performed by testers
Smoke testing is usually documented or scripted Sanity testing is usually not documented and is unscripted
Smoke testing is a subset of Regression testing Sanity testing is a subset of Acceptance testing
Smoke testing exercises the entire system from end to end
Sanity testing exercises only the particular component of the
entire system
Smoke testing is like General Health Check Up Sanity Testing is like specialized health check up
Regression Testing
Regression testing involves testing done to make sure none of the
changes made over the course of the development process have
caused new bugs. It also makes sure no old bugs appear from the
addition of new software modules over time.
TYPES OF TESTING
Acceptance testing - beta testing of the product done by the actual end users.
Usability Testing - Usability testing mainly focuses on the user's ease to use the
application, flexibility in handling controls and ability of the system to meet its
objectives
Load Testing - Load testing is necessary to know that a software solution will perform
under real-life loads.
Recovery Testing - Recovery testing is done to demonstrate a software solution is
reliable, trustworthy and can successfully recoup from possible crashes.
Migration Testing - Migration testing is done to ensure that the software can be moved
from older system infrastructures to current system infrastructures without any issues.
Conclusion
• Both sanity tests and smoke tests are ways to avoid wasting time and effort by
quickly determining whether an application is too flawed to merit any rigorous
testing.
• Smoke testing performed on a particular build is also known as a build
verification test.
• Both smoke and sanity tests can be executed manually or using an automation
tool. When automated tools are used, the tests are often initiated by the same
process that generates the build itself.
• In industry, test cases for Sanity Testing are commonly combined with that for
smoke tests, to speed up test execution. Hence, it's a common that the terms are
often confused and used interchangeably
ASSIGNMENT
• Compare and contrast V-model methodology and agile methodology
Note :It should a one-page document. It should be submitted latest by
48 hours before the next class.

WEEK 2 SOFTWARE TESTING TRAINING MANUAL _TYPES OF TESTING FINAL.pptx

  • 1.
  • 2.
    Areas to becovered • Manual Testing Tutorials for Beginners • Automation Testing • Category of Testing • Unit Testing • Integration Testing • System Testing • Smoke and Sanity Testing • What is Regression Testing?
  • 3.
    TYPES OF TESTING SoftwareTesting can be divided into two major categories namely: Functional Testing: This is a testing technique that is used to test the features/functionality of a software. Examples of Functional Testing include, System testing, Integration Testing, User Acceptance Testing etc. Non-functional Testing: This is a software testing technique that verifies the attributes of the system such as memory leaks, performance or robustness of the system. Examples if Non-functional Testing include Performance Testing, Security Testing
  • 4.
    MANUAL TESTING What isManual testing? Manual Testing is a type of Software Testing where Testers manually execute test cases without using any automation tools. Any new application must be manually tested before its testing can be automated. Manual testing requires more effort, but is necessary to check automation feasibility. • Manual Testing does not require knowledge of any testing tool. • One of the Software Testing Fundamental is "100% Automation is not possible". • This makes Manual Testing imperative.
  • 5.
    Myths of ManualTesting • Myth: Anyone can do manual testing • Fact: Testing requires many skill sets • Myth: Testing ensures 100% defect free product • Fact: Testing attempts to find as many defects as possible. Identifying all possible defects is impossible. • Myth: Automated testing is more powerful than manual testing • Fact: 100% test automation cannot be done. Manual Testing is also essential. • Myth: Testing is easy • Fact: Testing can be extremely challenging .Testing an application for possible use cases with minimum test cases requires high analytical skills.
  • 6.
    Manual Testing vsAutomation Testing Manual Testing Automated Testing Manual testing requires human intervention for test execution. Automation Testing is use of tools to execute test cases Manual testing will require skilled labor, long time & will imply high costs. Automation Testing saves time, cost and manpower. Once recorded, it's easier to run an automated test suite Any type of application can be tested manually, certain testing types like ad-hoc and monkey testing are more suited for manual execution. Automated testing is recommended only for stable systems and is mostly used for regression testing Manual testing can be become repetitive and boring. The boring part of executing same test cases time and again, is handled by automation software in automation testing.
  • 7.
    AUTOMATION TESTING What isAutomation Testing? • Manual testing is performed by a human sitting in front of a computer carefully executing the test steps. • Automation Testing means using an automation tool to execute your test case suite. • Goal of Automation is to reduce number of test cases to be run manually and not eliminate manual testing all together.
  • 8.
    AUTOMATION TESTING Tools toAutomate Manual Testing • Selenium • QTP • J-meter • Load runner • Quality Center (ALM)
  • 9.
    Automated Testing Process: Followingsteps are followed in an Automation Process
  • 10.
    Two Category ofSoftware Testing • Black Box Testing • White Box Testing • System test falls under the black box testing category of software testing. • White box testing is the testing of the internal workings or code of a software application. In contrast, black box or system testing is the opposite. System test involves the external workings of the software from the user's perspective.
  • 11.
    Unit Testing Testing performedon each module or block of code during development. Unit testing is normally done by the programmer who writes the code.
  • 12.
    Integration Testing Testing donebefore, during and after integration of a new module into the main software package. This involves testing of each individual code module. One piece of software can contain several modules which are often created by several different programmers. It is crucial to test each module's effect on the entire program model.
  • 13.
    System Testing System testingis the testing of a complete and fully integrated software product. System testing is actually a series of different tests whose sole purpose is to exercise the full computer based system.
  • 14.
    Smoke Testing • SmokeTesting is a kind of Software Testing performed after software build to ascertain that the critical functionalities of the program is working fine. It is executed "before" any detailed functional or regression tests are executed on the software build. The purpose is to reject a badly broken application, so that the QA team does not waste time installing and testing the software application.
  • 15.
    Sanity Testing • Sanitytesting is a kind of Software Testing performed after receiving a software build, with minor changes in code, or functionality, to ascertain that the bugs have been fixed and no further issues are introduced due to these changes. The goal is to determine that the proposed functionality works roughly as expected. If sanity test fails, the build is rejected to save the time and costs involved in a more rigorous testing.
  • 16.
    Smoke Testing VsSanity Testing - Key Differences Smoke Testing Sanity Testing Smoke Testing is performed to ascertain that the critical functionalities of the program is working fine Sanity Testing is done to check the new functionality / bugs have been fixed The objective of this testing is to verify the "stability" of the system in order to proceed with more rigorous testing The objective of the testing is to verify the "rationality" of the system in order to proceed with more rigorous testing This testing is performed by the developers or testers Sanity testing is usually performed by testers Smoke testing is usually documented or scripted Sanity testing is usually not documented and is unscripted Smoke testing is a subset of Regression testing Sanity testing is a subset of Acceptance testing Smoke testing exercises the entire system from end to end Sanity testing exercises only the particular component of the entire system Smoke testing is like General Health Check Up Sanity Testing is like specialized health check up
  • 17.
    Regression Testing Regression testinginvolves testing done to make sure none of the changes made over the course of the development process have caused new bugs. It also makes sure no old bugs appear from the addition of new software modules over time.
  • 18.
    TYPES OF TESTING Acceptancetesting - beta testing of the product done by the actual end users. Usability Testing - Usability testing mainly focuses on the user's ease to use the application, flexibility in handling controls and ability of the system to meet its objectives Load Testing - Load testing is necessary to know that a software solution will perform under real-life loads. Recovery Testing - Recovery testing is done to demonstrate a software solution is reliable, trustworthy and can successfully recoup from possible crashes. Migration Testing - Migration testing is done to ensure that the software can be moved from older system infrastructures to current system infrastructures without any issues.
  • 19.
    Conclusion • Both sanitytests and smoke tests are ways to avoid wasting time and effort by quickly determining whether an application is too flawed to merit any rigorous testing. • Smoke testing performed on a particular build is also known as a build verification test. • Both smoke and sanity tests can be executed manually or using an automation tool. When automated tools are used, the tests are often initiated by the same process that generates the build itself. • In industry, test cases for Sanity Testing are commonly combined with that for smoke tests, to speed up test execution. Hence, it's a common that the terms are often confused and used interchangeably
  • 20.
    ASSIGNMENT • Compare andcontrast V-model methodology and agile methodology Note :It should a one-page document. It should be submitted latest by 48 hours before the next class.

Editor's Notes

  • #4 Goal of Manual Testing The key concept of Manual Testing is to ensure that the application is error free and it is working in conformance to the specified functional requirements. Test Suites or cases ,are designed during the testing phase and should have 100% test coverage. It also makes sure that reported defects are fixed by developers and re-testing has been performed by testers on the fixed defects. Basically, this testing checks the quality of the system and delivers bug-free product to the customer Basically, this testing checks the quality of the system and delivers bug-free product to the customer
  • #5 Goal of Manual Testing The key concept of Manual Testing is to ensure that the application is error free and it is working in conformance to the specified functional requirements. Test Suites or cases ,are designed during the testing phase and should have 100% test coverage. It also makes sure that reported defects are fixed by developers and re-testing has been performed by testers on the fixed defects. Basically, this testing checks the quality of the system and delivers bug-free product to the customer Basically, this testing checks the quality of the system and delivers bug-free product to the customer
  • #6 Goal of Manual Testing The key concept of Manual Testing is to ensure that the application is error free and it is working in conformance to the specified functional requirements. Test Suites or cases ,are designed during the testing phase and should have 100% test coverage. It also makes sure that reported defects are fixed by developers and re-testing has been performed by testers on the fixed defects. Basically, this testing checks the quality of the system and delivers bug-free product to the customer Basically, this testing checks the quality of the system and delivers bug-free product to the customer
  • #8 Which Test Cases to Automate? High Risk - Business Critical test cases Test cases that are executed repeatedly Test Cases which are time consuming The following category of test cases are not suitable for automation: Test Cases that are newly designed and not executed manually  at least once Test Cases for which the requirements are changing frequently
  • #9 Goal of Manual Testing The key concept of Manual Testing is to ensure that the application is error free and it is working in conformance to the specified functional requirements. Test Suites or cases ,are designed during the testing phase and should have 100% test coverage. It also makes sure that reported defects are fixed by developers and re-testing has been performed by testers on the fixed defects. Basically, this testing checks the quality of the system and delivers bug-free product to the customer Basically, this testing checks the quality of the system and delivers bug-free product to the customer
  • #13 Sample Integration Test Cases for the following scenario: Application has 3 modules say 'Login Page', 'Mail box' and 'Delete mails' and each of them are integrated logically. Here do not concentrate much on the Login Page testing as it's already been done in Unit Testing. But check how it's linked to the Mail Box Page.
  • #16 The objective is "not" to verify thoroughly the new functionality, but to determine that the developer has applied some rationality (sanity) while producing the software. For instance, if your scientific calculator gives the result of 2 + 2 =5! Then, there is no point testing the advanced functionalities like sin 30 + coos 50
  • #18 The objective is "not" to verify thoroughly the new functionality, but to determine that the developer has applied some rationality (sanity) while producing the software. For instance, if your scientific calculator gives the result of 2 + 2 =5! Then, there is no point testing the advanced functionalities like sin 30 + cos 50