• Testing concepts
  • Monday, 9 September 2013

    White Paper on Databse Testing


                                                         DATABASE TESTING:

    DB Testing: 

    Database testing (Backend Testing) involves the testing where we try to check the values which are present in the front end application and compare to the back end database which are present in the web based or desktop application. All values should match for proper storage and as per the records of database.  

    How Database testing is carried out:  

    Here we have to check each and every functionality in the given application and action performed in the application. This is done through insertion, deletion, update etc . By adding the records in front end has to be displayed in Database similarly if we delete any values from front end it has to be deleted in database.
    Tester has to have good amount of knowledge on Database queries like sql etc...
    Database testing is risky sometimes if Tester doesn't have knowledge on any of the queries 



    How Database testing is to be done:

    Database testing is one of the major part of testing where Tester has to good experience on executing the queries inserting the tables, deleting the tables, updating the tables and procedures also if required. There are many databases used like Oracle and MSSQL Server etc. Many projects like BFSI are mostly used and taken care of Database testing.    

    While starting Database testing Tester has to analyse the application and good view on the requirements of it. Check all the tables which is present in the application and try to write all the database queries for the tables to execute since there are many things which are really complex, so you can take the assistance of development team and get an idea of the queries. Test each and every table carefully for the data added. This is the best process for the testers to perform the DB testing, it can be done for any application and it does not matter application is small or big. 
    Database is the Backbone and vital for the application and tester should make sure to test very carefully. It requires skill, proficiency and sound knowledge.


    What we exactly do in Database Testing:


    Database testing involves good  knowledge on the given application and its requirements and requires a proper plan to execute it
    Key issues include :
    1) data Integrity
    2) data validity
    3) data manipulation and updates.

    Data Integrity: the completeness or wholeness or inserting of the data. eg: When you enter a record in your application, you check that the data is entered correctly in the database i.e Insert query

    Data validity: rules like check the constraints (null value, primary key, referential key, unique key etc)

    Data manipulations: update the data, delete the data etc.


    Front End Testing and Back End Testing:

    Mainly in Front End we check each and every functionality and test depending the requirements. Testing Like System Testing, Integration Testing, Acceptance Testing is done.

    Back End Testing includes Inserting, Updating, Deletion of the database and modifying the values and check whether the values added are properly added in Database. Like. MSSQL Server, Oracle 10g etc

    Few useful commands for queries here.      

    Select query:  select * from table name where condition

    Insert query: Insert into table values (coloumn1, coloumn2,...)

    Update query: Update table set coloumn1=value where coloumn2=value; 

    Wednesday, 4 September 2013

    Different Types of Testing

    Different Types of Testing done: 
     1. Functional testing: 
        This type of Testing is main core of Testing where each and every functionalities are been Tested. For   every code or activity done on the module contains functionality where it has to produce positive result. So for stable application without Bugs Functional Testing is most important part of Testing.
     
    2. Smoke or Sanity Testing:
      The names are different but the actual concept is almost same, the testing of basic functionalities and checking for Bugs initially helps lot for stable application. In case of bugs found at the initial stage it would Save lot of Time and Money so that the application cannot be forwarded at the future level for coding.
    Some companies say Smoke is depth wise testing and Sanity is Breath wise Testing but the main core is to Test for Basic functionalities. 

    3Regression Testing and Retesting : 
    Regression Testing: This is type of testing where If any modification has been done in the application
    which has already been developed before has instantaneously effected the current application is known as Regression effect.
    Like an simple example:
    If A and B has been developed as two different modules but in later part some other developer comes and
    modifies that requirement which was been already developed so it might direct cause an effect to A module. This is known as Regression effect. So testing has to be done as Regression Testing where to detect bugs where the exact modification has been done and try to fix the issue

    Retesting: This type of testing is different from Regression testing wherein this type of testing is just
    and Retesting of same test case which was prepared by Tester before and after the issue as fixed by the developer the bug or test case has to be tested once again. So this is known as Retesting

    Like an simple example:
    If A test case is been prepared and an issue or bug is posted by Tester, it goes to developer where he has to fix it immediately as per priority and then further after fixing the issue.
    Tester tests or Retests it again known an Retesting

    4. Acceptance Testing:
    Final level of testing is done where all the levels are done and gone for client for approval. In this type of testing there are Alpha and Beta form of Testing done. At one end the application is given to client for checking the application and other for End User for any issues.

    5. Installation Testing:
    This is just the Testing where in the form of End User it has to be tested and checked for whether the application is good enough for Installing in different types of browsers and its security are not compromised.

    6. Browser Compability Testing:
    This is the Testing where we test for different browsers and check their compatibility and Design issues in Each of the browser like, Mozilla, chrome, IE, Safari etc.

    7. Non Functional Testing:
    After entire Functional Testing then atlast the main focus shifts to Non Functional Testing . Here there are few testing like Performance Testing, Load Testing, Stress Testing, Volume Testing, Scalability Testing, Security Testing. Like for example in Performance Testing we get to know the how the application is responding if their are many Users using simultaneously at one Time. Similarly for other testing also used for checking throughput, response time etc.
    Another for of Testing is Security Testing which is very important where the Cookies, Cache issues are found out and maximum efforts are been taken to avoid any hacking of data from other users.   

    Monday, 2 September 2013

    Levels of Testing

    Brief Levels of Testing: 

    At each level there are different possible number of Levels done for Testing . Under each number of 
    levels there are individual tests performed and depending the type of SDLC process followed the tests are carries on. Normally there are 4 types of levels i.e 
    1. Unit Testing 
    2. System Testing
    3.  Integration Testing
    4. Acceptance Testing

    1. Overview of Unit Testing: 
    This type of Testing is carried out at the first level or also known as Component Testing or also known as White Box Testing. It mainly refers to verify and test the code functionality at the class level and test the functions part using Constructors and Destructor's.
    This type of testing needs the good amount of knowledge to get the flow of the application and is mainly done by developers where they can test the functionality using Code Coverage analysis etc. Unit Testing does not cover entire testing but to test the basic flow of the application and to know the Code coverage.
    This is also known as White Box Testing technique where if the Tester has the good amount of knowledge of Coding even the QA does the testing but normally it is assigned to Developer as he will be having entire knowledge of the application and basic flow of functions.
    Before Testing starts Developer tries to remove all the errors from the application to get a good stable application.
    In Unit Testing the developer tries to test the Code Coverage, Data flow analysis, Peer Code reviews, Static code analysis etc.  

    2. Integration Testing:
    The next phase of Testing is Integration Testing where the QA starts his testing and verifies the interface between 2 components i.e Component  Integration Testing and System  Integration Testing.
    The testing allows you to test between 2 modules in a particular component or 2 systems sharing integrating between each other. As this is important for of level where the integration is important and dependable on one another module. So Both modules has to be integrated and tested successfully. As large number of Bugs raise in this level  of Testing.

    3. System Testing: 
    This type of Testing is mainly done for checking the Bugs in a particular System. This is also main form of  Testing where all the functionalities are tested and for every Level there are Testing Plan prepared as documentation for each level. Mainly in this type of testing there are few techniques are Boundary Value analysis, Equivalence partitioning, State Transition testing, Use case testing etc.

    4. Acceptance Testing:
    Final level of testing is done where all the levels are done and gone for client for approval. In this type of testing there are Alpha and Beta form of Testing done. At one end the application is given to client for checking the application and other for End User for any issues.

    Sunday, 1 September 2013

    Why do Defects Occur in an application

    Defects or Bugs

    Almost all the applications will be having defects and it depends on the Code quality on how much the Defects are rectified. Mainly there are different scenarios on how the Defects occur like for eg. the requirements given which might not be appropriate to the Developer to write the code and makes some mistakes this might cause defects to produce. Any Unknown requirements which is difficult to understand might produce defects.

     A programmer might make a mistake in his code which produce errors in the application where the defects occur forthwith or also called a Bug in Testing Terms. So if this defect is executed there might be huge effect on the application. Hence  causing a system failure or application also to crash. Not all defects will be so critical unless the what type of Bug it is.

    Also there might be scenario of where the application has to be used and in what environment it has to loaded and executed. Even a small failure might cause a huge loss to the application and client.

    Sunday, 25 August 2013

    Regression Testing and Retesting

    Regression Testing and Retesting:

    Regression Testing: This is type of testing where If any modification has been done in the application
    which has already been developed before has instantaneously effected the current application is known as Regression effect.
    Like an simple example:
    If A and B has been developed as two different modules but in later part some other developer comes and
    modifies that requirement which was been already developed so it might direct cause an effect to A module. This is known as Regression effect. So testing has to be done as Regression Testing where to detect bugs where the exact modification has been done and try to fix the issue

    Retesting: This type of testing is different from Regression testing wherein this type of testing is just
    and Retesting of same test case which was prepared by Tester before and after the issue as fixed by the developer the bug or test case has to be tested once again. So this is known as Retesting

    Like an simple example:
    If A test case is been prepared and an issue or bug is posted by Tester, it goes to developer where he has to fix it immediately as per priority and then further after fixing the issue.
    Tester tests or Retests it again known an Retesting


    Friday, 16 August 2013

    V-Model and Agile Model

    Difference between V-Model and Agile Model

    V-Model is the approach of SDLC where both Verification and Validation goes on parallel


    After every development phase it is been passed and sent it on for Testing

    Verification phase are:
    1. Requirement analysis :  All documents are prepared and gathered.
    2. High level design:     Modules are been broken into sub modules
    3. Low Level design:   Further sub modules are broken to minor modules for coding
    4. Coding:                  Here Coding and scripting is done

    Validation phase are:
    1. Acceptance testing: Prepared Acceptance test plan and done both Alpha and Beta testing
    2. System Testing:  Test Plan and Test cases are written into system
    3. Integration Testing: Both modules are integrated and tested
    4. Unit testing:   Code review or White Box testing


    Agile Model:




    Agile Model includes Scrum methodology 
    Scrum includes team members including moderator, team members, reviewer
    Every week Scrum meeting goes on and prepares a full week Scrum cycle 
    Agile model in more advantageous because of the flow of SDLC as even a small module is prepared and sent for testing so lesser amount of bugs will be reported. It is common now in the companies where they follow Agile process of development 

    Thursday, 1 August 2013

    Testing Document preparation

    Test Doc should be prepared as per the requirements of SRS before starting the Testing to understand the flow of application

    Testing documentation mainly helps in preparing all types of how much of testing has to be done, the effort required, how much test coverage has to be covered, whether all the requirements are been covered. here it includes few concepts :

    Mainly Test Plan is prepared from the scratch by given Requirements document which is prepared by some of the senior team members.
    Secondly the Test Scenario is prepared from the given test plan where we can understand the flow of the test plan and cover all the scenarios.
    After preparing some test scenarios or test conditions detail Test Case are prepared and divided into number of test steps.
    Final part of Testing requires to know whether all test cases are been covered and it will be known from the result of Traceability Matrix....

    Detail explanation of Test Plan:
    A Test plan mainly consists of different strategies prepared from the given SRS and will get to know the flow of the application and what and all needs to be covered and resources what needs to be used and how much time is required to complete the schedule activities.

    Here a Test plan mainly will consist of.

    Test Plan document Introduction

    Divide the application into number of test cases

    Features to be tested and not exceptions which are not be tested

    The deliverables required for testing

    Hardware/Software requirements

    Any risks involved while testing on the given schedule

    Test Scenario

    A Statement which is prepared from the given test plan or known as test condition
    deriving into different  scenarios and further making it to test cases.
    Test cases are in detail functionality but test scenarios are just the overview
    which satisfies the functionality.

    Test Case doc

    Test cases involves in the detail step by step procedure of testing each test condition or scenarios where different types of testing is done like functionality testing, smoke testing, system testing etc. To prevent from bugs test cases are prepared and execution. Mainly test cases comprises more of negative test cases than positive test cases which is known as destructive methodology.

    Test case ID. Pre-Conditions. Description . Expected Condition. Actual Condition . Result

    Traceability Matrix is a table which is used mainly to know whether all requirements have been covered and executed in the given application it is either prepared from the excel sheet or tool.