Manual Testing





Manual Testing


--------------------
you can check the playlist

Testing Concepts-Theory
Testing Process-Theory + Practical
Agile-Continuous Integration -Theory


What is software ?

A Software is a collection of computer programs that helps us to
perform a task.

Types of software
------------------
System Software
     Ex:Device drivers, OS, servers,utilities, etc.
Programming Software
     Ex:compilers,debuggers,interpreters, etc.
Application Software
     Ex: Industrial automation, business software, games, telecoms,etc.

Product Vs Project
------------------

if software application is developed for specific customer requirement
then it is called project.

if software application is developed for multiple customers requirement
then it called product.

What is Software Testing?
-------------------------
Software Testing is part of software development process.

Software Testing is an activity to detect and identify the defects in the
software.

The objective of testing is to release quality product to the client.

Why do we need testing?
-----------------------
Ensure that software is bug free.

Ensure that system meets customer requirements and software
specifications.

Ensure that system meets end user expectation

Fixing the bugs identified after release is expensive.

Software Quality
----------------

Quality: Quality is defined as justification of all the requirements of a
customer in a product.
 -Note:Quality is not defined in the product. it is defined in the customer's mind.

Quality software is reasonably

 -Bug-free.
 -Delivered on time.
 -Within budget.
 -Meets requirements and /or expectations.
 -Maintainable.

Error,bug &failure
------------------
Error: Any incorrect human action that produces a problem in the system is called
an error.

Defect/Bug: Deviation from the expected behavior to the actual behavior of the
system is called defect.

Failure: The deviation identified by end-user while using the system is called a
failure.


Why there are bugs in software ?
-------------------------------

Miscommunication or no communication

Software complexity

Programming errors

Changing requirements

Lack of skilled testers

etc...

Software Development Life Cycle (SDLC)
--------------------------------------

SDLC,Software Development Life Cycle is a process used by software
industry to design,develop and test high quality software's.

The SDLC aims to produce a high quality software that meets
customer expectations.

SDLC Models
------------
Waterfall Model
Incremental Model
Spiral Model
V-Model
Agile Model

Waterfall Model
----------------

Requirement----|
Analysis
             System----------|
             Design
                       Implementation----|
                               
                                      Testing------|

                                               Deployment------|

                                                           Maintenance


Incremental/Iterative Model
----------------------------------



                           

              ----Design&   ----Testing----Implementation
              |  Development       
              |
              |
              |
 Requirements |---Design&    ----Testing----Implementation
              |  Development   
              |
              |   
              |   Design&    ----Testing----Implementation
              |---Development
                   





Spiral Model
-----------------
 .                                              .
     .                                       .
         .          Requirement           .
            .       and Analysis       .
               .                    .     
                   .             .
    Planning           .       .             Design
                          .
.   .   .   .   .   .   .   .   .   .   .   .   .   .
                      .        .
  Deployment
          and       .
 Acceptance   .                .         Construction
                     

              .      Testing            .                                         

      .                                            .
       
-System Maintenance
-System Development
-System Enhancement
-Concept Development


