Вы находитесь на странице: 1из 7

Functionality Testing

For complete diagram, please click on the below image:


Functionality Testing

“It is difficult to keep up with high product quality with the rapid pace of changing requirements”,Tests are
difficult to create and manage, time consuming and many times difficult to execute. As new changes are
introduced, so are more bugs. How will each change affect the rest of the system? What is the risk to the

Functionality Testing is the only solution to overcome the above issues .An effective functionality testing
process enables to verify whether your product meets the intended specifications and functional
requirements. Testing when done manually is repetitive tedious and error-prone involving a lot of challenges
like slipping schedules, frequently changing UI interfaces, and deadlines with high quality measurements.
Test cases once created should be re-used, particularly during regression testing. To address all these issues
and test smarter, faster and consistently we need to go by an automated approach which makes our testing
reliable and faster with reduced cost.

There are variety of tools available like Rational Functional Tester, Silk Test, QTP and Rational Robot which
help in automating functionality testing and achieving better quality of software.

Best practices to be implement during functionality testing

Effective Functional Test Case design

Functional test cases are derived from the functional test requirements and are the basis for system
testing. These test cases helps to validate the application functionality as per the specifications. Test-case
design should cover the negative scenarios ,boundary conditions and ensure full functional coverage .

Test designer/tester needs to map the test cases to specific functional scenarios and vice versa. This
approach gives a much more accurate picture of the application to verify full functional coverage . Also this
mapping helps identifying changes in requirement/test scenario and which in turn makes impact analysis
easy. This is called Bi-directional traceability. Once all aspects of a test requirement have been tested and
passed by one or more test cases , the test design activity for that requirement can be considered

How Tools help in achieving this:

Test case design is not an automated process. A combination of test management and requirement
management tool helps in effective test case design. Test management tool provides centralized repository
for managing all testing assets. Test cases are designed within the tool and mapped to various test suites
.These test cases are attached to test environment/test scenarios / iteration for test execution. Test
scenarios in test management tool are linked to the functional scenarios/requirements loaded within the
requirement management tool to provide bi-directional traceability and impact analysis.

Test management tools like Rational Test Manager, Silk Central test manager and quality center integrated
with requirement management tools like Requisite pro, Caliber RM and DOORS helps in achieving this goal.

Steps for using the tools:

Install Requirement management and test management tool and intergrate.

Create a project within a requirement management tool (Requisite Pro, Caliber RM, DOORS) and upload
the requirements in RM tool.

