User:HRice/MotioCI

MotioCI
MotioCI was originally conceived in the summer of 2005 by a software product team at Focus Technologies, LLC (now Motio, Inc) as a way to provide a more disciplined approach to BI development in large-scale Cognos environments. Originally code-named “RCL-CI”, version 1.0 of MotioCI was first released in June of 2006 at the Cognos User Forum in Las Vegas, Nevada. The original published name was “FocusCI”. Version 1.0 of the product supported version control & automated testing for Cognos Business Intelligence content report specifications, and was developed largely against Cognos ReportNet (the precursor to Cognos 8). Since that time, MotioCI has been adopted by many Cognos customers, and has widened its breadth of functionality to include BI Lifecycle management for all object types in Cognos (both BI content and infrastructure), as well as stress and load testing for Cognos environments.

Architecture
MotioCI is hosted in a separate server process and uses its own database independent of Cognos. MotioCI consists of two components: the MotioCI Server and the MotioCI Cognos plugin. 1.

Timeline
The MotioCI timeline provides BI stakeholders with visibility into “who's changing what” in their BI Ecosystem. The BI Ecosystem consists of Cognos itself, the BI content contained within it, the datasources which Cognos pulls data from, as well as the external security stores which Cognos authenticates against.

The MotioCI timeline, records all events/changes to BI content, or the underlying environment. 1.

Version Control
MotioCI supports version control for Cognos BI content. MotioCI is capable of versioning any object and properties in Cognos as well as file system files and assets outside of the Cognos Content Store (e.g. Cognos Framework Manager Models).

The Revision History component of MotioCI displays the history of all versions of an item. Version Control in MotioCI integrates with Cognos Connection and is viewable in Cognos. Paths may be excluded in Version Control.

For each object under version control, users can :
 * View the entire revision history of the object


 * View which authors made each change
 * Do “Diff” operations between two revisions (to see how the object was changed)
 * Roll back to an older revision (pushes it back to the Content Store)
 * Open an old revision in the corresponding studio (applicable for Reports, Queries, Events, etc)
 * View all properties on the object at the time of the revision (name, description, tooltip, security policies, etc)
 * Execute a historical revision (only applicable for certain object types, e.g. Reports, Queries, Analysis Objects, etc)

In addition to viewing the history of all current objects in the Cognos Content Store, MotioCI users can recover BI content which has been deleted from Cognos.

Examples of the types of objects which are often versioned by MotioCI:
 * All BI content in the public folders; User's private content ("My Folders")
 * Administration and configuration objects (dispatcher configuration, data sources, Cognos groups and roles)
 * Framework Manager files (CPF files and model.xml)
 * Cognos Configuration files (cogstartup.xml)
 * Static content (Javascript files, images, etc)
 * Other text and XML files

Each revision in version control :
 * can be classified as Major or Minor.
 * has a system generated version number.
 * can have a client supplied version number.

The revert process in MotioCI performs the following:


 * Recover deleted Cognos content and revert to this version
 * Revert an item to an older version
 * Specify which properties are reverted
 * Revert multiple objects

Labels may be used to group together baselines of like BI content that can be deployed as a single unit. Labelling operations:
 * Create and apply label without using regression testing
 * Export all BI content which is associated with the label (create a cognos export archive / zip file)
 * Promote all BI content which is associated with the label from one Cognos instance to another (e.g. from the Development Cognos instance to QA Cognos instance)
 * Revert label to any previous version
 * "VSS style labeling"

Studio Integration
Certain MotioCI functionality is exposed directly within the Cognos Studios. A locking concept is used in Report Studios, for example, where users exclusively lock a report by “checking it out”, and later, provide comments relating to the report during the “check in” process. Utilizing this locking metaphor: Locking capabilities are included on versioned items
 * Only one user is able to make changes
 * Other users attempting to open a locked entity are notified when it is locked and when it is unlocked

