[{"data":1,"prerenderedAt":291},["ShallowReactive",2],{"project-32578311":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":44,"post_text":46,"what":47,"said":79,"maker_in_thread":157,"shape":168,"grid":173,"attempts":253,"same_week":254,"maker_shows":34,"maker_hidden":283,"reader_version":284,"card":285},"32578311","Fuzz Map","a GUI fuzzer, interactive demo","title","Show HN: Fuzz Map – a GUI fuzzer, interactive demo","https:\u002F\u002Fwww.fuzzmap.io\u002F?welcome=1","fuzzmap.io","jonathanyc",1661343102,2022,205,33,274,2570,11,"notable","dev_tools","gui fuzzer","web_app",[24,25,26,27,28],"gui fuzzing","ui testing","react testing","fuzzer","state exploration","mixed",0.235,{"positive":32,"neutral":33,"mixed":34,"critical":35},7,6,1,3,17,{"idea":38,"docs":40,"execution":41,"design":42,"performance":43},{"positive":35,"critical":39},0,{"positive":34,"critical":34},{"positive":39,"critical":34},{"positive":39,"critical":34},{"positive":39,"critical":39},[45,45,45,35,39,39,39,39,39,39,39,39,39,35,39,35,39,45,35,39,45,35,39,39,45,34,34,35,35,34,39,39,45],5,null,{"problem":48,"audience":60,"pricing":46,"motivation":46,"time_to_build":46,"stack":68,"openness":78,"stage":78,"team_size":78},{"value":49,"source":50,"evidence":51},"Finding unexpected UI behavior and crashes in web apps without writing tests","inferred",[52,56],{"id":53,"by":54,"text":55},"32581401","joeycodes","I am so excited to see this live! I always wanted something like this for testing games and complex SPA's. UI's are particularly problematic for writing tests -- there's usually…",{"id":57,"by":58,"text":59},"32579584","solardev","It runs GUI code (like React) and fuzzes the inputs not just to generate possible crashes but to discover different code paths and states. The example they provide shows a simple…",{"value":61,"source":50,"evidence":62},"Developers testing SPAs and web UIs",[63,64],{"id":53,"by":54,"text":55},{"id":65,"by":66,"text":67},"32579793","kretaceous","``` > In the short term, I'd like to make a plug-and-play version of Fuzz Map that supports end-to-end React fuzzing. You won't have to change your build process or use a special…",[69,73],{"value":70,"source":50,"evidence":71},"JavaScript",[72],{"id":57,"by":58,"text":59},{"value":74,"source":75,"evidence":76},"React","commenter",[77],{"id":57,"by":58,"text":59},"unknown",{"praise":80,"objections":100,"requests":122,"questions":141,"alternatives":156},[81,95],{"value":82,"source":75,"evidence":83},"Impressive and useful demo of UI fuzzing",[84,88,92],{"id":85,"by":86,"text":87},"32579623","atemerev","Wow, that's really impressive. I'll probably start using this right away.",{"id":89,"by":90,"text":91},"32579634","thomasfromcdnjs","Wow.",{"id":93,"by":58,"text":94},"32579532","Super cool, thanks for sharing!",{"value":96,"source":75,"evidence":97},"Interest in UI fuzzing in CI pipelines",[98,99],{"id":53,"by":54,"text":55},{"id":65,"by":66,"text":67},[101,108,115],{"value":102,"source":75,"evidence":103},"Demo video did not play in some browsers",[104],{"id":105,"by":106,"text":107},"32578985","huhtenberg","> Here's a 5-second video of real-time fuzzing on my laptop. The space where the video is supposed to be is blank. Clicking on play instantly skips to 0:05 mark and nothing else…",{"value":109,"source":75,"evidence":110},"Fuzzing CPU use is high",[111],{"id":112,"by":113,"text":114},"32579072","anarcat","i kind of like having the video. actually running the fuzzer uses a lot of CPU: it makes my fan startup. it works fine here on Firefox + Debian GNU\u002FLinux 11 stable\u002Fbullseye.",{"value":116,"source":75,"evidence":117},"Name 'fuzzing' is misleading",[118],{"id":119,"by":120,"text":121},"32585210","tpoacher","Why is this process called \"Fuzzing\"? Isn't this a really uninformative\u002F misleading name?",[123,130,134],{"value":124,"source":75,"evidence":125},"Support for other frameworks like Angular",[126],{"id":127,"by":128,"text":129},"32592975","Klaster_1","Do you plan to extend the support to other frameworks too, like Angular? A UI fuzzer would be handy to have in the toolbelt. Really enjoyed the write up, it answered some of the…",{"value":131,"source":75,"evidence":132},"Plug-and-play React fuzzing via reverse proxy",[133],{"id":65,"by":66,"text":67},{"value":135,"source":75,"evidence":136},"Property-based testing support",[137],{"id":138,"by":139,"text":140},"32581500","stephendause","Very nice! Does this tool have a state model that you can check the application state against? In other words, does it have property-based testing? Here[1] is a demo of what that…",[142,149],{"value":143,"source":75,"evidence":144},"How code coverage is measured",[145],{"id":146,"by":147,"text":148},"32584816","terpimost","Wow, that is cool. How do you do code coverage? Console.log() every function call?",{"value":150,"source":75,"evidence":151},"How it handles complex UIs and noise",[152],{"id":153,"by":154,"text":155},"32579750","makach","wow! this is very cool. I wonder how this would work with slightly more complicated UIs. Does it create too much noise? Does anyone need this kind of verbosity?",[],{"comments":35,"answered":35,"key":158},[159,162,165],{"id":160,"text":161},"32583105","Thank you! I'd like to support property-based testing in the future. For this demo I focused on visualization and more exploratory testing. I figured that'd make the demo more…",{"id":163,"text":164},"32583133","Thank you! Good question about complicated GUIs. Keeping the map simple enough to be usable ended up being the most interesting part of the project, engineering-wise--the end of…",{"id":166,"text":167},"32585348","We add instrumentation at compile-time, just like conventional fuzzers! ``` if (e) a else b ``` becomes ``` if (e) { hit(1); a } else { hit(2); b } ``` There's more detail in the…",{"commenters":169,"max_depth":170,"maker_replies":35,"first_comment_mins":171,"lifespan_hours":172},21,9,60,63,[174,176,177,181,185,189,192,195,197,199,201,203,205,208,210,212,214,216,218,220,222,225,228,231,232,234,236,239,241,243,246,249,251],[65,39,45,175,66,39],"project\u002Fpositive\u002Fidea",[53,34,45,175,54,39],[178,179,45,175,180,39],"32579083",2,"wongarsu",[182,179,35,183,184,39],"32579311","project\u002Fneutral\u002Fidea","fullstackchris",[186,35,39,187,188,39],"32588472","other\u002Fneutral\u002Fnone","nyanpasu64",[190,35,39,187,191,39],"32589255","pabs3",[193,35,39,187,194,39],"32589887","Abishek_Muthian",[196,35,39,187,191,39],"32602912",[198,35,39,187,194,39],"32602988",[200,35,39,187,191,39],"32603184",[202,35,39,187,194,39],"32603461",[204,35,39,187,188,39],"32615174",[206,35,39,207,194,39],"32615315","commenter\u002Fneutral\u002Fnone",[138,209,35,183,139,39],4,[160,209,39,211,11,34],"maker\u002Fneutral\u002Fidea",[153,45,35,213,154,39],"project\u002Fneutral\u002Fnone",[163,45,39,215,11,34],"maker\u002Fneutral\u002Fnone",[127,33,45,217,128,39],"project\u002Fpositive\u002Fdocs",[146,32,35,219,147,39],"project\u002Fneutral\u002Fexecution",[166,32,39,221,11,34],"maker\u002Fneutral\u002Fexecution",[85,223,45,224,86,39],8,"project\u002Fpositive\u002Fnone",[226,170,35,183,227,39],"32579408","blondin",[229,170,39,207,230,39],"32579527","michaelmior",[57,170,39,207,58,39],[93,233,45,224,58,39],10,[105,18,34,235,106,39],"project\u002Fcritical\u002Fexecution",[237,18,34,238,180,39],"32579062","project\u002Fcritical\u002Fdesign",[112,18,35,240,113,39],"project\u002Fmixed\u002Fperformance",[242,18,35,219,58,39],"32579603",[119,244,34,245,120,39],12,"project\u002Fcritical\u002Fdocs",[247,244,39,207,248,39],"32585357","WhitneyLand",[250,244,39,207,120,39],"32592958",[89,252,45,224,90,39],13,[],[255,260,264,269,274,279],{"id":256,"name":257,"points":258,"category":259},"32572770","Pornpen.ai",711,"ai",{"id":261,"name":262,"points":263,"category":20},"32561127","Crawlee",282,{"id":265,"name":266,"points":267,"category":268},"32568423","react-design-editor",232,"creative",{"id":270,"name":271,"points":272,"category":273},"32521395","SineRider",220,"games",{"id":275,"name":276,"points":277,"category":278},"32551862","Digs.fm",131,"consumer_social",{"id":280,"name":281,"points":282,"category":278},"32534907","Brew.fm",128,false,"v2",{"id":286,"name":5,"line":6,"ai":283,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":287,"top":18,"kw":288,"maker":11,"domain":10,"tier":19,"attempts":39,"strip":289,"url":9,"mix":290,"praise":82,"objection":102,"sub":21},32578311,0.24,[24,25,26,27,28],"555300000000030305305300511331005",[32,33,34,35],1793991050699]