Open Framework, Information Management Strategy & Collaborative Governance | Data & Social Methodology - MIKE2.0 Methodology
Wiki Home
Collapse Expand Close

Members
Collapse Expand Close

To join, please contact us.

Improve MIKE 2.0
Collapse Expand Close
Need somewhere to start? How about the most wanted pages; or the pages we know need more work; or even the stub that somebody else has started, but hasn't been able to finish. Or create a ticket for any issues you have found.

Functional Testing

From MIKE2.0 Methodology

Share/Save/Bookmark
Jump to: navigation, search
Activities in Phase 5
Phase 5 - Incremental Development, Testing, Deployment and Improvement
Content Model Relationship

Contents

Activity: Functional Testing

Objective. The Functional Testing activity is done to validate the solution as defined in the business requirements and detailed technical specifications document for each component. Functional Testing will often contain the highest overall number of test cases, as it is focused on testing the solution against the following:

  • Business Rules
  • Data Mapping
  • Key Mapping Validation
  • Data Validation
  • Filtering
  • Data Re-Engineering
  • Derived calculations

Functional Testing primarily focuses on ensuring that the solution components work as designed, and that the design sufficiently meets the business requirements. Functional Testing will often involve some manual steps and stubbing of components as not all processes will be tightly linked together.

Functional Testing is often the most complex area of Testing as it involves staggering the test cycle inline with development as it occurs. Typically, it is also where there highest degree of changes occur during the testing process.

Major Deliverables
  • Functional Test Results
  • Changes to software environment (if required)
Tasks

Task: Migrate Software to Functional Testing Environment

Objective: Move software from configuration management environment to the functional testing environment and ensure that all changes have been made prior to propagating software.


Input:

  • Availability of a suitable and stable Functional Testing environment


Output:

  • Functional Testing Environment ready

Task: Test BI Application Development Work Products

Objective: Functional testing of Applications is the first cycle of testing the end-product that will be visible to users. Functionality Testing of Application Processes can present issues in terms of timing for many information management projects: as information is flowing "downstream", all data is typically not loaded into the target area until very late in System Testing. This means that for Business Intelligence tools, there may not be very much to test whilst functionality is still being built.

There are two approaches for dealing with this issue. The first is to heavily stagger Functional Testing of Applications to occur after most of the data has been loaded into the target environment. The other option is to move some of the Functional Testing of Applications into the System Testing Domain, and do most Functional Testing of Applications using mockup data. The latter is generally the preferred option. Whereas it is not the most efficient form of testing and in some ways overlaps with the activities in the building of prototypes, it provides the following benefits:

  • It moves the Business Intelligence team into the formal testing process, along with the rest of the team
  • It involves a tester in the process of using the reports against mockup data, as opposed to only a developer (as in prototyping)
  • There will be business rules and calculations within the Business Intelligence tool (in analytical systems this may actually be the area of highest complexity on the project) which can then be tested early in Functional Testing.

Regardless of the names of the test cycles, the key message is that there is often a high degree of functional complexity when testing applications. Fleshing out issues as early possible generally provides the best approach and outweighs the downsides of the re-testing that needs to be done at a later stage.


Input:

  • Functional Test Environment ready
  • Functional Application Test Plans and Test Cases
  • BI Application Developed and Unit Tested


Output:

  • Completed Initial Test Case Execution for BI Application Development Functional Testing

Task: Test Integration Work Products

Objective: Functional Testing of Integration Processes focuses on ensuring that the implementation complies with the logical design aspects of the integration solution. This includes testing of business rules, transformations and derived calculations.

There may be a large number of integration processes and therefore functional integration testing may be a long and complex process. Typically this process can be broken up into a number of areas to provide parallel streams of activity. For Data Warehousing, for example, Functional Testing Cases may be grouped as the following:

  • By subject area s (i.e. group the testing of Product and the testing of Customer)
  • By target loaded area (i.e. testing the ODS before testing Data Marts)
  • In a de-normalised data model, by dimensions and facts

This approach also helps minimise regression testing once defects have been fixed and allow SIT Testing to begin in some areas whilst development and Functional Testing may still be occurring.

Combined with SIT Testing, Functional Testing of Integration Processes will ensure the quality of the complete lifecycle of the ETL process. This process is often complex and prone to errors. In functional testing, the user\’s knowledge of the data is necessary to insure the accuracy and integrity of the information. It may be necessary to develop one time reports or queries to allow the user to inspect the results of the process.


Input:

  • Functional Test Environment ready
  • Functional Integration Test Plans and Test Cases
  • Target Database Implemented
  • Adapters and Interface Services Developed and Unit Tested
  • Mediation Components Developed and Unit Tested


Output:

  • Completed Initial Test Case Execution for Infrastructure Development Functional Testing

Task: Test Information Development Work Products

Objective: Functional Testing is the most critical aspect of testing Information Management Processes as it involves focusing on the detailed inspection of changes in the data. For Data Re-Engineering projects in particular, Functional Testing provides the great majority of the overall test cases that will be executed.

Metadata management will also be tested in Functional Testing. Metadata values are tested for correctness, both from a technical perspective and from the perspective of a business user.


Input:

  • Functional Test Environment ready
  • Functional Information Development Test Plans and Test Cases
  • Data Re-Engineering Processes Developed and Unit Tested
  • Integration of Metadata Management Processes Developed and Unit Tested


Output:

  • Completed Initial Test Case Execution for Information Development Functional Testing

Task: Defect Resolution and Re-Testing

Objective: This task covers re-execution of Functional test cases that had issues in initial round of Functional Testing. Due to dependencies between test cases, this may require regression testing of some test cases. Regression testing may also require some additional new test cases. In most Information Management project scenarios, Functional Testing is the longest running of the test cycles.

Depends of project metrics, but typical exit criteria out of Functional Testing may include:

  • 98% of performance test cases successfully completed
  • No Severity 1 or 2 Defects outstanding including performance issues
  • Agreed plans to resolve outstanding Severity 3 and 4 defects

These metrics should be agreed-upon as part of the overall Test Strategy.


Input:

  • Completed Initial Test Case Execution for BI Application Development Functional Testing
  • Completed Initial Test Case Execution for Infrastructure Development Functional Testing
  • Completed Initial Test Case Execution for Information Development Functional Testing


Output:

  • Completed Test Case Execution for BI Application Development Functional Testing
  • Completed Test Case Execution for Infrastructure Development Functional Testing
  • Completed Test Case Execution for Information Development Functional Testing

Role:Test Manager

Role:Functional Test Analysts

Role:Technical Test Analysts

Yellow Flags

  • Large numbers of defects raised with the core functionality of the system point fundamental issues with the basic design
  • Gaps in test data - proper test data will be need to appropriately test all functional rules and exceptions
Wiki Contributors
Collapse Expand Close