As authors “check in” a new version of a Report, they can supply a comment which references change requests or defects in an external defect tracking system such as JIRA, HP Quality Center, etc. MotioCI supports automated integration with these external defect tracking systems and automatically closes tickets. Post-commit hooks cross-reference versions of an item in third-party tracking systems. 1.

Automated Testing
MotioCI conducts two types of automated tests, regression and stress.

Regression Testing refers to tests performed on software applications to identify errors in the development, QA, and production cycles. Tests created in one cycle may be executed in all other cycles. BI Content Authors or QA Professionals can configure assertions and metrics for regression testing. Assertions can be both pre-execution and post-execution assertions.

Example assertions a user can include in regression tests:

Pre-execution Assertions:
 * Appearance, i.e. specific colors, fonts, and images
 * Accuracy, i.e column formula validity

Post-execution Assertions:
 * Accuracy, i.e. row count, consistency with master report
 * Performance, i.e. execution within a specified time range, output conformity to specified kilobyte size

MotioCI has three levels of regression tests: test projects, test suites, and test cases.

Test projects:
 * Top-level containers built to test top-level folders
 * Contains the root folder for Cognos content, while content below the root is built and validated when the project is run
 * Sets the frequency the project is run
 * Defined settings of how to notify test results
 * Defines the paths to exclude from validation and how the entire build should act if one or more reports fails validation

Test suites:
 * Mid-level containers associated with the test project located at or below the root folder
 * Contains sub-folders of reports for testing assertions
 * Tests and checks are applied to ensure consistency

Test cases:
 * Lowest level containers associated with individual reports corresponding to a parent test suite
 * Defines a report being tested
 * Asserts tests and checks applied before and after a report is run
 * Establishes output formats (i.e. Microsoft Excel spreadsheet)
 * Locale settings (language, date/time, and currency formats)
 * Defines user credentials necessary to run reports
 * Creates parameters passed when a report is run

Regression testing results are communicated by the MotioCI Testing Dashboard, Build History and Build Results pages, email notification, or an RSS feed. 1.

Stress Testing is a set of performance tests run on an application to determine its ability to handle heavy loads or stresses within the overall Cognos instance. Stress tests are intended to determine the breaking point at which performance begins to falter, evaluate the general performance of Cognos instances, and troubleshoot an existing Cognos environment experiencing instability. 1.

History
June 26, 2006, Motio, Inc. released the initial version of MotioCI, originally code-named RCL-CI at the Cognos User Forum in Las Vegas, NV. The original published name was “FocusCI”.

March 3, 2007, version 1.1 is released, adding new features:
 * Basic support for testing bursted reports
 * Cancel a build for Admins from the dashboard
 * Windows Install Wizard
 * Project Ref Diff Tool (Diff the build results from a project ref with its parent project)

March 30, 2007, the 1.1 release that supports ReportNet debuts.

September 14, 2007, version 1.2 is released adding new features:
 * Model, Query Studio and Analysis Studio versioning, promotion, and proactive versioning support.
 * Licensed users added to the license management (will be embedded in the key, and named users will be tracked within FocusCI)
 * Master Report Assertion shows a link to view the master report
 * Auto-generation of revision comments
 * Blackout period to prevent FocusCI from running builds during a configurable time period
 * Limit modification list and labels to the project level (previously entire CRN instance was included)
 * Cancel builds after a certain number of attempts, reconfiguration of timeouts
 * Support for generated report specifications which contain XML versions

March 2008, Focus Technologies, LLC changed their name to “Motio, Inc.” due in large part to a trademark dispute with Information Builders (which owns a trademark on the term “Focus”). In addition to the company name change, the names of each product changed as well, ex. “FocusCI” became “MotioCI”.

June 17, 2008, MotioCI 1.3 is released. New features provided in the 1.3 version include stress and load testing, auto-generated test cases, and MotioCI framework model and reports.

