You are on page 1of 3

Radiant Info School Kandy

TESTING

Regression Testing

Regression testing is important during maintenance for the following reasons: Regression testing is
the systematic re-testing of software after changes have been made. Its primary purpose is to ensure
that after changes have been made to the software, no new errors have been introduced.

Regression testing requires the systematic recording of previous testing and its practice ensures

that structured maintenance is being carried. As the previous tests are re-used in regression testing,
it saves the maintenance team the effort of recreating any tests.

Integration testing is a software development process in which program units are combined and
tested as groups in multiple ways. Integration testing can expose problems with the interfaces among
program components before trouble occurs in real-world program execution

Top down Testing: In this approach testing is conducted from main module to sub module. if the
sub module is not developed a temporary program called STUB is used for simulate the submodule.

Advantages:

- Advantageous if major flaws occur toward the top of the program.


- Once the I/O functions are added, representation of test cases is easier.
- Early skeletal Program allows demonstrations and boosts morale.

Disadvantages:
- Stub modules must be produced
- Stub Modules are often more complicated than they first appear to be.
- Before the I/O functions are added, representation of test cases in stubs can be difficult.
- Test conditions ma be impossible, or very difficult, to create.
- Observation of test output is more difficult.
- Allows one to think that design and testing can be overlapped.
- Induces one to defer completion of the testing of certain modules.

Bottom up testing: In this approach testing is conducted from sub module to main module, if the
main module is not developed a temporary program called DRIVERS is used to simulate the main
module.

Advantages:

- Advantageous if major flaws occur toward the bottom of the program.


- Test conditions are easier to create.
- Observation of test results is easier.
Radiant Info School Kandy

Disadvantages:

- Driver Modules must be produced.


- The program as an entity does not exist until the last module is added.

While doing an Integration , If we don’t have all the modules get ready and Need to test a particular
module which is ready then We Use Stubs and Drivers.

Stubs and drivers used in Integration testing for a Top down Integration testing and Bottom up
Integration Testing.

For EX: If we have Modules x,y,z . X module is ready and Need to Test it , But i calls functions from y
and z.(Which is not ready)To test at a particular module we write a Small Dummy piece a code which
Simulates Y and Z Which will return values for X, These piece of Dummy code is Called Stubs in a
Top Down Integration

So Stubs are called Functions in Top down Integration.

Similar to the above ex: If we have Y and Z modules get ready and x module is not ready, and we
need to test y and z modules Which return values from X, So to get the values from X We write a
Small Pice of Dummy code for x which returns values for Y and Z, So these piece of code is called
Drivers in Botton Up Integration So Drivers are calling Functions in Bottom Up Integration.

i.e)
Stubs and Drivers are an essential part of integration testing. They enable parts of a system which
have not yet been developed to be simulated.

A Test Driver is a specially designed user interface which enables test data to be inputted and passed
to a sub-system which is being tested. A test driver is only used in testing and does not have any
place in the final system.

A Stub replaces a module which has not been fully implemented. A stub mimics the behaviour
required by another module (the sub-system which is being tested). The cost of developing stubs and
drivers can be quite high if they are complex. 

Automation testing

Every software development group tests its products, yet delivered software always has defects. Test
engineers strive to catch them before the product is released but they always creep in and they often
reappear, even with the best manual testing processes. Automated software testing is the best way to
increase the effectiveness, efficiency and coverage of your software testing.

Eg: HP QuickTest Professional software provides functional and regression test automation for


software applications and environments. Part of the HP Quality Center tool suite, HP QuickTest
Professional can be used for enterprise quality assurance
Radiant Info School Kandy

Various aspects of testing can be automated: test data can be automatically generated where itcan be
described by a regular grammar, test harnesses can be used to install the program and run it with a
prepared set of input test data, and these may be used in conjunction with output comparators to
check that expected outputs are being produced.

Automated software testing has long been considered critical for big software development
organizations but is often thought to be too expensive or difficult for smaller companies to
implement. Automated QA’s TestComplete is affordable enough for single developer shops and yet
powerful enough that our customer list includes some of the largest and most respected companies
in the world.

Static analyzers (eg ASSENT) and code auditors can be used to ensure correct adherence to coding
standards;data flow analyzers can be used to track data through the program and ensure correct data
flows

Data-flow analysis is a technique for gathering information about the possible set of values
calculated at various points in a computer program. A program's control flow graph (CFG) is used to
determine those parts of a program to which a particular value assigned to a variable might
propagate. The information gathered is often used by compilers when optimizing a program. A
canonical example of a data-flow analysis is reaching definitions

You might also like