Page 1
1
Erlang Testing and Tools Survey
Aniko Nagyné Víg and Tamás Nagy
Victoria, British Columbia, Canada, 27 Sept 2008
Erlang Training and Consulting Ltd
Copyright 2008
Agenda
Introduction
Research method for the Survey
Erlang tools
Tool requirements for commercial products
Conclusion
Page 2
2
Introduction
What we are doing and why
Introduction
Research method for the Survey
Erlang tools
Tool requirements for commercial
products
Conclusion
Copyright 2008
Goals and tasks
Market analysis of Erlang and non-Erlang Tools
as a workpackage of the ProTest project
Compare the Tools available in Erlang to ones in other
languages (not only functional languages)
Details in the paper
Strength and Weakness analysis of the Tools
Page 3
3
Research method for the Survey
Online survey done to gather data about the usage and spread
of Erlang tools and applications in the community
Introduction
Research method for the Survey
Erlang tools
Tool requirements for commercial
products
Conclusion
Copyright 2008
Research method
Published an online survey
Advertised it by email:
Erlang Questions, approx. 1000 users
Erlang Training and Consulting Newsletter list, approx. 1000 users
Smaller Erlang related mailing lists
–
Trapexit User Group, 500 users
–
ProTest Mailing List, 50 users
–
London / Stockholm Erlang User Groups, 100 users
200 direct emails to relevant contacts at ETC
Merged with the main survey after the results were similar
40-45% of total(200) responses were from developers
Page 4
4
Copyright 2008
Geographical diversion
Copyright 2008
Structure of the survey
The survey contained 20 questions about:
The development environment of Erlang users
Usage and knowledge of existing Erlang tools & applications
Submitter’s job role and Erlang background
Identify common processes to improve tool support
Page 5
5
Erlang tools
Introduction
Research method for the Survey
Erlang tools
Tool requirements for commercial
products
Conclusion
Copyright 2008
Popularity of Erlang tools among the community
Page 6
6
Erlang tools
Testing tools
Introduction
Research method for the Survey
Erlang tools
Tool requirements for commercial
products
Conclusion
Copyright 2008
EUnit
Open source light weight test server
Unit testing framework
Easy to write test cases
Fast test cycle
Test results presented accurately
Allows
implementation of test generating functions
Execution of the test representation
Page 7
7
Copyright 2008
OTP Test Server and Common Test Environment
Test suite execution environment based on Erlang
Supports regular automated testing
Portable test server for application testing
Common Test:
a framework based on the OTP Test Server application
Copyright 2008
OTP Test Server and Common Test Environment 2
Page 8
8
Copyright 2008
QuickCheck
Erlang tools
Tools for development activities other than testing
Introduction
Research method for the Survey
Erlang tools
Tool requirements for commercial
products
Conclusion
Page 9
9
Copyright 2008
Refactoring tools
Refactoring means improving the quality of code through re-
writing without changing its external behaviour.
RefactorErl
Has an installation tool for Windows and source package for Linux & MacOS
Supports seven transformations
Wrangler
Integrated into both Emacs and Eclipse
Supports seven transformations and two search options
Copyright 2008
Analysis tool
Dialyzer
is a static analysis tool for detecting discrepancies in the
source or byte code files automatically
Typical errors detected by the tool
Type errors
Redundant tests
Unsafe virtual machine byte code
Unreachable code
Page 10
10
Copyright 2008
Model checker
Etomcrl
is a model checker for Erlang. It checks state equality,
but the input language is rather restricted
McErlang
is a model checker for verifying distributed
Erlang programs
McErlang has support for
General process communication
Node semantics
OTP component libraries
Fault detection and tolerance through process linking.
Copyright 2008
Automated build tools and package management
Faxien
is a package management tool which helps to find,
install and publish OTP applications.
Sinan
is a build system for OTP projects.
Compiles and builds OTP applications
Builds documentation
Runs dialyzer
Checks unit tests
Produces reports
Handles application dependencies.
Page 11
11
Erlang tools
Usability of the tools
Introduction
Research method for the Survey
Testing tools
Erlang tools
Tool requirements for commercial
products
Conclusion
Copyright 2008
User friendliness
The interface should be easy to use
Well integrated to the development environment
The layer of integration can be on the following levels:
Editors with plugins
OS command line
Developing software interfaces (Erlang shell/CLI)
Page 12
12
Copyright 2008
Editors and OS used in the community
Erlang tools
Open problems identified by the survey
Introduction
Research method for the Survey
Erlang tools
Tool requirements for commercial
products
Conclusion
Page 13
13
Copyright 2008
Open problems identified by the survey
Weaknesses of most Erlang tools and projects were found to be
Lack of documentation
Lack of examples and tutorials
Incomplete and untested tools
Design issues included
Badly layered software
Not extensible and not structured
Doubts about sustainability
Hard to install and use
Especially for non Erlang users
Extensive manual configuration required
Copyright 2008
Missing functionality
No tools for stub generation
Testing tools lack high quality results display
Web interface or dashboard with statistics and graphs
Load testers are not available for all requirements
Especially state based protocols
Continous integration
Hooks towards version control systems
Integrated into a general framework
A complete framework that integrates different tools
Compile, unit test, system test, refactor, xref, dialyzer & tsung
Page 14
14
Tool Requirements for Commercial
Products
Introduction
Research method for the Survey
Erlang tools
Tool requirements for commercial
products
Conclusion
Copyright 2008
Tool requirements for commercial products
Ease of use
Active Support
Good documentation
Examples
Ease of comprehending the results
Page 15
15
Conclusion
Introduction
Research method for the Survey
Erlang tools
Tool requirements for commercial
products
Conclusion
Copyright 2008
Conclusion
What are the key factors for building a successful Erlang tool?
Reliable software
User friendliness
Good documentation
Support
Well promoted
Page 16
16
Copyright 2008
Thank you for your attention!
Any questions?