January 15, 2009 version 1.4 released adding new features:
 * View the promotion history of both promoted baselines and individual reports
 * Promotion of folders
 * Pre-Execution Assertion for Naming conventions for queries and data items
 * Pre-Execution Assertion for Image Paths
 * Pre-Execution Assertion for Valid Packages
 * "Disconnect" a Cognos instance (pauses all CI related operations on this instance - can later be resumed)
 * Exclude paths from version control
 * Version Control Integration in Cognos Connection
 * Track renames and moves as an edit
 * Active versioning of Copy and Paste and Cut and Paste (of single items)
 * Comment linkage on promotions
 * Validation of report before revert
 * Links to folders in Cognos Connection
 * Version New Items: report templates, URLs, model path property; canBurst property
 * Use Cognos prompt pages for test case creation
 * Cut, Copy, Paste of test cases and assertions
 * Relative paths for test cases and test suites
 * Progress meters for project builds added to the dashboard
 * Images pre-execution assertion
 * Disabling of test cases
 * Use test case parameters during validation
 * Time out added for validation and test case execution
 * Open report in Report Studio from test case
 * Retest items that failed validation
 * Build notification emails include results
 * Mix interactive and non-interactive executions in stress test
 * Parsing and linking of package to reports to groups and roles
 * Schedule events on specific days and times (version control, test builds, change detectors, documentation)
 * Ability to suspend a project or Cognos instance
 * Cognos configuration changes generated by MotioCI (for Versioning Plugin and Cognos Connection Versioning integration)
 * Configurable session timeout
 * Exclude paths from version control
 * Permanently delete items from version control
 * Automatic cleanup of regression test outputs (can set schedule, specify size, etc)
 * Use of folder picker rather than manual entry (version control paths, project paths)
 * Provide namespace selection dialog for promotion, regression test credentials, version control, license user, etc
 * Support Cognos 8.4
 * Report History report (detailed history of a singe report)
 * Inactivity Report (which reports have not been edited)
 * Coverage Report (how well are reports being tested)
 * Snapshot report to capture CI configuration

May 12, 2009, MotioCI Air is released. This version is hosted in Amazon® Elastic Compute Cloud (EC2) in partnership with Amazon Web Services.

May 12, 2009, version 1.4.1 released adding:
 * Diff reports across instances
 * Version package-level drill-through definitions
 * Filter timeline by user

September 15, 2009, version 1.4.2 released adding:
 * Diff'ing of URL's across instances
 * Diff'ing of drill-paths across instances


 * Version Control Integration in Cognos Connection Track renames and moves as an edit
 * Version default output property on reports
 * Cache promotion credentials used during promotion (only enter once if promoting multiple things in the same MotioCI™ session)
 * Promotion of folders
 * Filter regression test projects and version control based on security defined on folders in Cognos
 * Filter timeline by path

May 4, 2010, MotioCI 2.0 released adding new features:
 * Version all objects types in the Content Store
 * Version all properties of objects
 * Version Files not in the Content Store
 * Partial Version Now
 * Create Cognos export archive from versioned content
 * Specify which properties are reverted
 * Revert multiple objects
 * Add concept of major versus minor versions
 * Add client version number
 * Users can assign their own version numbers
 * Version numbers are promoted
 * Ability to create and apply label without using regression testing


 * Cognos export archive from versioned content
 * Create and update labels
 * Export label, promote label, revert label
 * Seen as "VSS style labeling"
 * Integration with External Defect Tracking System
 * Add concept of "locked" item
 * Report Studio Integration
 * Version Cut and Paste of folders
 * Add Version information to description on promotion
 * View content of single revision
 * Publish MotioCI reports from application
 * Multi select Objects
 * Specify which properties get promoted
 * Output size assertion
 * Separated configuration from version control
 * Remove JDK Requirement
 * Create CI roles in Cognos, hide capabilities
 * Folder picker for project creation (also default project names)
 * Default gateway and dispatcher
 * Auto Add licensed users