[{"data":1,"prerenderedAt":229},["ShallowReactive",2],{"project-22054433":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":35,"aspects":36,"strip":39,"post_text":42,"what":43,"said":77,"maker_in_thread":158,"shape":165,"grid":169,"attempts":195,"same_week":196,"maker_shows":35,"maker_hidden":222,"reader_version":223,"card":224},"22054433","CrossHair","SMT Assisted Testing for Python","title","Show HN: CrossHair – SMT Assisted Testing for Python","https:\u002F\u002Fgithub.com\u002Fpschanely\u002FCrossHair","github.com","pschanely",1579098903,2020,97,14,666,3028,22,"notable","dev_tools","testing","cli",[24,25,26,27,28],"python testing","smt solver","symbolic execution","z3","fuzzing","curious",0.2,{"positive":32,"neutral":33,"mixed":34,"critical":34},2,4,0,6,{"docs":37,"idea":38},{"positive":34,"critical":34},{"positive":32,"critical":34},[34,34,34,34,34,40,40,34,41,40,41,34,40,34],3,5,null,{"problem":44,"audience":55,"pricing":42,"motivation":59,"time_to_build":42,"stack":64,"openness":76,"stage":76,"team_size":76},{"value":45,"source":46,"evidence":47},"Testing Python code against formal pre and post conditions using SMT solving","inferred",[48,51],{"id":49,"by":11,"text":50},"22054445","Hi all! My primary objective with this post is to find potential collaborators and people willing to try it. (and file bugs!) If you do try it, I'd encourage you to think of it…",{"id":52,"by":53,"text":54},"22055934","im_down_w_otp","So this is Symbolic Execution based testing for Python?",{"value":56,"source":46,"evidence":57},"Python developers",[58],{"id":49,"by":11,"text":50},{"value":60,"source":61,"evidence":62},"Find collaborators and testers, and file bugs","maker",[63],{"id":49,"by":11,"text":50},[65,70],{"value":66,"source":46,"evidence":67},"Python",[68],{"id":69},"post",{"value":71,"source":61,"evidence":72},"Z3 SMT solver",[73],{"id":74,"by":11,"text":75},"22056249","Yes. Z3 is impressive. I intend to do a write-up of how I chose to model Python values in it soon.","unknown",{"praise":78,"objections":95,"requests":111,"questions":133,"alternatives":145},[79,91],{"value":80,"source":81,"evidence":82},"Project looks really cool and useful","commenter",[83,87],{"id":84,"by":85,"text":86},"22055896","ZeroCool2u","Hey there, this project looks really great! There seems to be some overlap with the Hypothesis-Auto[1] project. Have you looked into collaborating with Tim and perhaps merging…",{"id":88,"by":89,"text":90},"22056188","typon","This looks really cool. Love to see z3 being used for tools.",{"value":92,"source":81,"evidence":93},"Using Z3 for tools is great",[94],{"id":88,"by":89,"text":90},[96,100],{"value":97,"source":81,"evidence":98},"Overlaps with Hypothesis-Auto",[99],{"id":84,"by":85,"text":86},{"value":101,"source":81,"evidence":102},"PEP 316 naming was confusing",[103,107],{"id":104,"by":105,"text":106},"22057305","zitterbewegung","This is a really minor nitpick that I am expressing to help you market this better. Instead of saying (defunct) PEP 316 just say inspired which communicates that you don’t do…",{"id":108,"by":109,"text":110},"22058132","singhrac","Yes, please. I was confused when I first read this - I thought \"why would I want to use a tool based on outdated syntax?\". Maybe \"PEP 316-inspired syntax\"?",[112,120,126],{"value":113,"source":81,"evidence":114},"Collaborate and merge work with Hypothesis-Auto",[115,116],{"id":84,"by":85,"text":86},{"id":117,"by":118,"text":119},"22056108","timothycrosley","Can confirm that I would be happy to collaborate on this project, it looks really cool!",{"value":121,"source":61,"evidence":122},"Integrate hypothesis minimization logic",[123],{"id":124,"by":11,"text":125},"22056201","That would be amazing. It's easy to turn CrossHair into an absurdly slow fuzz tester (imagine hashing or printing your inputs early in the process). I think the ideal product…",{"value":127,"source":81,"evidence":128},"Combine symbolic and fuzzing approaches",[129],{"id":130,"by":131,"text":132},"22057725","zzz95","Portfolio of a slow but precise fuzzer + fast imprecise fuzzer is the easiest integration. Start both together and return the one which fails first. SMT solvers are often…",[134,138],{"value":135,"source":81,"evidence":136},"Is this symbolic execution based testing?",[137],{"id":52,"by":53,"text":54},{"value":139,"source":81,"evidence":140},"Has the author seen Viper or Nagini?",[141],{"id":142,"by":143,"text":144},"22058415","philzook","Very cool! Ever looked at the Viper project? It's the only other system in python that I know of targeting pre and post conditions https:\u002F\u002Fwww.pm.inf.ethz.ch\u002Fresearch\u002Fviper.html…",[146,150,154],{"value":147,"source":81,"evidence":148},"Hypothesis-Auto",[149],{"id":84,"by":85,"text":86},{"value":151,"source":81,"evidence":152},"Viper and Nagini",[153],{"id":142,"by":143,"text":144},{"value":155,"source":81,"evidence":156},"HOLpy",[157],{"id":142,"by":143,"text":144},{"comments":41,"answered":32,"key":159},[160,161,162],{"id":124,"text":125},{"id":49,"text":50},{"id":163,"text":164},"22060270","Totally agree that this is confusing. I've stolen and committed your suggestion. Thank you both!",{"commenters":166,"max_depth":33,"maker_replies":41,"first_comment_mins":167,"lifespan_hours":168},10,1,9,[170,172,173,175,176,178,180,181,183,187,189,190,192,193],[84,34,34,171,85,34],"commenter\u002Fpositive\u002Fidea",[117,34,34,171,118,34],[124,34,34,174,11,167],"commenter\u002Fneutral\u002Fidea",[130,34,34,174,131,34],[49,167,34,177,11,167],"project\u002Fneutral\u002Fnone",[104,167,40,179,105,34],"project\u002Fneutral\u002Fdocs",[108,167,40,179,109,34],[163,167,34,182,11,167],"maker\u002Fpositive\u002Fdocs",[184,167,41,185,186,34],"22058350","project\u002Fpositive\u002Fidea","exdsq",[142,32,40,188,143,34],"project\u002Fneutral\u002Fidea",[88,40,41,185,89,34],[74,40,34,191,11,167],"project\u002Fneutral\u002Fdesign",[52,33,40,188,53,34],[194,33,34,191,11,167],"22056234",[],[197,202,207,211,215,218],{"id":198,"name":199,"points":200,"category":201},"22045053","Diary Email",515,"productivity",{"id":203,"name":204,"points":205,"category":206},"22027177","Podnami",340,"consumer_social",{"id":208,"name":209,"points":210,"category":20},"22044198","Cantools",220,{"id":212,"name":213,"points":214,"category":201},"21998632","Ryeboard",185,{"id":216,"name":217,"points":214,"category":20},"22044368","Gter",{"id":219,"name":220,"points":221,"category":20},"22005495","Lucidity",184,false,"v2",{"id":225,"name":5,"line":6,"ai":222,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":226,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":227,"url":9,"mix":228,"praise":80,"objection":97,"sub":21},22054433,[24,25,26,27,28],"00000330535030",[32,33,34,34],1793991002049]