110 likes | 250 Views
CS527: Advanced Topics in Software Engineering (Software Testing and Analysis). Darko Marinov September 9, 2008. Schedule. Aug 26 & 28: Intro, reading/writing papers Sep 2: Random testing Sep 4: Refactoring (Jeff Overbey) Sep 9: Testing refactoring engines
E N D
CS527: Advanced Topics in Software Engineering(Software Testing and Analysis) Darko Marinov September 9, 2008
Schedule • Aug 26 & 28: Intro, reading/writing papers • Sep 2: Random testing • Sep 4: Refactoring (Jeff Overbey) • Sep 9: Testing refactoring engines • Sep 11: Static analysis (more votes) • Sep 16: Model checking (fewer votes) • Sep 18 (and on): Testing (most votes)
Communication Info • Everyone seems to be on the mailing list • 17 paper reports received by 1pm • If you send early, your question may be discussed • You can use newsgroup, but I won’t be able to monitor • People in the course on Wiki • 18 students listed • Assignment 0: Add yourself to the list • Let me know if you still can’t access it
Paper Reports • Actual Assignment 1 from today • Four items: • One good point • One bad point • One potential project • One question for discussion • Looking for depth • Don’t make reports too long
Report Submission • Due by lecture time, 2pm CST • Please follow these rules • Email presented, Vilas (vbangal2) & me • Put cs527 in the subject line • ASCII text (no PDF/DOC/HTML files) • No attachments
Report Policies • You can have two reports “late” • Submit them by the next class • You can omit two reports altogether • Please inform us if you plan to be late or omit a report • You can discuss papers with others • Reports must be written individually
Paper Today • Automated Testing of Refactoring Engines by Daniel, Dig, Garcia, Marinov (FSE 2007) • Slides courtesy of Brett Daniel • My generalization for “test abstractions”
Your Questions (1) • Can language grammar be used for similar result? [YYL] • Can a declarative generator be as effective? [YYL] • Would it be possible that writing imperative generators are too complex that tester can introduce errors when writing one? [YYL] • How could similar approaches be applied to other problems but refactoring engines? [DY] • Do refactoring bugs really cause very big problems? [WX]
Your Questions (2) • On oracles: who checks the checker? • Do better than AST Comparator? [DH] • Can we automatically define oracles based on the input patterns? [KB] • What more oracles can we use? [PP] • How to verify certain semantic aspects? • Can we add another refactoring engine?
Your Questions (3) • Were the bugs found actually bugs that should have been found during a unit test phase/white box testing? Which phase of the IDE developement seemed most flawed? • What were the root causes of the bugs in these refactoring engines? What is the best data model to represent a program such that refactoring can be performed correctly and efficiently? • Which IDE is "best" for refactoring?
Your Questions (4) • Could these automatic generated tests be clustered in some way? Do they cover all the situation very well? • Do the test cases need to be regenerated every time there is a change in the target refactoring engine? • Performance for Imperative generation of Larger and more complex ASTs ? • How does quality of generators differ for different developers? • How are Generator and Dependent Compositions handled in detail?