18 Nov About Time Virtualization and Time Simulation
How Time Virtualization Helps Software Testing to Increase Productivity
Working in IT requires to consistently pursue new methodology, hardware and software solutions to increase efficiency. Virtualization is a popular solution, with close to 200,000 hosted servers over the internet. Software development just isn’t the same without it and almost half of virtualization servers are used solely to increase time productivity. It’s a big field to explore and time virtualization in this area is worth knowing.
Similar to hardware virtualization, which leverages existing resources to create, for example, multiple instances of an operating system, time simulation is a virtualization technique that emulates the system clock to create multiple virtual clocks. This means that the system clock is neutral while other independent time-based systems work in parallel. When software testers have access to virtual clocks, they are able to control, simulate, manipulate and automate time at will. Talk about becoming the master of time!
Why Is Time Virtualization Needed?
Indeed, with a time simulation software tool, much of the hardware resources are put to more efficient use. This is crucial in making sure the application testing is flexible and conducted in real conditions. This is especially true of time-based testing, aka temporal testing, where changing the time can be, at best, time-consuming and, at worst, impossible due to security reasons.
Can you imagine the time and money wasted on resetting the testing environment every time the system clock is modified?
Indeed, without virtualization software solutions, such as Time Simulator or Time Machine, it is necessary to manually reset the system clock every time the tester wants to travel an application to a specific event in the past or future. When this affect multiple systems running on different servers, some organizations may need up to 2 days to coordinate the downtime before stopping, restarting and logging users on/off. This means that a simple regression test cycle on an ERP / SAP system would last 2 weeks. With an automated test script which calls a time simulator, this same test cycle can be reduced to 1 single day.
Why is it Necessary to Use Time Simulation?
It is integral to be able to set programs that communicate with each other on the same clock. From handling the simplest problem like confusion over the dates, to the most complex such as transactions, reliable synchronization is vital.
A time simulation software solution allows to easily create independent virtual clocks and synchronize processes and users as needed. The time simulator tool then intercepts the call to the system clock whenever a time is required, and returns a virtual time instead. It lets users assign an entire (testing) environment to separate times, or the same time when necessary, without losing function over the kernel.
For systems to run under a virtualized time, time simulation is a necessary tool for any software tester. Indeed, whenever it is necessary to test an app through time, it is amazingly convenient not to have to reset the system clock, time and again.
With time simulation, temporal testing and synchronization across systems are easy to achieve and translate into savings on time and resources. Find out more about time simulation here.
How to Secure Essential Files With Time Simulation
Backups always stay current with a time virtualization tool, thanks to an exclusion file that lets backups use real time rather than a virtual time, allowing a continuous testing environment. If needed, these backups could also be timestamped with a fake time but this can be tricky, if not dangerous, as the logic of unfolding backward, for example for a database, is not natural. Some users experienced this type of mess before opting for a time simulation tool, and some companies now make this software solution a prerequisite to any project testing.
By being essentially able to time travel to any point in time, the problem of files being confined to the hardware clock is gone. Without a time simulator, Active Directory or Kerberos prevent any user to login if the client is out of synch by more than 5 minutes with the domain’s time. In such as case, Time virtualization comes in handy whenever there is a need to log off/on users after the system’s clock has been reset.
The Necessity of Time-Based / Temporal Testing
Throughout software testing, multiple time-related application tests need to be run. May it be during an upgrade, consolidation or migration, testing an app through time is crucial for any types of applications / databases that handle dates. Thorough testing at critical times / dates, and in real conditions, will improve the chance of detecting errors in the system’s logic. Can you imagine the consequences of a wrong calculation, for example in an application that oversees the transport of passengers? Or a financial application with wrong parameters, so tiny that they can only be detected at the right time in the adequate environment? A miscalculation can be very costly in terms of human security, computer breaches, finances or brand identity. This is the reason simulation of the application’s logic through time is absolutely critical.
As mentioned earlier, temporal software testing, when done manually can be very time consuming. Some testers simply do not have the time or resources to conduct a thorough test of their applications. A time simulator is the necessary software testing tool for all temporal testing needs: it installs and runs within minutes, lets testers travel their applications to any point in the past or future, either directly or by accelerating the virtual clocks, and does not require additional resources. With time virtualization, testing cycles which would last weeks are cut down to only a few hours or days. It is common for users of time virtualization to speed up their test cycles by at least 300%.
In terms of cost, a tool such as Time Simulator can be rent online and configured to the specific needs of a project for less than $100 per month. The combination of ease of use, low cost and automation capability makes such a software solution a necessary tool for any software tester which wants to thoroughly test an application or database in the shortest time.