A Complete Application Deployment Checklist
Updated: Jan 19, 2022
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).