Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Haskell
Wiki community
Recent changes
Random page
HaskellWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
HacBerlin2014/Topics
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Project Proposal for the haskell Hackathon Berlin 2015 == A Testcase generator for system tests. With as few lines as possible generate as most test scripts as possible, part test-cases are combinable. Language for generating the testcases: haskell, with embedded DSL. Language of the test scripts: ruby, python, perl, c++, ... (it depends) test target: an embedded device, a mail server, a web-service, ..., but at first no GUI. The existing example: There exists a test generating tool named ""tedeso"" by Siemens. Tedeso has 2 major building blocks: - variables/instances of classes with attributes: The attributes can have different values and the test script is executed with all instances. Each test script uses one instance. - branching: do this or do this or do this: the different test scripts are generated by following the different pathes. Each test script is one path. - a GUI, with which you can draw a testcase. But this can be omitted. In my point of view, it is not practical. A test script written in a good embedded dsl is better readable and better comparable with older versions. The haskell testcase generator shall go beyond Tedeso: It shall easily be possible to combine (parts of) testcases to build bigger ones. Haskell is good for that purpose, because the part test scripts are functions, without side effects. The testcases could have attributes, which say something of the condition or state that is fulfilled or reached by the (part-)test script. Bigger challenges: 1.) If the attributes of the part test scripts ar cleverly chosen, can they form a kind of formal specification of the system under test? 2.)If someone asks, possibly after years, what the system under test does under certain circumstances, can you ask the set of your test programs what happens ? Possibly: "" Yes, we have tested it in 2015, and the test ran ok!"", without actually running the test, just by typing the specification of the question to your test environment ? A solution could be a database of test cases or a analyzation of the test programs (perhaps with template haskell? I do not know much about it.) 3.)Can one make a test case by saying: "" a.) Go to state X, in any possible way. b.) Do this special. (perhaps test a new requirement, that is just implemented) c.) After that you are in state Y. Do some arbitrarily chosen part-testcases begining with that state Y."" The 2 major building blocks of tedeso, variables and branching, are easily done with haskell. That have I already programmed, as a beginner in haskell, who i am. But there seems to be much possible in testing with haskell. For Open source programs there is the need for good system test tools. When I look at open source source code, I do not find many test cases, if any. Perhaps could a easy usable system test environment improve the quality of open source software.
Summary:
Please note that all contributions to HaskellWiki are considered to be released under simple permissive license (see
HaskellWiki:Copyrights
for details). If you don't want your writing to be edited mercilessly and redistributed at will, then don't submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
DO NOT SUBMIT COPYRIGHTED WORK WITHOUT PERMISSION!
Cancel
Editing help
(opens in new window)
Toggle limited content width