31
SUPPORTING Suelen G. Carvalho Departamento de Ciência da Computação - Instituto de Matemática e Estatística - Universidade de São Paulo coding AND testing

Supporting Coding and Testing

Embed Size (px)

DESCRIPTION

Seminar presented at IME USP.

Citation preview

Page 1: Supporting Coding and Testing

SUPPORTING

Suelen G. CarvalhoDepartamento de Ciência da Computação - Instituto de Matemática e Estatística - Universidade de São Paulo

codingAND

testing

Page 2: Supporting Coding and Testing

How to improve the environment for coding and testing

of software

We will discuss about…

Page 3: Supporting Coding and Testing

Finding Causes of Program Output with the Java Whyline Finding Causes of Program

Output with the Java Whyline.

article

Andrew  Ko Brad  A.  MyersUniversity  of  Washington Carnegie  Mellon  University

2009

Page 4: Supporting Coding and Testing

A painting program

500 lines of Java code

a few bugs to fix

The problem: Find and fix bugs

Page 5: Supporting Coding and Testing

How to fix it?

In the study, users took a median of 10 minutes to find the problem, mostly using text searches for "color" to find relevante code.

Page 6: Supporting Coding and Testing

How to fix it?

In the study, users took a median ofminutesusing find relevante code.

debugging is hypotesis-driven

Page 7: Supporting Coding and Testing

The proposal to improve debugging software:

Whyline not only avoid the speculation about the cause of a failure, but also simplifies the exploration of code responsible for the output.

Page 8: Supporting Coding and Testing

Whyline is a debugging tool that allows programmers to ask "Why did" and "Why didn't" questions about their program's output.

http://www.cs.cmu.edu/~NatProg/whyline.html

Page 9: Supporting Coding and Testing

http://www.cs.cmu.edu/~NatProg/whyline-java.html

Whyline for Java

Page 10: Supporting Coding and Testing
Page 11: Supporting Coding and Testing

Conclusions: The number of successful participants and time on task

Task 1

Task 2

Page 12: Supporting Coding and Testing

Our sample was small and may not be representative of Java users…

…caution should be exercised in applying our results to situations in which a developer is more

closely familiar with the code being debugged.

Limitations:

Page 13: Supporting Coding and Testing

Similar tools:

http://chrononsystems.com/products/chronon-time-travelling-debugger

ReplayDIRECTOR for Java EEhttp://eclipsediver.wordpress.com/

Omniscient Debugginghttp://www.lambdacs.com/debugger/

JIVEhttp://www.cse.buffalo.edu/jive/

http://www.replaysolutions.com/products/replaydirector-for-java-ee

Page 14: Supporting Coding and Testing

Collabode: Collaborative Coding in the Browser

article

Max  Goldman Greg  LittleMIT  CSAIL

2011

Robert  C.  MillerMIT  CSAIL MIT  CSAIL

Page 15: Supporting Coding and Testing

The problem: Improve development environment to collaborate

micro outsourcingtest-drive pair programming

To the classroom and beyond

Page 16: Supporting Coding and Testing

How to improve that?

Collaborating programmers should use a development environment designed specifically

for collaboration…

Page 17: Supporting Coding and Testing

!

In Collabode changes by multiple programmers can be shared immediately, and each programmer can use a different

interface…

The proposal to improve collaborative development:

Page 18: Supporting Coding and Testing

Collabode is a web-based Java IDE for close, synchronous collaboration

between programmers.

https://github.com/uid/collabode

Page 19: Supporting Coding and Testing

Collabode

http://groups.csail.mit.edu/uid/collabode/

Page 20: Supporting Coding and Testing
Page 21: Supporting Coding and Testing

http://sketchpad.cc/

https://mozillalabs.com/en-US/skywriter/

http://codemirror.net/

Similar tools:

http://www.ymacs.org/

http://jsfiddle.net/

https://c9.io/

Page 22: Supporting Coding and Testing

Code Bubbles: Rethinking the User Interface Paradigm of Integrated

Development Environments

article

Andrew  Bragdon,  Steven  P.  Reiss,  Robert  Zeleznik,  Suman  Karumuri,  William  Cheung,  Joshua  Kaplan,  Christopher  

Coleman,  Ferdi  Adeputra,  Joseph  J.  LaViola  Jr.

2010

Page 23: Supporting Coding and Testing

The problem: Improve code navigation

Programmers spend between 60-90% of their

time reading and navigating code and other data sources

Page 24: Supporting Coding and Testing

Eclipse:

Page 25: Supporting Coding and Testing

How to improve that?

…a new approach, where the IDE shows multiple editable fragments

simultaneously, letting the user see and work with complete working sets

Page 26: Supporting Coding and Testing

The proposal to improve code navigation:

The design of a novel IDE user interface, and associated development tools, based on working sets of bubbles that has the potential to improve a broad range of

development tasks.

Page 27: Supporting Coding and Testing

Code Bubble is a IDE based on bubbles to turn better

navigating into code.

Page 28: Supporting Coding and Testing

Coding:

Page 29: Supporting Coding and Testing

Debugging:

Page 30: Supporting Coding and Testing

A further quantitative evaluation showed that users were able to perform complex

code understanding tasks significantly more efficiently when using bubbles than when using Eclipse due to reduced navigation

Conclusion:

Page 31: Supporting Coding and Testing

Dúvidas

Departamento de Ciência da Computação - Instituto de Matemática e Estatística - Universidade de São Paulo