Last week, we talked about the 20+ years of innovation drought in the application packaging and testing space and explained why this space is about to change. But in addition to MSIX and application containerization, there are six distinct ways we expect application packaging and testing to improve over the next few years.
It seems all stars have aligned to force innovation in the application packaging and testing space. The way we develop, deploy, run, and consume applications has significantly changed. For one, the physical location where application components are stored and managed has shifted from on-premise to the cloud or into a virtualized environment. This results in a shift in expectations regarding performance, e.g., faster to start and increased stability as well as faster access to new features due to more frequent upgrade cycles.
In addition, hardware and infrastructure technology has tremendously evolved in the past few years — which has to be reflected in the way we manage our applications. The best example is Windows Virtual Desktop. Applications have to be made available as an MSIX via AppAttach and digitally signed. Finally, the adoption of self-service and IT automation used to manage other IT processes (like managing OS migrations or hardware refresh cycles) is driving the demand for making these features and methodologies also available in application packaging and testing.
#1: Self-Service Packaging
The first way that application packaging and testing will significantly change is by changing who can package and test an application. Traditionally, packaging and testing an application meant a lot of time-consuming back and forth between the application owner and the discovery, packaging, quality assurance and testing teams. By giving app owners direct access to the right tooling, this process can be completed within minutes rather than days or weeks, making it much more efficient, cost-effective, and suitable for much more frequent testing necessary for Evergreen IT scenarios. However, this requires centralized management of all application components, assets, and data so that every stakeholder has the same information, as well as a mechanism to enforce IT policies and security guidelines.
[To see how non-technical business users / application owners can package and test their own applications, watch our on-demand webinar that includes a 30-minute demonstration of the new Juriba Dashworks Application Manager.]
#2: Automated Load / Non-Functional Application Testing
In addition to self-service packaging, automated testing is another area of innovation. Automated testing will include testing all in-scope applications or a specific sub-set of applications against new OS images or environment change such as patch releases. This could be a simple test to install, launch, close, and uninstall, or could include specific predefined test scripts with simulated user interactions to check if the application behaves as expected.
This enables organizations to test thousands of applications within hours rather than weeks or months, resulting in large numbers being passed right through as completed. The remainder often have only minor hiccups that can be quickly resolved, and these applications can be re-tested automatically. This means that rather than manually testing the entire application portfolio, or worse, testing just a small proportion of the portfolio, your team can focus on the few stragglers that cause more complex issues.
#3: Automated Recording Of The Test
Manual testing very much relied on the diligence and discipline of the tester. But let's face it: testing isn't fun and creating documentation is boring and labor intensive. This often results in inaccurate or sub-par testing. By automating the testing and capturing the results as a recording and attaching it to the application record, you can not only eliminate this tedious task, but also play back any test recordings of any apps that ran into trouble in order to determine where the issue occurred.
#4: Suitability Testing
But automatic testing goes far beyond just running hundreds of apps through a quick non-functional test scenario. As IT landscapes are becoming increasingly complex and changing at a faster pace, it is critical that we also test our applications for suitability to function in a specific environment. For example, there is a lot of pressure by executive leadership to move applications onto Virtual Desktop Infrastructure. You could re-package all your apps as App-Vs, but you would run into massive performance and stability issues with some applications that simply weren't suitable. Equally, some applications simply do not work well within certain infrastructure platforms. By testing your applications for certain components and indicators that make them unsuitable for a specific environment, you know very quickly how suitable your apps are and what it would take to make the move.
#5: Performance Testing
In addition to general suitability testing, targeted performance testing is crucial for maintaining or improving the heath, stability, and performance of your environment, ultimately resulting in the best end-user technology experience possible. This could include dozens of key performance indicators, such as memory leaks, CPU usage, and storage used. Sophisticated tooling will allow you to set thresholds to alert you if certain markers have been exceeded.
We expect this area to grow to include pre and post analysis on application performance to show not only how the application performs before and after an update, but how it performed before and after within the specific user environment. Eventually, you will be able to utilize this analysis to find the perfect platform for each application to ensure the maximum user productivity experience.
#6: Integration Into Release Management
Last but not least, integrating your automated application packaging and testing workflows into your release management tooling is a crucial innovation which allows for a smooth Evergreen IT management experience. For example, if you could automatically build functional test scripts during the packaging and evaluation process, you could avoid manual testing altogether. By using these tests within a Windows 10 upgrade cycle, release management tooling would switch all users to green (ready to deploy) that are dependent on the applications you have just successfully tested. Then you can significantly accelerate your upgrade cycles by creating rules to automatically assign users to deployment rings and trigger their upgrade workflow.
These are just six innovative ways that application packaging and testing will change in the near future, and I am sure we will see a lot more drastic change in the next twelve months, leading to faster and more efficient application management. Expect more automation and user self-sufficiency as well as more integration into smart AI- and algorithm-driven workflows.