Information Technology Reference
In-Depth Information
Events belonging to the same session will be tracked through the session id
across different log files. Optionally, a transaction id can be specified, aggregating
together events that belong to the same transaction.
When some of the required information is only present implicitly, inter-log-file
relations can be described to resolve them. The timestamp can also be adjusted
with an offset for each different log file, allowing event sequences to be sorted
and reconstructed in their proper order.
The data extracted from the log files will then be abstracted into events.
Testers have to specify the method of how the abstraction is achieved by defining
first order functions. Exago will then check each session of abstract events against
a Finite State Machine model of the system. It will generate an abstracted events
report with the point of failure and the visualization of the state machine.
The first prototype of the tool was developed by testing a simple SMS log
example. Two case studies on commercial systems, an SMS gateway that had
been in production for years and an SMSC system under development were used.
In the SMS gateway case study, over 20000 sessions were analyzed. During this
small timeframe (The system handles millions of SMS messages a day), Exago
found discrepancies in the logs, which when analysed, were narrowed down to
bugs.
We find this result particularly satisfying, as the SMS gateway had been in
commercial operation for several years, and by all reasonable accounts was a
well tested system; yet there was evidence of malfunction in the logs that went
unnoticed. The obvious reason is that the amount of data in the logs makes it
extremely hard to find spurious faults through manual inspection.
Exago was also used in the early stages of development of an SMSC system.
This experience indicated that integrating Exago into the test-driven design flow
helps designers to develop an optimal level of detail in the audit log output.
5.2
Onviso, Simple and Intuitive Tracing Environment
In order to obtain data for property testing or debugging, it is often necessary to
use live tracing. Whereas there are established tracing tools for Erlang (Erlang
Trace BIFs, the dbg library), for the more complex cases where multiple nodes
are involved, the current trace tool interfaces are confusing. As far as we can
determine, very few people use the existing multi-node tracing facilities.
In order to establish a good and user-friendly platform for integration with
our property-based testing tools, we created Onviso. Onviso builds on the exist-
ing OTP tool, Inviso. Whereas Inviso provides the online tracing for small and
large systems, Onviso provides default settings that suit most setups, making it
user-friendly and re-usable.
It is now possible to set up tracing across multiple nodes and merge the
result in a variety of combinations. Tracing can be re-enabled if the traced node
restarts. Additionally, for convenience when using Onviso as an ad-hoc tracing
tool, it is also possible to retrieve the status of the recent traces run and the
configuration that was used.
Search WWH ::




Custom Search