A Complete Application Deployment Checklist

Updated: Jan 19

This article will review some basic and more advanced test cases/testing ideas that should help you achieve more from this testing practice.


Group 1 – The Environmental Parameters


Disk Space

  • Validate that the required “Minimum” Disk Space is the accurate one.

  • Validate that the application can calculate and report the needed Disk Space at the prerequisite step (Before starting the actual implementation).

  • Install the application when the Disk space is ‘0’.

  • Validate that the installer can handle situations that require more Disk Space during the installation process.

  • Install the application when the Disk Space is reduced to ‘0’ in the middle of the installation process.

Registry

  • Validate that the installation/Uninstallation process does not cause registry corruption.

  • Validate that the registry contains the relevant keys with a suitable configuration.

  • Validate that all Keys are removed from the registry when the software is removed from the system.

File System

  • Validate that the File system structure contains the relevant application files (After installation).

  • Validate that the application is installed in the default location (Based on Requirements).

  • Validate that each file on the File System contains the relevant version number.

  • Validate that all the TMP files we use during the implementation process are located in a dedicated folder(Usually the operating system ‘temp’ folder).

  • Validate that the TMP files used in the implementation process are removed (Cab Extraction, TMP Files, etc.)

  • Validate that the application can be installed on another path than the default location (Based on user configuration).

  • Validate that the File system structure doesn’t contain the application files (After Uninstallation).

CPU/RAM

  • Validate that the installation/Uninstallation process doesn’t cause any memory leaks.

  • Validate that the installation/Uninstallation process is performed without consuming the server CPU/RAM heavily.

  • Validate that the installation/Uninstallation process releases the consumed resources after the process ends.

Services

  • Validate that the application service is up and running after implementation.

  • Validate that the service “Startup” Type is set with the predefined requirements.

  • Validate that the service is configured with all the associated dependencies.

  • Validate that the service is displayed with a valid Name and Description.

  • Validate that the service can communicate with the application console.

  • Validate that the service is installed with predefined credentials.

Group 2 – Deployment & Removal flows


Deployment Flow (Happy path)

  • Validate that you can implement the product/Components with an automated tool (If supported).

  • Validate that you can implement specific components while using the API interface.

  • Validate that you can implement the product when an older version is already installed.

  • Validate that the installer is capable of repairing an existing corrupted installation.

  • Validate that the user cannot open two instances of the installation window.

  • Validate that you can implement the product while using the API interface.

  • Validate that you can implement the product/Components manually.

  • Validate that you can implement the product in a clean environment.

  • Validate that the installer can identify an existing installation.

  • Delete some mandatory installation files and run a repair.

  • Validate that you can install a specific Update.

  • Validate that you can install a specific patch.

  • Validate that you can implement the product with distributed configuration (All components are located on different servers).

  • Validate that you can implement the product with consolidated configuration (All components are located on a single server).

Removal Flow

  • Please validate that you can uninstall the product when installed on distributed architectures.

  • Validate that you can remove the software while using the system Add/Remove feature.

  • Please validate that you can uninstall the product when installed on a consolidated server.

  • Validate that you can uninstall a specific component.

  • Validate that you can uninstall a specific Update.

  • Validate that you can uninstall a specific patch.

  • Validate that you can remove the software while using the “Uninstall” file located under the installed software’s path.

Agent (If Any)

  • Validate that the agent doesn’t affect other 3rd party software configured on the server.

  • Validate the communication between the agent and the corresponding HUB.

  • Validate that the agent reports to the corresponding Event Viewer container.

  • Validate that you can implement the agent on different operating systems.

  • Validate that you can implement the agent on different platforms.

  • Validate that the agent can start his job after implementation.

  • Validate that the agent doesn’t cause any server errors.

Group 3 – General Guidelines for effective test design

  • Make sure that you design your tests to support both the negative and positive test scenarios.

  • Make sure that you design your tests based on the predefined requirements.

  • Make sure that you design your tests to support as many End to End scenarios as possible; the End to End testing should validate that all workflows are covered.

  • Make sure that you design your tests to validate all notification/Error popups that may arise during the installation/Uninstallation process.

  • Make sure that you design your tests to support any case of force stop during the installation/Uninstallation process.

  • Make sure that you design your tests because different localizations can affect the implementation process.

  • Ensure that you have an excellent trace regarding the installation process (Dedicated Logs, EventVwr, etc.).

Group 4 – User Experience

  • Validate that the user receives a summary of the installation/Uninstallation process.

  • Validate that the user can follow the installation instructions.

  • Validate that the user receives a confirmation notification on critical/complex operations that may affect the software/User environment.

  • Validate that the user can track the installation/Uninstallation process (Progress Bar, Counter, graphical interface Etc.).

  • Validate that the user receives informative popups when performing invalid operations.

Group 5 – Networking and Privileges

  • Try to install the software on distributed servers and block the communication port.

  • Try to use different users on different components (Impersonation Validation).

  • Try to install the software on a protected/No permission folder.

  • Install the product with the Minimum privileges as possible.

  • Try to install the product with invalid user credentials.

  • Try to install the software on distributed servers when there is a low bandwidth that causes communication delays during the installation process.

  • Try to install the product when the user is disabled.

  • Try to install the software when the Firewall is on.

Group 6 – API (If any)

  • Verify that each method that should return values reproduced the expected results.

  • Verify that all everyday operations exposed to the client are functional.

  • Verify that all objects, functions, and properties are tested.

  • Verify that all Internal/External APIs are.

  • Verify that all objects, functions, and properties are reviewed and approved by the project owner.

Group 7 – Documentation

  • What are the minimum requirements we need to apply before implementation can start?

  • What are the supported devices we can use to run the application (PC, Phones Etc.)?

  • What supported operating systems do we need to use in our tests?

  • Is there any 3rd party software that should reside with the installed software?

  • Are there any known issues that may reduce the productivity of the software?

  • How can we install the application (Consolidate, Distributed Etc.)?

  • Do we support both X86 and X64 architectures (Hardware)?

  • Do we support both X86 and X64 architectures (Software)?

  • What are the supported Web Browsers that we can use?

Group 8 – Licensing

  • Validate that the user cannot install the software without a valid license.

  • Validate that the user can only install components that are licensed.

  • Validate that the user can install a new license for the expired product.

  • Try to install components that are not licensed.

  • Validate that the license is visible/Encrypted after implementation (Depending on the company policy).



94 views0 comments