Technical review use cases

The tests are designed to explore multiple facets of your application, verifying that the application appropriately integrates, exchanges data, and is compatible with and supported by the QuickBooks platform. In addition, the application should not freeze, crash, post inappropriate error messages, or cause data loss or corruption at any time during the test cycle.

Install/uninstall use cases
Test ID Test Case Description/Steps
1.1

Verify the application includes a standard Windows installer.

Description: A standard Windows installer is provided with the application.

1.2

Verify the application Installer does not improperly overwrite any files.

Description: The application does not overwrite any QuickBooks files during installation. It will also verify that any system or MSXML files that are overwritten during the installation process are newer-version files. Also, if any MSXML files are overwritten, they must be version 4.0 or higher.

* If the application design requires files to be overwritten, the documentation must indicate which files are specifically overwritten during the Installation process.

1.3

Verify the application is installed properly.

Description: The application installs to the proper directories and integrates with QuickBooks as expected.

  1. Verify that the directory structure is modified as described in the Installation Guide.
  2. The user interface and menus integrate with QuickBooks as described in the Installation and User Guides.
1.4

Verify the application successfully handles the initial login process and connection to QuickBooks during launch.

Description: The application successfully launches, completes the login process, and connects to QuickBooks. If the login or connection process does not run successfully, then the application must present the user with directions on how to resolve the problem.

EXAMPLE: If the QuickBooks administrator has not granted the application permission to log in automatically, an error code will be sent to the application.

1.5

Verify the application includes a standard Windows uninstaller.

Description: A standard Windows Uninstaller is provided with the application.

  1. Verify the application can be removed from all of the following locations: Add/Remove Programs
1.6

Verify uninstall does not remove any QuickBooks or system files.

Description: The application’s uninstaller does not remove any QuickBooks or system files.

Functionality use cases
Test ID Test Case Description/Steps
2.1

This test case verifies that the application does not install anything into the QuickBooks program space.

Description: NO files or folders should be added or modified in [PROGRAM FILES]IntuitQuickBooks<anything> ([PROGRAM FILES] is usually C:Program Files (x86)Intuit (64 bit) or C:Program FilesIntuit (32 bit) but can be modified by the user or by the language edition of windows)

In [COMMON FILES]IntuitQuickBooks, usuallyC:Program Files (x86)Common FilesIntuitQuickBooks, nothing other than the list below should be added or modified. If anything on the list below is MODIFIED it must be to a NEWER version (check version stamps):

msvcp71.dll

msvcr71.dll

QBXMLRP2.dll

QBInstanceFinder.dll

stlport_vc745.dll

stlport_vc746.dll

QBFC.dll

QBFC2.dll

QBFC2_1.dll

QBFC3.dll

QBFC4.dll

QBFC5.dll

QBFC6.dll

QBFC7.dll

QBFC8.dll

QBFC10.dll

QBFC11.dll

QBFC12.dll

QBFC13.dll

Interop.QBXMLRP2.dll

Interop.QBFC3.dll

Interop.QBFC4.dll

Interop.QBFC5.dll

Interop.QBFC6.dll

Interop.QBFC7.dll

Interop.QBFC8.dll

Interop.QBFC10.dll

Interop.QBFC11.dll

Interop.QBFC12.dll

Interop.QBFC13.dll

QBXMLRemoteOE.dll

QBOEDataManager.dll

RDSQBRDSSoapCli3.dll

RDSQBRemoteClientps.dll

RDSRDSQBXMLRP.dll

RDSqbRDSClient.exe

RDSqbRDSServer.exe

RDSqbRDSServer.ini

RDSqbrdsclient.chm

RDSqbrdsserver.chm

QBWebConnectorEncryption.dll

QBWebConnectorQBWebConnector.exe

QBWebConnectorRegisterQBWebConnector.exe

QBWebConnectorSyncFusion.Core.dll

