Results 1 -
7 of
7
Making Reliable Distributed Systems in the Presence of Software Errors
, 2003
"... product, having over a million lines of Erlang code. This product (the AXD301) is thought to be one of the most reliable products ever made by Ericsson. ..."
Abstract
-
Cited by 42 (0 self)
- Add to MetaCart
product, having over a million lines of Erlang code. This product (the AXD301) is thought to be one of the most reliable products ever made by Ericsson.
Detecting software defects in telecom applications through lightweight static analysis: A war story
- Programming Languages and Systems: Proceedings of the Second Asian Symposium (APLAS’04), volume 3302 of LNCS
, 2004
"... Abstract. In safety-critical and high-reliability systems, software development and maintenance are costly endeavors. The cost can be reduced if software errors can be identified through automatic tools such as program analyzers and compile-time software checkers. To this effect, this paper describe ..."
Abstract
-
Cited by 12 (4 self)
- Add to MetaCart
Abstract. In safety-critical and high-reliability systems, software development and maintenance are costly endeavors. The cost can be reduced if software errors can be identified through automatic tools such as program analyzers and compile-time software checkers. To this effect, this paper describes the architecture and implementation of a software tool that uses lightweight static analysis to detect discrepancies (i.e., software defects such as exception-raising code or hidden failures) in large commercial telecom applications written in Erlang. Our tool, starting from virtual machine bytecode, discovers, tracks, and propagates type information which is often implicit in Erlang programs, and reports warnings when a variety of type errors and other software discrepancies are identified. Since the analysis currently starts from bytecode, it is completely automatic and does not rely on any user annotations. Moreover, it is effective in identifying software defects even in cases where source code is not available, and more specifically in legacy software which is often employed in high-reliability systems in operation, such as telecom switches. We have applied our tool to a handful of real-world applications, each consisting of several hundred thousand lines of code, and describe our experiences and the effectiveness of our techniques. Keywords: Compile-time program checking, software development, software tools, defect detection, software quality assurance.
Automated Test Generation for Industrial Erlang Applications
- In ERLANG ’03: Proceedings of the 2003 ACM SIGPLAN workshop on Erlang
, 2003
"... We present an implemented technique for generating test cases from state machine specifications. The work is motivated by a need for testing of protocols and services developed by the company Mobile Arts. We have developed a syntax for description of state machines extended with data variables. From ..."
Abstract
-
Cited by 9 (1 self)
- Add to MetaCart
We present an implemented technique for generating test cases from state machine specifications. The work is motivated by a need for testing of protocols and services developed by the company Mobile Arts. We have developed a syntax for description of state machines extended with data variables. From such state machines, test cases are generated by symbolic execution. The test cases are symbolically represented; concrete test cases are generated by instantiation of data parameters.
Testing telecoms software with Quviq QuickCheck
- IN ERLANG ’06: PROCEEDINGS OF THE 2006 ACM SIGPLAN WORKSHOP ON ERLANG
, 2006
"... We present a case study in which a novel testing tool, Quviq QuickCheck, is used to test an industrial implementation of the Megaco protocol. We considered positive and negative testing and we used our developed specification to test an old version in order to estimate how useful QuickCheck could po ..."
Abstract
-
Cited by 7 (2 self)
- Add to MetaCart
We present a case study in which a novel testing tool, Quviq QuickCheck, is used to test an industrial implementation of the Megaco protocol. We considered positive and negative testing and we used our developed specification to test an old version in order to estimate how useful QuickCheck could potentially be when used early in development. The results of the case study indicate that, by using Quviq QuickCheck, we would have been able to detect faults early in the development. We detected faults that had not been detected by other testing techniques. We found unclarities in the specifications and potential faults when the software is used in a different setting. The results are considered promising enough to Ericsson that they are investing in an even larger case study, this time from the beginning of the development of a new product.
General Terms
"... As the commercial usage of Erlang increases, so does the need for mature development and testing tools. This paper aims to evaluate the available tools with their shortcomings, strengths and commercial usability compared to common practices in other languages. To identify the needs of Erlang develop ..."
Abstract
- Add to MetaCart
As the commercial usage of Erlang increases, so does the need for mature development and testing tools. This paper aims to evaluate the available tools with their shortcomings, strengths and commercial usability compared to common practices in other languages. To identify the needs of Erlang developers in this area we published an online survey advertising it in various media. The results of this survey and additional research in this field is presented. Through the comparison of tools and the requirements of the developers the paper identifies paths for future development.
Printed by Universitetsservice US-AB 2003iii
, 2003
"... Making reliable distributed systems in the presence of sodware errors ..."
contributed articles Erlang
"... The same component isolation that made it effective for large distributed telecom systems makes it effective for multicore CPUs and networked applications. By Joe aRmstrong Erlang is a concurrent programming language designed for programming fault-tolerant distributed systems at Ericsson and has bee ..."
Abstract
- Add to MetaCart
The same component isolation that made it effective for large distributed telecom systems makes it effective for multicore CPUs and networked applications. By Joe aRmstrong Erlang is a concurrent programming language designed for programming fault-tolerant distributed systems at Ericsson and has been (since 2000) freely available subject to an open-source license. More recently, we’ve seen renewed interest in Erlang, as the Erlang way of programming maps naturally to multicore computers. In it the notion of a process is fundamental, with processes created and managed by the Erlang runtime system, not by the underlying operating system. The individual processes, which are

