Friday 30 March 2012

VV Model



    WHAT IS VV MODEL
  • This Model is called a Verification and Validation Model.
  • Advantages of VV - Model
  • Simple and easy to use.
  • Each phase has specific deliverables.
    Disadvantages of VV- Model
  • Very rigid, like the waterfall model.
  • Model doesn’t provide a clear path for problems found during testing phases.

    WHAT IS VERIFICATION
  • Disciplined approach to evaluate whether a software product fulfills the requirements or conditions imposed on them.
  • Are we doing the job right?
  • Also called as static testing.
  • Methods For Verification
    1.Walkthrough
  • Meeting led by author
  • Open-ended sessions
  • To establish a common understanding of the document
    2.Inspection
  • Led by trained moderator (not the author)
  • Remove defects efficiently, as early as possible;
  • Pre-meeting preparation
    3.Technical Review
  • It is often performed as a peer review without management participation
  • Ideally it is led by a trained moderator, but possibly also by a technical expert.

    WHAT IS VALIDATION
  • Disciplined approach to evaluate whether the final, as built software
  • Product fulfills its specific intended use
  • Are we doing the right job?
  • Also called as dynamic testing.
    Methods used are:
  • Unit testing
  • Integration testing
  • System testing
  • User Acceptance Testing
    1.Unit Testing
  • Unit - smallest testable piece of software.
  • Unit testing is process of testing the smallest/ individual component of program.
  • Typically done by the developers and not by testers.
    2.Integration Testing
  • Integration is a process of combining and testing multiple components together.
  • Considered interfaces on system
    Approaches:
  • Bottom Up
  • Top Down
  • Critical Part First/hybrid
  • Big Bang approach
    3.System Testing
  • System testing is the testing of a finally integrated product for compliance against user requirements.
  • After development of all required modules, the development team releases a software build to be tested on the System Testing Environment.
    Usability Testing
  • Also called as accessibility testing
  • To check the ease of use for the user

Thursday 29 March 2012

Difference between Manual and Automation Testing



    Difference between SDLC and STLC

SDLC:- Software Development Life Cycle involves the complete Verification and Validation of a Process or a Project.
  • Software Development Life Cycle involves business requirement specifications,Analysis,Design,Software requirement specifications,Development Process(Coding and Application development),Testing Process(Preparation of Test Plan,Preparation of Test cases,Testing,Bug reporting,Test Logs & Test Reports),Implementation and Maintainence.

    STLC:-Whereas Software Testing Life Cycle involves only Validation.
  • Software Testing Life Cycle involves Preparation of Test Plan,Preparation of Test cases,Testing,Bug reporting,Test Logs & Test Reports.

Difference between Manual and Automation Testing

  • Time consuming and tedious:- Since test cases are executed by human resources so it is very slow and tedious.
  • Huge investment in human resources:- As test cases need to be executed manually so more testers are required in manual testing.
  • Less reliable:- Manual testing is less reliable as tests may not be performed with precision each time because of human errors.
  • Non-programmable:- No programming can be done to write sophisticated tests which fetch hidden information.

    Automation Testing
  • Fast:- Automation runs test cases significantly faster than human resources.
  • Less investment in human resources:- Test cases are executed by using automation tool so less tester are required in automation testing
  • Programmable:- Testers can program sophisticated tests to bring out hidden information.

Wednesday 28 March 2012

Difference between Waterfall Model and V Model


    Waterfall Model: It includes all phases of SDLC but the drawback is once requirement made freezed it cannot be changed.
  • Waterfall Model the tester role will take place only in the test phase
  • Waterfall madel is a fixed process u can't make any changes in the requirement or in any phase
  • waterfall model used only the requirements are fixed


    V-Model: In this model all phases will be done correspondently development and testing.
  • V-Model role will take place in the requirement phase itself
  • V-Model u can make any changes in the requirements
  • V-model is the simultaneous process but it is not in case of water fall model
  • V-model can be used for the any type of requirement(Uncertain requirement)

Tuesday 27 March 2012

V-Model



      Many of the process models currently used can be more generally connected by the V-model where the “V” describes the graphical arrangement of the individual phases. The “V” is also a synonym for verification and validation
    • software requirements specification (SRS):- is a comprehensive description of the intended purpose and environment for software under development. The SRS fully describes what the software will do and how it will be expected to perform.
    • HLD:-High Level design - quite functional - contains functional test cases or guidelines for test cases - Review of AD - Review comments implemented till sign off by the stake holders ( client side / consultant side )
    • LLD:- Detail Level design - quite technical as well - Man-hours required is estimated and mentioned - contains functional & technical unit test cases - Review of DD - Review comments implemented till sign off by the stake holders ( client sides )
    • Development:- Coding by the developers as per the detail design -
    • Unit Testing:- is done in Development Server by the developer to ensure that program works as per the detail design - add / implement test case results - transport request details & documentation in detail design - Evidence is attached. Code Review to ensure that coding is as per the coding standards ( performance related as well ) - Also check the test cases and verify - Review comments implemented till sign-off by the stake holders. Before Application testing the realted chunk of work is transported to QA Server.
    • Integration Testing:- This is to ensure that programs work along with other components, that might get affected. e.g. Even the Invoice process should be tested if a change is made in the interface related with a PO creation / change. The test cases or created separately ( more functional in nature and considers dependency of components ). Before implementation of the release, the complete product needs to be tested to ensure that it can bear the maximum load of a production environment.
    • System Testing:- is performed with huge datasets to check if system / product can handle production scenario in terms of memory and performance.
    • User Acceptance:- Any further problems will be solved as Bug-fix or and enhancments will be carried out as a part of change request.

