Software, Analyze Thyself !
April 27, 2017
Software, Analyze Thyself !
We can all agree that software applications can from time to time, and in most inconvenient times, surprise us with incorrect results.
If one agrees with the understanding that the real world is testing our applications all the time, simply because one can not pretest the future, than the idea of having your applications to analyze themselves while running, and all the time, would not seem unreasonable.
While dynamic code analysis is a well known proposition, the level of sophistication there changes a lot from technology to technology, and from tool to tool. The deciding factors on the usefulness of such tools are usually the following: does the result of the analysis require many hours (or days) to be digested by a human; how big is the overhead in application performance speed; how many false positives results does a tool create, causing unnecessary analysis of that original analysis.
Thinking Software. Inc. (TSI) technology of Race Catcher™ does not provide false positive results and its overhead is practically not felt during the run of most applications.
Humans Are Good in Creating Complexities. Software Can Be Taught to Decipher them. No one knows a piece of software better than the software itself.
If one runs his/her applications on AWS (Amazon Web Services) platform, these are the two steps one would perform in order for the AWS account to be able to run one’s applications in ARM-CM mode. ARM-CM stands for Application Reliability Management via Collaborating Machines.
All the machines one would start in this mode (explained below) would communicate collected experience on the reliability of the applications they run to one’s local workstation. Optionally one could run such workstation on AWS, as well.
How Does One Best Ensure the Multithreading Reliability of one’s New Software Release?
Run it on as many ARM-Enabled VMs as one feels comfortable. The more machines one would start it on, the faster the machines would experience race-conditions hidden in the code. It does not need to be one’s own software that causes race conditions. One would be able to see detailed explanations of race conditions on one’s own code and on open source code, and even see if race conditions are present in other party’s proprietary code. The only difference would be that the other party’s proprietary code will not be deciphered.
Then one’s decision would be: to let them (race conditions) be, discounting them as “benign” (a dangerous proposition) or to get rid of them based on the detailed analysis provided by the Race Catcher™ absolutely automatically.
Here is How one can Check Provided Here Functionality.
1. Decide whether the results should be displayed on one’s local workstation…