QBWebConnectorSyncFusion.Grid.Base.dll

QBWebConnectorSyncFusion.Grid.Windows.dll

QBWebConnectorSyncFusion.Shared.Base.dll

Test ID Test Case Description/Steps
2.2

Verify the application does not contain inappropriate or offensive graphics or text.

Description: No inappropriate or offensive graphics or text is present in the application. The application must not contain or access any material or information that is deceptive, misleading, fraudulent, obscene, pornographic, defamatory, in violation of personal or property rights, regulation or law, trade libelous, libelous, slanderous, unlawfully harassing or injurious, excessively violent, or otherwise deemed unfit for publication by Intuit.

2.3

Verify that the application properly handles synchronization of data with the QuickBooks company file.

Description: If the application maintains a database or internal file that stores portions of data from the QuickBooks company file, the application ensures that the two sets of data are synchronized with each other. The test will also verify that if a synchronization error occurs, the application prompts for user interaction before modifying the QuickBooks version of the company file.

Integration validation use cases
Test ID Test Case Description/Steps
3.1

Verify the application functions properly with QuickBooks.

Description: All the application’s integration points function properly with QuickBooks. Verify the application functions as expected/documented.

3.2

Verify the application properly transfers data to and from QuickBooks.

Description: All data transferred between the application and QuickBooks is sent and received properly. All data transfers to the expected fields, forms, company files, reports, etc. The test will also verify that all data remains intact and no data loss or corruption occurs.

3.3

Verify the application is able to use the ‘enabled’ operations.

Description: The SDK supports the following operations. Note which are used and verify that they are functional.

  1. Add - adds an object to QuickBooks.
  2. Modify - modifies an existing QuickBooks object (except transactions).
  3. Delete – removes the list element of transaction object from QuickBooks.
  4. Void - changes the transaction amount to zero but leaves a record of the transaction in QuickBooks (does not apply to list elements).
  5. Query - obtains information about one or more objects according to specified criteria.
3.4

If any additional hardware or software other than QuickBooks and the integrating application is necessary to obtain data, verify data is properly accepted and transferred between all products.

Description: All products required by the application to obtain and/or transfer data communicate with each other as documented. The test will verify that integrity of the data flow remains intact and no data loss, corruption or errors occur.

Test ID Test Case Description/Steps
3.5

Verify the application properly communicates closed and changed events with QuickBooks.

Description: The application properly communicates closed and changed events to/from QuickBooks. The test will verify that the application properly handles changed events and no inappropriate open tickets/events remain.

3.7

Verify the application communicates with QuickBooks successfully.

Description: There are no unexpected error messages within the application or in the error log received from QuickBooks during use of the application.

3.8

Verify the application contains permissions that allow the user to export Personal Data from QuickBooks.

Description: The following message does not occur when generating reports that contain personal data from QuickBooks: status code 3261: The integrated application has no permission to access personal data.
3.9

Verify any data that is entered in the application is accessible from QuickBooks and Vice Versa.

Description: Data is exchanged properly between the application and QuickBooks.

3.10

Verify the application only uses valid qbXML request options.

Description: Only valid qbXML request options are available to the user. During the course of testing, the test will verify that the application does not cause QuickBooks to post any inappropriate messages indicating the application is executing a function beyond the scope of the qbXML API.

3.11

Verify any changes made into the application appropriately apply to QuickBooks.

Description: All changes made within the application also register within the QuickBooks application.

3.12

Verify that the application can process all credit card transactions.

Description: Credit card transactions should behave as though the transaction was processed by QuickBooks.

3.14

Verify the application does not use Intuit Interchange Format (IIF) to integrate with QuickBooks.

Description: The application utilizes the APIs available from the SDK and not IIF to integrate with QuickBooks.

3.15

Verify the application does NOT automatically shut down QuickBooks in order to perform any function.

