Ex No:7 Case Study On Software Testing 20.1.2012

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 6

EX NO:7 20.1.

2012

CASE STUDY ON SOFTWARE TESTING

AIM:
To perform a case study on the basics of software testing and study the testing tools.

SOFTWARE TESTING:
Software testing can be stated as the process of validating and verifying that a software
1. meets the requirements that guided its design and development

2. can be implemented with the same characteristics.

NEED FOR TESTING:


1. Testing is the most important way of assuring (or controlling) the quality of software. 2. Testing, on the other hand, entails manufacturing test data and transactions, and running the

software on something approaching the live hardware and network infrastructure.


3. To check the reliability of the software.

4. To be ensure that the software does not contain any bug which can become a reason for failure.

TYPES OF TESTING: WHITE BOX TESTING:


White-box testing (also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of testing software that tests internal structures or workings of an application, as opposed to its functionality. In white-box testing an internal perspective of the system, as well as programming skills, are required and used to design test cases. The tester chooses inputs to exercise paths through the code and determine the appropriate outputs. It can test paths within a unit, paths between units during integration, and between subsystems during a system level test. White-box test design techniques include:

Data flow testing Branch testing Path testing

BLACK BOX TESTING:


Black-box testing is a method of software testing that tests the functionality of an application as opposed to its internal structures or workings. Specific knowledge of the application's code/internal structure and programming knowledge in general is not required. The tester is only aware of what the

software is supposed to do, but not how i.e. when he enters a certain input, he gets a certain output; without being aware of how the output was produced in the first place Typical black-box test design techniques include: Decision table testing All-pairs testing State transition tables Equivalence partitioning Boundary value analysis

STRESS TESTING:
Stress testing is a form of testing that is used to determine the stability of a given system or entity. It involves testing beyond normal operational capacity, often to a breaking point, in order to observe the results. In software testing, a system stress test refers to tests that put a greater emphasis on robustness, availability, and error handling under a heavy load, rather than on what would be considered correct behavior under normal circumstances. In particular, the goals of such tests may be to ensure the software does not crash in conditions of insufficient computational resources, unusually high concurrency, or denial of service attacks. Stress testing is the process of determining the ability of a computer, network, program or device to maintain a certain level of effectiveness under unfavorable conditions

SMOKE TESTING:
Smoke testing refers to physical tests made to closed systems of pipes to test for leaks. By metaphorical extension, the term is also used for the first test made after assembly or repairs to a system, to provide some assurance that the system under test will not catastrophically fail. After a smoke test proves that "the pipes will not leak, the keys seal properly, the circuit will not burn, or the software will not crash outright," the system is ready for more stressful testing. Smoke testing is non-exhaustive software testing, ascertaining that the most crucial functions of a program work, but not bothering with finer details. The term comes to software testing from a similarly basic type of hardware testing, in which the device passed the test if it didn't catch fire the first time it was turned on.

REGRESSION TESTING:
Regression testing is any type of testing that seeks to uncover new errors, in existing functionality after changes have been made to a system, such as functional enhancement or configuration changes. The intent of regression testing is to ensure that a change, such as a bugfix, did not introduce new faults. Common methods of regression testing include rerunning previously run tests and checking whether program behavior has changed and whether previously fixed faults have re-emerged. Regression testing can be used to test a system efficiently by systematically selecting the appropriate minimum set of tests needed to adequately cover a particular change.

FUNCTIONAL TESTING:

Functional testing is a type of black box testing that bases its test cases on the specifications of the software component under test. Functions are tested by feeding them input and examining the output, and internal program structure is rarely considered .Functional testing differs from system testing in that functional testing "verif[ies] a program by checking it against ... design document(s) or specification(s)", while system testing "validate[s] a program by checking it against the published user or system requirement. Functional testing typically involves five steps: 1. The identification of functions that the software is expected to perform 2. The creation of input data based on the function's specifications 3. The determination of output based on the function's specifications 4. The execution of the test case 5. The comparison of actual and expected outputs.

PERFORMANCE TESTING:
Performance testing can refer to the assessment of the performance of a human examinee. For example, a behind-the-wheel driving test is a performance test of whether a person is able to perform the functions of a competent driver of an automobile .In the computer industry, software performance testing is used to determine the speed or effectiveness of a computer, network, software program or device. This process can involve quantitative tests done in a lab, such as measuring the response time or the number of MIPS (millions of instructions per second) at which a system functions. Qualitative attributes such as reliability, scalability and interoperability may also be evaluated.

ALPHA TESTING:
Alpha testing is testing of an application when development is nearing completion. Minor design changes can still be made as a result of alpha testing. Alpha testing is typically performed by a group that is independent of the design team, but still within the company. Alpha testing is final testing before the software is released to the general public. Alpha testing is simulated or actual operational testing by potential users/customers or an independent test team at the developers' site. Alpha testing is often employed for off-the-shelf software as a form of internal acceptance testing, before the software goes to beta testing.

BETA TESTING:
A test for computer product prior to commercial release. Beta testing is the last stage of testing, and normally can involve sending the product to beta test sites outside the company for real-world exposure or offering the product for a free trial download over the Internet. Beta testing is often preceded by a round of testing called alpha testing.

LOAD TESTING:
Load testing is the process of putting demand on a system or device and measuring its response. Load testing is performed to determine a systems behavior under both normal and anticipated peak load

conditions. It helps to identify the maximum operating capacity of an application as well as any bottlenecks and determine which element is causing degradation. Load testing generally refers to the practice of
modeling the expected usage of a software program by simulating multiple users accessing the program concurrently. As such, this testing is most relevant for multi-user systems; often one built using a client/server model, such as web servers.

MANUAL TESTING AND AUTOMATION TESTING: MANUAL TESTING:


1. Manual testing involves the operations of application to be performed manually. 2. It takes more time to complete test.
3. Manual testing is better than automated testing in terms of reliability.

4. It can execute additional adhoc.

AUTOMATED TESTING:
1. The test engineers are responsible for running scripts on any testing tool for testing the operations of application. 2. It is the best choice of regression testing. 3. Within short time many test cases can be tested.
4. Testing using these automated tools is expensive.

AUTOMATED TESTING TOOLS: WINRUNNER:


HP WinRunner software was an automated functional GUI testing tool that allowed a user to record and play back UI interactions as test scripts. HP WinRunner was originally written by Mercury Interactive As a functional test suite, it worked with HP QuickTest Professional and supported enterprise quality assurance. It captured, verified and replayed user interactions automatically, in order to identify defects and determine whether business processes worked as designed. The software implemented a proprietary Test Script Language (TSL) that allowed customization and parameterization of user input.

LOADRUNNER:
HP LoadRunner software is an automated performance and testing product from Hewlett-Packard for examining system behaviour and performance, while generating actual load.

HP LoadRunner can emulate hundreds or thousands of concurrent users to put the application through the rigors of real-life user loads, while collecting information from key infrastructure components. HP LoadRunner consists of several different tools: Virtual User Generator (VuGen), Controller, Load Generator, Analysis and the AJAX TruClient. VuGen can also run scripts for debugging.

QUICK TEST PROFESSIONAL:


Quick Test Professional (QTP) is an automated functional Graphical User Interface (GUI) testing tool that allows the automation of user actions on a web or client based computer application. It is primarily used for functional regression test automation. QTP uses a scripting language built on top of VBScript to specify the test procedure, and to manipulate the objects and controls of the application under test. HP QuickTest Professional supports keyword and scripting interfaces and features a graphical user interface. It uses the Visual Basic Scripting Edition scripting language to specify a test procedure, and to manipulate the objects and controls of the application under test.

JUNIT:
JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks collectively known as xUnit that originated with SUnit. JUnit is linked as a JAR at compile-time

RATIONALE: REQUISITE PRO:


Helps project team to manage their requirement 1. 2. 3. 4. To write good use cases. To improve traceability. To strengthen collaboration. To increase good quality.

RATIONALE TEST MANAGER:


Used for test activity management, execution and reporting. Accessed by all members of project team ensuring high visibility of test coverage.

RATIONALE ROBOT:

It is automation test tool for functional testing of client- server applications. Aids in defect tracking, change management and requirements traceability.

RATIONALE ROSE:
UML tool intended for visual modeling and component construction of enterprise level software applications. Provides iterative development of application.

RESULT:

Thus the case study has been done successfully.

You might also like