Create a test project within the test management tool( Silk Central , Rational Test manager, Quality

Create test suites & Link the test cases to test suites by providing the name of test case. This is done by
right clicking the test suite and selecting the test case from the list.

Associate the test environments to test case (Associate configurations, iterations, test plan document) by
right clicking and selecting the properties option.

Associate Test case within test management tool to the requirements within the integrated requirements
management tool for impact analysis.This can be achieved by opening the RM tool within TM tool from the
properties option of test case.

Test case execution

Test cases need to be executed either manually or through tool (automation) in the specified environment.
Test case execution should be done for every component of the software as per the test plan to ensure
effective testing. Various activities involved during test execution are given below:

Distributed scenario testing:

Distributed scenario testing is executing the test cases on different hosts /environments that interact with
each other. It involves interaction between different computer systems(under test) distributed
geographically. All the test cases executed on different systems contribute towards a single, common,
result. Manual distributed testing involves execution of test cases manually on various hosts/environments.
Functional testing Tools provide an automated approach by reducing the time consumption for executing
test cases/scenarios and consolidating test results.

Data-driven testing
Data-driven testing is a methodology of executing test cases with different data values (test data) stored in
one or more data sources or databases to achieve maximum test coverage. Test data is used for both input
values and output values for verifying the result as per the defined test cases. All tools like Rational
Functional Tester, Silk Test and QTP provide this facility which reduces the numbers of test cases required to
test the application.

Verification Check

Tester performs the verification check on the test case to validate the state of an application object and
verify action taken place . This also includes verifying property values and screen output. A verification
check is created by capturing information about an object in the application to establish baseline
information. Later this baseline is used for comparison during test execution. This gives the difference
between the object/ application states. Verification checks are one of the central aspects of automated
testing and verify the application states as expected.

How Tools help in achieving this:

Functionality testing tools helps in automating test cases by recording the test scenarios through user
actions on the SUT. The test cases are stored in the form of test scripts of various technologies (Java, C++,
4test, VB...) depending on the selected testing tool.Test scripts created within the functionality testing tools
can be executed in distributed environment to ensure that the application is capable of running in various
environments as per the test specification.

Automated tests play back the recorded sequence of user actions that cover a certain area of the tested
application. To get larger coverage, tools help in executing test scripts with different input data from an
external storage like file or database. This technique of fetching data from an external source automatically
is termed as datapooling. Functionality testing tool have an out of the box capability to verify the
object/application state.This feature is called verification points. It captures the object/application state
while recording and verifies the state during execution of the script.

Steps for using the tools:

Install the selected functionality testing tool (Rational Functional Tester, Silk Test, Rational Robot, and
QTP) suitable for the project environment.

Test cases/scripts are created by recording feature available in FT tool.

The test cases created are then played back using the play button to verify the status.

Data driven testing: A datapool is created within the tool or is attached externally as data source to the
recorded script. These scripts are played back for dynamic data testing.

Verification points: A verification point is inserted into a test script while recording by choosing the
verification point wizard available within the tool.

Test cases/test scripts are associated within test suites in the test management tool and assigned to
various hosts/agents for execution. Functional Testing tools need to be integrated with Test Management
tools(Rational Test manager, Silk central test manager or quality center) to schedule the scripts on
different hosts with different configurations for distributed scenario testing. This can be done by:

Creating the test assets (test suites, test cases, test plan, iterations, configurations...)within the
TM tool

Define the hosts within the TM tool and associated it with the test case by: right click ->add host

The host machines must have agent controllers installed to execute the test scripts.

Save the test results within the Test management tool in the Log folder within the project directory. This
report can be exported to various formats depending on the FT tool capability.

FT defects identification and closure

Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a
computer program thus making it behave as expected. It is not only a developer’s cup of tea, but
has to be done at a tester’s level as well to ensure effective testing. Debugging at a functionality
testing level means to identify the root cause of failure during execution of test cases. Once the
root cause of the defects is identified, the defects need to be fixed, validated and closed.

Defect tracking life cycle must be followed for an effective logging, tracking and resolving the
defects identified during testing. This can be achieved by integrating test management tool (
QC,Rational test manager,Silk central) with defect tracking tool ( Bugzilla, Clear quest)

Closure of defects is one important software engineering aspect in any review/testing phase. The
defects can be an outcome of manual or automated test case execution. Once the test execution
is performed by the test team, the development team can work on the application
functionality/customization in case of any defect/change requests. The review process will be
complete only when all the defects are fixed, verified and closed.

How Tools help in achieving this:

On failure of test scripts, the defects are identified and must be logged into defect tracking
tool.Intergation of test management and defect tracking tools helps in monitoring the test and
defect life cycle till closure. Tools like Rational Functional Tester, Silk Test, QTP, and Rational
Robot have debugging features where testers can activate the debugging option during the test
script execution. This enables to debug the script and identify the root cause for the defect.
Scripts are played back in debug mode to find the cause of failure of scripts.

Steps for using the tools:

 Install defect tracking tool (CQ, Bugzilla) and Integrate with the test management tool.
 Tester Manager/tester will identify the defects from the failed test scripts and log into the defect
tracking tool.( Go to results tab within Rational test manager, Silk central,QC -> Select the failed
test script -> right click -> Submit the defect in clear quest,bugzilla).

 Test manager assigns the defect to the tester for verification which in turn is reproduced and the
defect status updated with details in defect tracking tool.

 These defects are assigned to the appropriate developer for Bug fix.

 Tester to test the build after bug fix for all impacted scenarios with regression suite

 Once all defects are fixed, tester to close the defects in defect tracking tool to complete the
defect life cycle.

Managing of Test-assets (test plan, test design, test results till closure through test
management tools)

Test management is the practice of organizing and controlling the process and artifacts required for
Application under test. Management of the Test cases/Test plans is essential to maintain the order in the
execution and hence manage and define specific test requirements. This also ensures that there is a
central repository for the entire testing team for managing testing assets (Test suites, test cases, test
logs, test report...) Centralized repository can either be a tool like Rational Test Manager, Silk Central or
Quality center

How Tools help in achieving this:

Rational Test Manager and Silk Central Test Manager are the test management tools that can be
integrated with Functionality testing tools (Rational Functional tester, QTP, Silk Test) to manage test
strategy, test plans, test case as well as test scripts.Test reports can be maintained and viewed in a
central place which provides better visibility to the entire testing team.

Steps for using the tools:

Install and integrate the functionality testing tool (Rational functional tester, Silk Test, QTP) with test
management tool (Rational test manager, QC, Silk Central) as per the project environment.

Create the Test suite within the test management tool and align the test cases/test scripts to it.

After execution of test scripts, save the logs files and test results within the test management tool, hence
acting as a single repository for all the test assets