Description: QuickBooks does not automatically close or shut down without user intervention in order to proceed with the transfer. If the application requires QuickBooks to close or shut down, the user must be prompted to do so.

3.16

If applicable, verify the application appropriately handles UI extension events.

Description: The application adds only a single menu item to one QuickBooks menu and that the one menu item must cascade.

3.17

Verify the application supports the most current version of SDK and QuickBooks as per stated in the documentation.

Description: The application will be tested on the most current operating system, version, and edition of QuickBooks supported as indicated by the application’s documentation. If the documentation does not specify or indicates multiple operating systems, versions, and editions of QuickBooks are supported, the baseline configuration used for testing will be the most current versions of Windows XP and QuickBooks Premier.

Security error handling use cases
Test ID Test Case Description/Steps
4.1

If the application provides its own database, verify that the application uses encryption when saving sensitive data.

Description: The application successfully encrypts and saves sensitive data before it is integrated with QuickBooks.

4.3

Verify the application does not cache sensitive data.

Description: The application does not cache or create local copies of sensitive data. However any caching must be done in the form of strongly encrypted files.

5.1

Verify that the application does not fail when attempting to install on a system without QuickBooks.

Description: Installing the application on a system that does not have QuickBooks installed does not fail.

5.2

Verify that the application installation cancels “cleanly”.

Description: The application installer restores the system to its original state when the user has canceled the installation.

5.3

Verify that the application gracefully handles unsupported data with QuickBooks.

Description: The application gracefully handles invalid character strings (e.g. phone numbers or email addresses), unsupported characters, carriage returns, grammar, syntax, and differences in field length within integrated data.

5.4

Verify the program termination is clean and without data loss.

Description: The test will attempt to close down the application and/or QuickBooks in the middle of an active process. It will verify that QuickBooks will not close while the application is still running, and that the application response is clean if requested to close while processing.

1A. Begin a (integrated) process/transaction in the integrating application.

1B. Check the transactions to make sure they are all completed without corruption.

1C. Check the last transaction. Verify the application handles the scenario gracefully and that there is no data loss, duplication, or corruption.

1D. Verify that the application recovers, the specific process that was interrupted can be re-run, and the application continues to function as expected.

2A. Begin a (integrated) process/transaction in the integrating application.

2B. If the application closes, verify there is no corruption in the transactions.

2C. If the application refuses to close, it must do so in a reasonable way.

2D. Verify that the integrating application recovers, the specific process that was interrupted can be re-run, and the application continues to function as expected.

Verify the application gracefully handles closing the application itself and QuickBooks while a process is running.

Performance help files use cases
Test ID Test Case Description/Steps
6.1

Verify that the application does not exhibit awkward workflow. In case of sending large quantity of data, the transfer should be made in reasonable time.

Description: The application does not exhibit awkward workflow and/or performance issues during the course of testing. Sending large quantities of data, performing large queries, and user interface should reflect a reasonable response time.

7.1

The application’s About screen contains accurate information.

Description: The About screen and/or UI contains correct and accurate information.

7.2

Verify that all updated applications use a unique version number.

Description: If a previous version of the application has been submitted, this test will verify that the updated application also has a new/updated and unique version number.

License agreement use cases
Test ID Test Case Description/Steps
8.1

Verify that the application does not violate the QuickBooks “End User License Agreement” or “qbXML License and Developer Agreement”

Description: The application does not distribute or duplicate copies of QuickBooks to individuals who have not purchased appropriate licenses per the “End User License Agreement” (“EULA”) and “qbXML License and Developer Agreement”. If the application does distribute QuickBooks to licensed users, verify that the EULA is included with the application.

  1. If the application distributes or duplicates copies of QuickBooks, verify: - A valid license is required to obtain the copy of QuickBooks.

See: - EULA: General section - qbXML Agreement: Section 5 Proprietary Rights

8.2

Verify the application meets the requirements outlined here:

https://developer.intuit.com/docs/00…ing_guidelines