Sunteți pe pagina 1din 22

Testing Concepts and Test Automation

Software Quality Revolution


Software Testing is a process that consists of all test life cycle activities like static and dynamic testing concerned with planning, preparation and evaluation of software products to determine that the software products satisfy customers requirements and are fit for customers use. Software Testing is done to find software defects or failures in advance.

Lean principle
A systematic approach to identifying and eliminating waste through continuous improvement, flowing the product at the pull of the customer in pursuit of perfection.

The Quality Revolution

It illustrate the activity sequence:


Setting goals Assigning them to measurable milestones Assessing the progress against the milestones Take action to improve the process in the next cycle

The Objectives of Testing

It does work
It does not work

Reduce the risk of failures


Reduce the cost of testing

The Concept of Complete Testing

Complete or exhaustive testing means There are no undisclosed faults at the end of test phase

Complete testing is near impossible for most of the system The domain of possible inputs of a program is too large Valid inputs Invalid inputs The design issues may be too complex to completely test It may not be possible to create all possible execution environments of the system

Failure, Error, Fault and Defect

Failure A failure is said to occur whenever the external behavior of a system does not conform to that prescribed in the system specification Error An error is a state of the system. An error state could lead to a failure in the absence of any corrective action by the system Fault A fault is the adjudged cause of an error Defect It is synonymous of fault It a.k.a. bug

Testing Level

Unit testing Individual program units, such as procedure, methods in isolation Integration testing Modules are assembled to construct larger subsystem and tested System testing Includes wide spectrum of testing such as functionality, and load Acceptance testing Customers expectations from the system Two types of acceptance testing UAT BAT UAT: System satisfies the contractual acceptance criteria BAT: System will eventually pass the user acceptance test

V model

Test Automation

But, Is This Really Automation?


Analyze

product Design test Run test 1st time Evaluate results Report 1st bug Save code Save result Document test
Re-run

-----------

human human human human human human human human MACHINE


MACHINE

the test
result
(plus

Evaluate

human is needed if theres any mismatch) human

Maintain

result --

Automated Regression Pros and Cons


Advantages

Disadvantages
Breaks Tests Pays

Dominant automation paradigm Conceptually simple

easily (GUI based)

are expensive off late to failure because:

Straightforward
Same approach for all tests Fast implementation Variations are easy Repeatable tests

Prone

difficult financing,
architectural, and maintenance issues
Low

power even when successful (finds few defects)

GUI Automation is Expensive


Estimates run from 3-5 times the time to create and manually execute a test case.
You usually have to increase the testing staff in order to generate automated tests. Otherwise, how will you achieve the same breadth of testing? Your most technically skilled staff are tied up in automation Automation can delay testing, adding even more cost (albeit hidden cost.)

Maintaining GUI Automation


GUI test tools must be tuned to the product and the environment GUI changes break the tests
May need to wait for GUI stabilization Most early test failures are due to cosmetic changes False alarms are expensive We must investigate every reported anomaly We have to fix or throw away the test when we find a test or tool problem Maintainability is a key issue because our main payback is usually in the next release, not this one.

Common Mistakes about Test Automation


Dont expect to be more productive over the short term.
The reality is that most of the benefits from automation dont happen until the second release. It takes 3 to 10+ times the effort to create an automated test than to just manually do the test. Apparent productivity drops at least 66% and possibly over 90%. Additional effort is required to create and administer automated test tools.

Think About

Automation is software development. Regression automation is expensive and can be inefficient. Automation need not be regression--you can run new tests instead of old ones. Maintainability is essential. Design to your requirements. Set management expectations with care.

Issues Faced in a Automated Test

What is being tested? How is the test set up? Where are the inputs coming from?

What is being checked?


Where are the expected results? How do you know pass or fail?

TestComplete

TestComplete Properties

TestComplete Explorer

TestComplete Run

TestComplete Report - Details

TestComplete Report - Details

Thank You
Ganesh B.

S-ar putea să vă placă și