introduction to software testing with types description

Upload: vishal-kushwaha

Post on 14-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 Introduction to Software Testing with Types Description

    1/7

    What is Software Testing?

    Software Testing is a process of verifying and

    validating whether the program is performing correctly

    with no bugs. It is the process of analyzing oroperating software for the purpose of finding bugs. It

    also helps to identify the defects / flaws / errors that

    may appear in the application code, which needs to be

    fixed. Testing not only means fixing the bug in the

    code, but also to check whether the program is

    behaving according to the given specifications and

    testing strategies. There are various types of software

    testing strategies such as white box testing

    strategy, black box testing strategy, gray box software

    testing strategy, etc.

    White Box Testing

    It is the process of giving the input to the system and

    checking, how the system processes the input, to

    generate the output. It is mandatory for a tester to

    have the knowledge of the source code.

    Security Testing: Testing that confirms, how well asystem protects itself against unauthorized internal or

    external, or willful damage of code, means security

    testing of the system. Security testing assures that the

    program is accessed by the authorized personnel only.

    http://www.buzzle.com/editorials/4-10-2005-68350.asphttp://www.buzzle.com/editorials/4-10-2005-68350.asphttp://www.buzzle.com/editorials/4-10-2005-68349.asphttp://www.buzzle.com/editorials/4-10-2005-68349.asphttp://www.buzzle.com/editorials/4-10-2005-68350.asphttp://www.buzzle.com/editorials/4-10-2005-68350.asp
  • 7/30/2019 Introduction to Software Testing with Types Description

    2/7

    Black Box Testing

    It explains the process of giving the input to the

    system and checking the output, without considering

    how the system generates the output. It is also knownas Behavioral Testing.

    Functional Testing: In this type of testing, the

    software is tested for the functional requirements. This

    checks whether the application is behaving according to

    the specification.

    System Testing: System testing is the testing

    conducted on a complete, integrated system, to

    evaluate the system's compliance with the specified

    requirements. This type of software testing validates

    that the system meets its functional and non-functional

    requirements and is also intended to test beyond the

    bounds defined in the software/hardware requirement

    specifications.

    White Box Testing Strategy: Testing of internalstructure of the software is known as white boxtesting.

    Black Box Testing Strategy: This testing strategy isused to test different functionalities of thesoftware, that is being developed.

    Gray Box Testing Strategy: The software is testedto find defects of any kinds, whether in code or instructure.

  • 7/30/2019 Introduction to Software Testing with Types Description

    3/7

    There are other types of software testing, which are

    used to test a product to ensure that the softwaremeets requirements of the end-user. They include:

    Functional Testing Smoke Testing Usability Testing Validation Testing Compatibility Testing Sanity Testing Exploratory Testing

    Security Testing Regression Testing Recovery Testing Performance Testing (This includes 2 sub-types -

    Load Testing and Stress Testing)

    Software Testing ModelsThere are different software testing models, which the

    software testing team can choose from. Each of thesemodels have different methods, as they are based ondifferent principles. A number of factors are taken into

    consideration, before a particular model is chosen. Thedifferent models that are used are:

    Waterfall Model in Testing

    Validation and Verification Model Spiral Model Rational Unified Process (RUP) Model Agile Model Rapid Application Development (RAD) Model

  • 7/30/2019 Introduction to Software Testing with Types Description

    4/7

    1. Validation vs. VerificationVerification answers the question, Am I building

    the product right, while validation answers thequestion, Am I building the right product. Toexplain it further, verification is carried out at theend of every phase to ensure that the software has

    been developed in accordance with the conditionsset up at the beginning of the said phase. On theother hand, validation is carried throughout the

    software development life cycle, to ensure that allthe requirements are satisfied.

    What is Verification

    The standard definition of verification goes like this: "Are we building

    the product RIGHT?" i.e., Verification is a process that makes it sure

    that the software product is developed in the right way. The software

    should confirm to its predefined specifications. As the product

    development goes through different stages, an analysis is done to

    ensure that all required specifications are met.

    Methods and techniques used in the verification and validation shall

    be designed carefully, the planning of which starts right from the

    beginning of the development process. The verification part of

    'Verification and Validation Model' comes before validation, which

  • 7/30/2019 Introduction to Software Testing with Types Description

    5/7

    incorporates software inspections, reviews, audits, walkthroughs,

    buddy checks, etc. in each phase of verification (every phase of

    verification is a phase of the testing life cycle).

    During the verification, the work product (the ready part of the

    software being developed and various documentations) is

    reviewed/examined personally by one or more persons in order to

    find and point out the defects in it. This process helps in prevention of

    potential bugs, which may cause failure of the project.

    What is Validation

    Validation is a process of finding out if the product being built is

    right? That is, whatever software product is being developed, it

    should do what the user expects it to do. The software product should

    functionally do what it is supposed to, it should satisfy all the

    functional requirements set by the user. Validation is done during or

    at the end of the development process in order to determine whether

    the product satisfies specified requirements.

    Validation and verification processes go hand in hand, but visibly

    validation process starts after verification process ends (after coding

    of the product ends). Each verification activity (such as requirement

    specification verification, functional design verification, etc.) has its

    corresponding validation activity (such as functional

    validation/testing, code validation/testing, system/integration

    validation, etc.).

  • 7/30/2019 Introduction to Software Testing with Types Description

    6/7

    All types of testing methods are basically carried out during the

    validation process. Test plan, test suits and test cases are developed,

    which are used during the various phases of validation process. The

    phases involved in validation process are: Code Validation/Testing,

    Integration Validation/Integration Testing, Functional

    Validation/Functional Testing, and System/User Acceptance

    Testing/Validation.

    Code Validation/Testing

    Developers as well as testers do the code validation. Unit Code

    Validation or Unit Testing is a type of testing, which the developers

    conduct in order to find out any bug in the code unit/module

    developed by them. Code testing, other than Unit Testing, can be

    done by testers or developers.

    Functional Validation/Testing

    This type of testing is carried out in order to find if the system meets

    the functional requirements. In this type of testing, the system is

    validated for its functional behavior. Functional testing does not deal

    with internal coding of the project, instead, it checks if the system

    behaves as per the expectations.

    Black box testing Internal system design is notconsidered in this type of testing. Tests are based onrequirements and functionality.

  • 7/30/2019 Introduction to Software Testing with Types Description

    7/7

    White box testing This testing is based on

    knowledge ofthe internal logic of an applications code.Also known as Glass box Testing. Internal software and

    code working should be known for this type of testing.Tests are based on coverage of code statements,branches, paths, conditions.

    Functional testing This type of testing ignores the

    internal parts and focus on the output is as per

    requirement or not. Black-box type testing geared to

    functional requirements of an application.

    Performance testing Term often used

    interchangeably with stressand load testing. To

    check whether system meets performance

    requirements. Used different performance and load

    tools to do this.

    Security testing Can system be penetrated by any

    hacking way. Testing how well the system protects

    against unauthorized internal or external access.

    Checked if system, database is safe from external

    attacks.