Supporting Coding and Testing

Preview:

DESCRIPTION

Seminar presented at IME USP.

Citation preview

SUPPORTING

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

codingAND

testing

How to improve the environment for coding and testing

of software

We will discuss about…

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

A painting program

500 lines of Java code

a few bugs to fix

The problem: Find and fix bugs

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.

How to fix it?

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

debugging is hypotesis-driven

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.

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

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

Whyline for Java

Conclusions: The number of successful participants and time on task

Task 1

Task 2

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:

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

Collabode: Collaborative Coding in the Browser

article

Max  Goldman Greg  LittleMIT  CSAIL

2011

Robert  C.  MillerMIT  CSAIL MIT  CSAIL

The problem: Improve development environment to collaborate

micro outsourcingtest-drive pair programming

To the classroom and beyond

How to improve that?

Collaborating programmers should use a development environment designed specifically

for collaboration…

!

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

interface…

The proposal to improve collaborative development:

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

between programmers.

https://github.com/uid/collabode

Collabode

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

http://sketchpad.cc/

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

http://codemirror.net/

Similar tools:

http://www.ymacs.org/

http://jsfiddle.net/

https://c9.io/

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

The problem: Improve code navigation

Programmers spend between 60-90% of their

time reading and navigating code and other data sources

Eclipse:

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

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.

Code Bubble is a IDE based on bubbles to turn better

navigating into code.

Coding:

Debugging:

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:

Dúvidas

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

Recommended