tags:

views:

47

answers:

2

Hi, In what way usecase based testing is differen from system testing ?

Can we consider system tesing as a subset of usecase based tesing , (ie)system testing consider only usecase of components or sub system with in the system.

+1  A: 

System testing of software or hardware is testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. System testing falls within the scope of black box testing, and as such, should require no knowledge of the inner design of the code or logic.

As a rule, system testing takes, as its input, all of the "integrated" software components that have successfully passed integration testing and also the software system itself integrated with any applicable hardware system(s). The purpose of integration testing is to detect any inconsistencies between the software units that are integrated together (called assemblages) or between any of the assemblages and the hardware. System testing is a more limiting type of testing; it seeks to detect defects both within the "inter-assemblages" and also within the system as a whole.

System testing is an investigatory testing phase, where the focus is to have almost a destructive attitude and tests not only the design, but also the behaviour and even the believed expectations of the customer. It is also intended to test up to and beyond the bounds defined in the software/hardware requirements specification(s).

Use Case testing is a specialized form of Verification and Validation testing, where the use cases become the test cases. The purpose of this kind of testing is to see if the software does what it is supposed to do; ie. i meets its functional specifications.

Verification: The process of evaluating software to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase.

Validation: The process of evaluating software during or at the end of the development process to determine whether it satisfies specified requirements.

In other words, validation ensures that the product actually meets the user's needs, and that the specifications were correct in the first place, while verification is ensuring that the product has been built according to the requirements and design specifications. Validation ensures that ‘you built the right thing’. Verification ensures that ‘you built it right’. Validation confirms that the product, as provided, will fulfil its intended use.

Robert Harvey
Hi Robert After going through the answer I got a feeling that Use Case testing is a specialized Validation and System testing is verification .But got confused When we say "Use Case testing is a specialized form of Verification and Validation testing".One more point ST and Usecase are created at the same level right?I mean from System requirement Specification .or is it like Usecase are created before SRS
somaraj
There is quite a bit of overlap among these terms. I think the distinctions are: whether or not you are testing against use cases or functional specifications, and whether or not those specifications are the ones set forth at the beginning of a project, or the ones at the end of the project that have been modified as a result of the iterative process.
Robert Harvey
A: 

Hey.
I think you are mixing two terms. System testing is a testing phase while Use Case Testing is technique of designing test cases based on use cases, that can be used on many testing levels. For example:

1) In Use Case Testing you create Test Cases based on Use cases. The system, or at least components involved in given use case should be developed, build and integrated. One may want to check if two modules involved in given Use Case are working together properly. So in your Integration Test you prepare test case based on use case that exposes cooperation of those two modules.

2) When you are doing System Tests as part of them you can do Use Case Testing - to confirm that behavior specified by Use Case works as it should. But as Robert Harvey pointed out, System testing is to examine compliance with requirements so it makes both positive testing and negative testing. Therefore System Testing not only covers expected behavior described in Use Cases, but also tries to 'break' the system from specific requirement point of view.

3) Additionally it should be mentioned that as Use Cases contain some expected user actions they make good starting point for User Acceptance Testing. On the other hand as user don't want to check Login Use Case but rather Login and do some stuff and observe some effects part of their business process so merely checking Use Cases is not enough. Use Cases Are some starting point but UAT usually will require tests going deeper into the buisness process that given software should support.

yoosiba