Вы находитесь на странице: 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 or operating 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 a system 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.

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 known as 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 internal structure of the software is known as white box testing. Black Box Testing Strategy: This testing strategy is used to test different functionalities of the software, that is being developed. Gray Box Testing Strategy: The software is tested to find defects of any kinds, whether in code or in structure.

There are other types of software testing, which are used to test a product to ensure that the software meets 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 Models There are different software testing models, which the software testing team can choose from. Each of these models have different methods, as they are based on different principles. A number of factors are taken into consideration, before a particular model is chosen. The different 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

1. Validation vs. Verification Verification answers the question, Am I building the product right, while validation answers the question, Am I building the right product. To explain it further, verification is carried out at the end of every phase to ensure that the software has been developed in accordance with the conditions set up at the beginning of the said phase. On the other hand, validation is carried throughout the software development life cycle, to ensure that all the 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

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.).

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 not considered in this type of testing. Tests are based on requirements and functionality.

White box testing This testing is based on knowledge of the 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 stress and 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.

Вам также может понравиться