Thursday 22 March 2012

Waterfall Model


  • The waterfall or the liner sequential model illustrates a sequential systematic application, which start with analysis and progresses through each stage to testing and maintainance.
  • Analysis
  • Design
  • Implementation & Unit Testing:
  • Testing
  • Deployment
  • Requirements analysis: This first step is also the most important, because it involves gathering information about what the customer needs and defining, in the clearest possible terms
  • Design: Before a starting for actual coding, it is highly important to understand what we are going to create and what it should look like?
  • Implementation & Unit Testing: The system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality.
  • Testing: After developers are done with coding and provide final build to testers,testing starts in this phase.
  • Deployment: After testing is done and software is released it is then deplyed in customer environment.

Wednesday 21 March 2012

Software Development Life Cycle (SDLC)


  • It is used to develop the software systematically.
  • The six stages of SDLC process are
  • Requirement Gathering
  • Analysis.
  • Design
  • Development
  • Testing
  • Implementation & Maintainance
  • Requirement gathering –
In this phase Business Analyst will gather all the information from the customer and prepare Business Requirement Specification (BRS).
  • Analysis –
The Features and the functions that need to be put in the project are determined. Senior Business Analyst will prepare System Requirement Specification (SRS) documents.
  • Design –
This is done by the Chief Architect; HLD and LLD are prepared. HLD: Defines the overall Hierarchy of the function i.e system architecture and design LLD: Defines the Internal logic of the project i.e. actual software components are implemented
High Level Design (HLD)
  • List of modules and a brief description of each module.
  • Brief functionality of each module.
  • Interface relationship among modules
  • Database table identified along with key element.
  • Overall architecture diagrams along with technology details.
Low Level Design (LLD)
  • Details functional logic of the module, in pseudo code
  • Database tables,with all elements, including their type and size
  • All dependency issues Error message Listings
  • Complete input and outputs for a module.
  • Development –
Based on the design document, small modules are summed together and developed.
  • Testing –
Testing phase is done by Test Engineers. Different types of testing are performed.
  • Implementation & Maintenance –
Engineers with the coordination of Developer will install/Implement the developed application. The Testing/Maintenance team will suggest to change the software if necessary.



Tuesday 20 March 2012

Testing Life Cycle



    • Requirement Stage
    • Test Plan
    • Test Analysis
    • Test Design
    • Test Construction and Verification
    • Test Execution and Bug reporting
    • Final Testing and Implementation
    • Post Implementation

    • Requirements Analysis
    • In this phase testers analyze the customer requirements
    • It is very important to start testing activities from the requirements phase itself because the cost of fixing defect is very less if it is found in requirements phase rather than in future phases

    • Test Planning
    • In this phase all the planning about testing is done like what needs to be tested
    • How the testing will be done
    • Test strategy to be followed
    • What will be the test environment
    • Hardware and software availability,resources,risk

    • Test Analysis
    • After test planning phase is over test analysis phase starts, in this phase we need to dig deeper into project and figure out what testing needs to be carried out in each SDLC phase.
    • Automation activities are also decided in this phase, if automation needs to be done for software product, how will the automation be done, how much time will it take to automate and which features need to be automated.

    • Test Design
    • In this phase various black-box and white-box test design techniques are used to design the test cases for testing, testers start writing test cases by following those design techniques
    • If automation testing needs to be done then automation scripts also needs to written in this phase.

    • Test construction and verification
    • In this phase testers prepare more test cases by keeping in mind the positive and negative scenarios, end user scenarios etc.
    • The test plan document should also be finalized and verified by reviewers.

    • Test Execution and Bug Reporting
    • The test cases are executed and defects are reported in bug tracking tool
    • Testing is an iterative process i.e. If defect is found and fixed, testing needs to be done after every defect fix.

    • Final Testing and implementation
    • In this phase the final testing is done for the software, non functional testing like stress, load and performance testing are performed in this phase

    • Post Implementation
    • The process review meeting's are done and lessons learnt are documented The test plan document should also be finalized and verified by reviewers.
    • A document is prepared to cope up similar problems in future releases.

What is Software Testing


  • Software testing is the process of exercising or evaluating a system by manual or automated means to verify that it satisfies specified requirements, to identify differences between expected and actual result”.
  • Software testing can also be stated as the process of validating and verifying that a software program/application/product:
    Types of Software Testing
  • We have come across so many types of software testing. The two major approaches of software testing aremanual software testing and automated software testing. Manual software testing means it is being done by a man. That means a person, ie a tester runs the software for errors. We would discuss each testing in detail later. Since this is being an introduction we would just mention each of them here.
    Manual software testing has different stages. The following are the stages:
  • Unit testing
  • Integration testing
  • System testing
  • User acceptance testing
    Different techniques are used for software techniques. The commonly used software testing techniques are the following:
  • White box testing
  • Black box testing
  • Grey box testing
    White box software testing is the testing of the working of the software and its internal structures. It can detect errors of the implemented parts, but the unimplemented parts goes undeteted. Black box testing is the testing of the functionality of the software as opposed to its internal structure. It can be done at all levels of software testing. Now automatically you will be eager to know what is grey box software testing, right? Well, the answer is too simple because it is the combination of white box as well as black box testing.