1 / 15

Analysis of Complex D ata S tructures with PEX

Analysis of Complex D ata S tructures with PEX. Vadim Mutilin Evgeniy Gerlits Vladimir Fedotov Mentor: Patrice Godefroid. Microsoft Pex. White box test generation for .NET Implements DART (Directed Automated Random Testing): combines concrete and symbolic executions

emmet
Download Presentation

Analysis of Complex D ata S tructures with PEX

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Analysis of Complex Data Structures with PEX VadimMutilin EvgeniyGerlits Vladimir Fedotov Mentor: Patrice Godefroid

  2. Microsoft Pex • White box test generation for .NET • Implements DART (Directed Automated Random Testing): combines concrete and symbolic executions • Push button approach

  3. Complex Data Structures • Examples: List, Queue, Map, Tree, Graph

  4. Motivation • Nikolai Tillmann, et al. Test Input Generation for Programs with Pointers. TACAS 2009. • Does push button approach really work on complex data structures? • class MyList<T> • private T value • add(T value) • void removeAT(intindex) • T getItem(int index)

  5. Project Goals • Understanding limits • Documentation • Authors • Concrete examples • Making out suggestions • Usage patterns • Improvements

  6. Push Button Approach

  7. Push Button (Results) • MyContains 6/6 (100.00%), 103 Runs

  8. Push Button (MyList)

  9. Push Button (Results) covered/total basic blocks (test runs)

  10. Factory Approach • Pex generates template for Factory method • User adds Factory method which generates the inputs • Factory method may be parameterized

  11. Factory (Results) covered/total basic blocks (test runs)

  12. Pool Approach • Collection of concrete input objects • Collection is created manually by the tester • Pex iterates indexes • Implementation is called with concrete objects by their indexes

  13. Pool (Results) covered/total basic blocks (test runs)

  14. Relaxing Visibility Constraints Can be done with annotation

  15. Conclusion • Pex limitations are still unclear • 2 bugs reported to the Pex team • Suggested • Pool approach • Relaxing visibility constraints with annotations • Promising topic for further research

More Related