{"id":845,"date":"2008-05-21T07:53:41","date_gmt":"2008-05-21T07:53:41","guid":{"rendered":"https:\/\/www.darknet.org.uk\/?p=845"},"modified":"2015-09-09T19:39:27","modified_gmt":"2015-09-09T11:39:27","slug":"tmin-test-case-optimizer-for-automated-security-testing","status":"publish","type":"post","link":"https:\/\/www.darknet.org.uk\/2008\/05\/tmin-test-case-optimizer-for-automated-security-testing\/","title":{"rendered":"Tmin – Test Case Optimizer for Automated Security Testing"},"content":{"rendered":"

[ad]<\/p>\n

Tmin is a simple utility meant to make it easy to narrow down complex test cases produced through fuzzing. It is closely related to another tool of this type, delta<\/a>, but meant specifically for unknown, underspecified, or hard to parse data formats (without the need to tokenize and re-serialize data), and for easy integration with external UI automation harnesses.<\/p>\n

It also features alphabet normalization to simplify test cases that could not be further shortened.<\/em><\/p>\n

Example<\/strong><\/p>\n

$ cat testcase.in\r\nThis is a lengthy and annoying hello world testcase.\r\n\r\n$ cat testme.sh\r\n#!\/bin\/bash\r\n\r\ngrep \"el..*wo\" || exit 0\r\nexit 1\r\n\r\n$ ..\/tmin -x .\/testme.sh\r\ntmin - complex testcase minimizer, version 0.03-beta (lcamtuf@google.com)\r\n[*] Stage 0: loading 'testcase.in' and validating fault condition...\r\n[*] Stage 1: recursive truncation (round 1, input = 53\/53)\r\n[*] Stage 1: recursive truncation (round 2, input = 27\/53)\r\n[*] Stage 1: recursive truncation (round 3, input = 14\/53)\r\n[*] Stage 1: recursive truncation (round 4, input = 10\/53)\r\n[*] Stage 1: recursive truncation (round 5, input = 8\/53)\r\n[*] Stage 1: recursive truncation (round 6, input = 7\/53)\r\n[*] Stage 2: block skipping (round 1, input = 7\/53)\r\n[*] Stage 2: block skipping (round 2, input = 6\/53)\r\n[*] Stage 2: block skipping (round 3, input = 5\/53)\r\n[*] Stage 3: alphabet normalization (round 1, charset = 5\/5)\r\n[*] Stage 3: alphabet normalization (round 2, charset = 5\/5)\r\n[*] Stage 4: character normalization (round 1, characters = 4\/5)\r\n[*] All done - writing output to 'testcase.small'...\r\n\r\n== Final statistics==\r\n Original size : 53 bytes\r\nOptimized size : 5 bytes (-90.57%)\r\nChars replaced : 1 (1.89%)\r\n    Efficiency : 9 good \/ 49 bad\r\n  Round counts : 1:6 2:3 3:2 4:1\r\n\r\n$ cat testcase.small\r\nel0wo<\/code><\/pre>\n

You can download Tmin 0.03 here:<\/p>\n

tmin-0.03.tar.gz<\/a><\/p>\n

<\/p>\n

Or read more here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"

[ad] Tmin is a simple utility meant to make it easy to narrow down complex test cases produced through fuzzing. It is closely related to another tool of this type, delta, but meant specifically for unknown, underspecified, or hard to parse data formats (without the need to tokenize and re-serialize data), and for easy integration […]<\/p>\n","protected":false},"author":25,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[9,29],"tags":[2948,8873,171],"featured_image_src":null,"featured_image_src_square":null,"author_info":{"display_name":"Darknet","author_link":"https:\/\/www.darknet.org.uk\/author\/darknet\/"},"_links":{"self":[{"href":"https:\/\/www.darknet.org.uk\/wp-json\/wp\/v2\/posts\/845"}],"collection":[{"href":"https:\/\/www.darknet.org.uk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.darknet.org.uk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.darknet.org.uk\/wp-json\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/www.darknet.org.uk\/wp-json\/wp\/v2\/comments?post=845"}],"version-history":[{"count":0,"href":"https:\/\/www.darknet.org.uk\/wp-json\/wp\/v2\/posts\/845\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.darknet.org.uk\/wp-json\/wp\/v2\/media?parent=845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.darknet.org.uk\/wp-json\/wp\/v2\/categories?post=845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.darknet.org.uk\/wp-json\/wp\/v2\/tags?post=845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}