Professional Documents
Culture Documents
People make errors. A good synonym is mistake. This may be a syntax error or misunderstanding of specifications. Sometimes, there are logical errors. When developers make mistakes while coding, we call these mistakes bugs. A fault is the representation of an error, where representation is the mode of expression, such as narrative text, data flow diagrams, ER diagrams, source code etc. Defect is a good synonym for fault. A failure occurs when a fault executes. A particular fault may cause different failures, depending on how it has been exercised. Test and Test case terms are used interchangeably. In practice, both are same and are treated as synonyms. Test case describes an input description and an expected output description The set of test cases is called a test suite. Hence any combination of test cases may generate a test suite Verification is the process of evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. Validation is the process of evaluating a system or component during or at the end of development process to determine whether it satisfies the specified requirements .
Testing= Verification+Validation Alpha Tests are conducted at the developers site by some potential customers. These tests are conducted in a controlled environment. Alpha testing may be started when formal testing process is near completion. Beta Tests are conducted by the customers / end users at their sites. Unlike alpha testing, developer is not present here. Beta testing is conducted in a real environment that cannot be controlled by the developer. Black Box Testing: Is a testing performed on functional part of application without having knowledge of structural part of the application(coding and logic) .usually testing engineers involves White Box Testing: Is a testing on structural part of the application. Usually Developers or white box testers involes Gray box Testing: Is a testing on both structural and functional part of the application. Usually Testing engineers who has knowledge of programming logic will involve. Unit Testing: Unit is small part of the application, usually it is a program. Each program developed and separately tested, sometimes the program is mixed with other programs and tested. White box testers Performs this testing.
Module Testing: Module is a group of related features to perform a Task. Once the module is developed then it is released for the testing by testing department. This module under go for functional test i.e. Black Box test Integration Testing: Interfaces are used to linking the modules. Interface will be developed by Developers and those interfaces will be tested and then related modules will be linked and then tested This testing under White Box Testing System Level Testing: Testing engineers will conduct testing on entire System(Application).There are different types of System Testings are there 1 System Integration Testing In this type of testing, testing engineers performs various actions on some module and then observes the reflections or reactions on other modules. 2 User Acceptance Testing
In this testing , testing engineers performs testing on some areas of the application which are related to the user in the presence of the user in order to make him to accept the application., this is under black box testing 3 Stress Testing
System is stressed beyond its specifications to check how and when it fails. Performed under heavy load like putting large number beyond storage capacity, complex database queries, continuous input to system or database load. 4 Regression Testing:
Testing the application as a whole for the modification in any module or functionality. Difficult to cover all the system in regression testing so typically automation tools are used for these testing types. 5 Sanity Testing: Testing to determine if a new software version is performing well enough to accept it for a major testing effort. If application is crashing for initial use then system is not stable enough for further testing and build or application is assigned to fix 6 End to End Testing:
Similar to system testing, involves testing of a complete application environment in a situation that mimics real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate.
Performance Testing:
Similar to system testing, involves testing of a complete application environment in a situation that mimics real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate .
Usability Testing:
User-friendliness check. Application flow is tested, Can new user understand the application easily, Proper help documented whenever user stuck at any point. Basically system avigation is checked in this testing.
Comparison Testing: Comparison of product strengths and weaknesses with previous versions or other similar products.
Dynamic Testing
Dynamic Testing detects errors that can be in the program. Here, we write test cases to execute some conditions and parts of the program. Success depends on number of test cases and test coverage. However there is a possibility that all possible paths can not be executed and hence, many paths in program are uncovered and also, errors are undetected.
Static Testing:
Static testing is the process of evaluating a system or component based on its form, structure, content or documentation (without computer program execution). Static Testing involves analysis of program or its representation in some form. Unlike dynamic testing, it does not involve execution of code and also, there is no need to write test cases.
Path Testing:
Path Testing is the name given to a family of test techniques based on judiciously selecting a set of test paths through the program. If the set of paths are properly chosen then we have achieved some measure of test thoroughness. For example, pick enough paths to assure that every source statement has been executed at least once. Path testing techniques are the oldest of all structural test techniques. Path testing is most applicable to new software for unit testing. It is a structural technique. It requires complete knowledge of the program's structure(Code) It is most often used by programmers to unit test their own code. The effectiveness of path testing rapidly deteriorates as the size of the software aggregate under test increases.
Domain Testing:
For a set of input values a program is expected to show a identical behavior. Here that program works as if it is input data classifier. This chapter discusses on different techniques for classifying input data and their application to test interfaces, integration, and software design for testability. It also discuses limitation on each technique used in domain testing.