V-Model
--------

             Verification                                                         Validation
               
               {BRS/CRS/URS-------------------------User Acceptance
                                                                            Testing}

                      {(Review)   SRS------------System Testing
                                                                    (Black Box
                                                                      Testing
                                                             Technique)}
               
                            {(Review) {HLD--------|
                                                      Integration Testing
                                               {LLD--------|
                                 
                                             Coding---Unit
                                                           Testing


Agile Model
------------------

                                      Planning
Testing                                                         Req Analysis
                                 Iteration 1
      Building                                             Designing
   


                            after 2-3 months 


                                                                        Planning
                                       Testing                                                         Req Analysis
                                                                   Iteration  2
                                             Building                                             Designing



                                                                     after 2-3 months


                                                                                                 Planning
                                                                  Testing                                                         Req Analysis
                                                                                                   Iteration  3
                                                                        Building                                             Designing



QA vs QC/QE
------------------
QA-Quality Assurance
QC-Quality Control
QE-Quality Engineering

            QA  (Prevention)                                   QC/QE(Detection)
          -------                                                      -----------
-QA is process related                     -QC is the actual testing of  the software
-QA focuses on building in quality -QC focuses on testing for quality
-QA is preventing defects.               -QC is detecting defects
-QA is process oriented                   -QC is product oriented
-QA is entire life cycle                    -QC for testing part in SDLC

Verification V/S Validation
-----------------------------------

-Verification checks whether we are building the right system.
-Verification typically involves
          -Reviews
          -Walkthroughs
          -Inspections


-Validation checks whether we are building the system right.
-Takes place after Verification are completed.
-Validation typically involves actual testing.
          -System Testing

Static V/S Dynamic Testing
----------------------------------

-Static Testing is an approach to test project documents in the form of  Reviews,
  Walkthrough and Inspections. (Verification)

-Dynamic Testing is an approach to test the actual software by giving inputs and
  observing results(Validation)

What is Review ?
--------------------

Reviews:
 -conducts on documents to ensure correctness and completeness.
-Example:
-Requirement Reviews
-Design Revidws
-Code Reviews
-Test plan reviews
-Test cases reviews etc.

What is Walkthrough?
----------------------------

Walkthroughs:
-It is a formal review and we can discuss/raise the issues at peer level.
-Also walkthrough does not have minutes of the meet. It can happen at
anytime and conclude just like that no schedule as such.

What is Inspection ?
------------------------

Inspections:
-Its a formal approach to the requirements schedule.
-At least 3-8 people will sit in the meeting
 1- reader
 2-writer
 3-moderator plus concerned.
-Inspection will have a proper schedule which will be
intimated via email to the concerned developer/tester.

Levels of Software Testing
--------------------------------


-Unit Testing
-Integration Testing
-System Testing
-User Acceptance Testing(UAT)







                                                                                                Test
        ___ Unit Test    < -------------------------------------------individual
        |                                                                                  component
        |
        |                                                                                         Test
        | -------------Integration   < ---------------------------------Component
         __________    Test                                                          groups
         |
         |                 
         |                                                                                        Test the
         | ----------------System  <------------------------------------integrated
          ____________ Test                                                          system
         |
         |                                                                                           Test the
         |-----------------  Acceptance <-----------------------------------final
                                               test                                                  system


Unit Testing
----------------

-A  unit is the smallest testable part of software. It usually has one or
a few inputs and usually a single output.
-Unit testing conducts on a single program or single module.
-Unit testing is white box testing technique.
-Unit testing is conducted by the developers.
-Unit testing techniques:
    -Basis path testing
    -Control structure testing
                -Conditional coverage
                -Loops Coverage
    -Mutation Testing

Integration Testing
-----------------------

-In Integration Testing, individual software modules are integrated
logically and tested as a group
-Integration testing focuses on checking data communication amongst
 these modules.
-Integrated Testing is white box texting technique
-Integrated testing is conducted by the developers.
Approaches:
 -Top Down Approach
 -Bottom Up Approach
 -Sandwich Approach(Hybrid)

-Stub : is called by the Module under Test.
-Driver: calls the module to be tested.


Bottom up Integration
---------------------------

In the bottom up strategy, each module at lower levels is tested with
higher modules until all modules are tested. It takes help of  Drivers for
testing.

                                                     Module
            /\                                             1
             |
             |                         Module                            Module        {Driver}-Temporary Program
             |                               2                                      3
         Bottom     
            Up            Module             Module             Module
                                  4                        5                        6


                                                     Module
           Top
          Down                                           1
             |
             |                         Module                            Module        {Stub}-Temporary program
             |                               2                                      3
             \/
                           Module             Module             Module
                                  4                        5                        6


System Testing
-------------------

-Testing over all functionality of the application with respective client
requirements.
-It is a black box testing technique.
-This testing is conducted by testing team.
-Before conducting system testing we should know the requirements.
-System Testing focuses on below aspects
     -User Interface Testing(GUI)
     -Functional Testing
     -Non-Functional Testing
     -Usability Testing

-After Completion of  System Testing UAT team conducts
acceptance testing in two levels.
  -Alpha testing   (Dummy Data)
  -Beta testing     (Real-Time Data)

Methodologies
-------------------
-White Box Testing
-Black Box Testing
-Grey Box Testing

White Box Testing
-----------------------
-White Box Testing conducts on internal logic of the programs.
-Programming skills are required.
        -Ex:Unit Testing & Integration testing



                                  (We know the code)
Test case Input-------->Application code -------->  Test Case Output
       
                              White Box Testing Approach

Black Box Testing
----------------------

-Testing conducts on functionality of the application whether it is
working according to customer requirements or not.
Ex. System Testing & UAT testing




                              (We Don't know the code)
Test case Input-------->Application code -------->  Test Case Output
       
                             Black Box Testing Approach

Grey Box Testing
----------------------

-Both combination of white box and black box testing.
  Ex-Database Testing.



           Black Box                 +              White Box          =     Grey Box
            Testing                                        Testing                      Testing


Black Box Testing Types
------------------------------

-GUI Testing
-Usability Testing
-Functional Testing
-Non-Functional Testing


What is GUI ?

There are two types of interfaces in a computer application.
-Command Line Interface is where you type text and
  computer responds to that command.
-GUI stands for Graphical User Interface where you interact
  with the computer using images(Icons) rather than text.

Graphical User Interface(GUI) testing is the process of testing the system's GUI.

-GUI testing involves checking the screens with the controls like menus,buttons,icons and all
 types of bars-tool bar, menu bar, dialog boxes and windows etc.

-During GUI Testing Test Engineers validates user interface of the application as following ascpects:
 -Look & Feel
 -Easy to use
 -Navigation & Shortcut keys


GUI Objects
-Window, Dialog Box, Push Button, Radio Button,Radio Group, Tool bar, Edit Box, Text Box,
Check Box, List Box, Drop down Box, Combo Box, Tab, Tree View, Progress bar, Table,Scroll bar ..

Check List for GUI Testing

-It checks if all the basic elements are available in the page or not.
-It checks the spelling of the objects.
-It checks alignments of the objects.
-It checks content display in web pages.
-It checks if the mandatory fields are highlights or not.
-It checks consistency in background color and color font type and font size etc.

Usability Testing
---------------------

-During this testing validates application provided context sensitive help or not to
the user.
-Checks how easily the end users are able to understand and operate the application
 is called usability testing.

Functional Testing
-----------------------

-Object Properties Coverage
-Input Domain Coverage(BVA,ECP)
-Database Testing/Backend Coverage
-Error Handling Coverage
-Calculations/Manipulation Coverage
-Links Existence & Links Execution
-Cookies & Sessions


Object Properties Testing
-Every object has certain properties
 -Ex: Enable,Disable,Focus,Text etc..
-During Functional testing Test Engineers validate properties of objects in runtime

Input Domain Testing
-During input domain testing Test Engineers validate data provided to the application
w.r.t value and length.
-There are two techniques in input domain Techniques.
 -Equalance Class Partition(ECP) (for value)
 -Boundary Value Analysis(BVA) (for lengths)

ECP & BVA

Requirement:
 -User name filed allows only lower case with min 6 max 8 letters.

Username
---------------------
Password
----------------------
SIGN IN


ECP for User Name                                              BVA for User Name


___________________________           _________________________________________
Valid          |            Invalid                           Parameters                  Value                 Result
___________________________           _________________________________________
a.....z                  A....Z                                        Min                          6                      valid
                           0.....9                                       Min +1                      7                      valid
                                                                           Min-1                        5                      Invalid
                         Special Characters                     Max                          8                       valid
                            (@,#,$,& etc.                          Max+1                      9                      Invalid
____________________________                    Max-1                       7                        valid
                                                                    ________________________________________


Database Testing
---------------------

-During Database testing Test Engineers validate the data w.r.t database.
-Validates DML operations(Insert,Update,Delete&Select)
-SQL Language: DDL, DML, DCL etc..

    DDL-Data Definition Language -Create, alter, drop
    DML-Data Maniputation language- Insert, update, select,delete
    DCL-Commit, roll back etc.


Error Handling Testing
-----------------------------
-Validate error messages thrown by the application when we
 provide invalid data.
-The error messages should be clear and easy to understand to
 the user.

Calculations/Manipulations Testing
-------------------------------------------
-Validate mathematical calculations.

Links Coverage
-------------------
Links existence-Links placed in the appropriate location or not
Links execution- link is navigating to appropriate page or not.
Types of links:-

-Internal links
-External links
-Broken links


Cookies & Sessions
------------------------

-Cookie-Temporary internet files which are created at client side when
we open the web sites. These files contains User data.

-Session-Sessions are time slots which are allocated to the user at the
 serve side.

Non-Functional Testing
-----------------------------

-Performance Testing
                 -Load Testing
                 -Stress Testing
                 -Volume Testing


-Security Testing
-Recovery Testing
-Compatibility Testing
-Configuration Testing
-Installation Testing
-Sanitation Testing



Performance Testing
-------------------------
-Load: Testing speed of the system while increasing the load gradually till
the customer expected number.

-Stress:Testing speed of the system while increasing/reducing the load on
the system to check any where its breaking.

-Volume: Check how much volumes of data is able to handle by the system.

Security Testing
--------------------
-Testing security provided by the system
-Types:

    Authentication
    Access Control/Authorization
    Encryption/Decryption


Recovery Testing
---------------------


Testing Recovery provided by the system. Whether the system recovering
 abnormal to normal condition or not.

Compatibility Testing
----------------------------

Testing Compatibility of the system w. r. t  OS, H/W & Browsers.
    -Operation System Compatibility
    -Hardware Compatibility(Configuration Testing)
    -Browser Compatibility
    -Forward & Backward Compatibility

Installation Testing
-----------------------

Testing installation for the application on customer expected platforms and check
installation steps, navigation, how much space is occupied in memory.

Check Un-Installation.

Sanitation/Garbage Testing
-----------------------------------
-Check whether application is providing any extra/additional features beyond the
customer requirements.

STLC-Software Testing Life Cycle
-------------------------------------------

Testing Terminology
--------------------------
Adhoc Testing:
------------------
-Software testing performed without proper planning and documentation.
-Testing is carried out with the knowledge of the tester about the application and the tester
tests randomly without following the specifications/requirements.

Monkey Testing:
---------------------
-Test the functionality randomly without knowledge of application and test cases is called
Monkey Testing.

Re-Testing:
--------------
-Testing functionality repetitively is called re-testing.
-Re-testing gets introduced in the following two scenarios.
   Testing is  functionality with multiple inputs to confirm the business validation are implemented
   (or) not

Regression Testing
-----------------------
-It is a process of identifying various features in the modified build where there is a chance of getting
side-effects and resting these features
-The new functionalities added to the existing system (or) modification made to the existing system
It must be noted that a bug fixer might introduce side-effects and a regression testing is helpful to
identify these side effects.

Sanity Testing
-----------------
This is a basic functional testing conducted by test engineer
whenever receive build from development team

Smoke Testing
------------------
This is also basic functional testing conducted by developer or
tester before releasing the build to the next cycle.

End to End Testing:
------------------------
Testing the overall functionalities of the system including the data
integration among all the modules is called end -to end testing.

Exploratory Testing
------------------------
Exploring the application and understanding the functionalities
adding or modifying the existing test cases for better testing is
called exploratory testing.

Comments

Popular Posts