Home » Articles posted by kaiser (Page 5)

Author Archives: kaiser

Phosphor: Illuminating Dynamic Data Flow in Commodity JVMs

BibTeX for this paper:

@inproceedings{Bell:2014:PID:2660193.2660212,
author = {Bell, Jonathan and Kaiser, Gail},
title = "{Phosphor: Illuminating Dynamic Data Flow in Commodity JVMs}",
booktitle = {2014 ACM International Conference on Object Oriented Programming Systems Languages \& Applications},
series = {OOPSLA '14},
year = {2014},
month = {October},
isbn = {978-1-4503-2585-1},
location = {Portland, Oregon, USA},
pages = {83--101},
numpages = {19},
url = {http://doi.acm.org/10.1145/2660193.2660212},
doi = {10.1145/2660193.2660212},
acmid = {2660212},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {dataflow analysis, taint tracking},
}

Pebbles: Fine-Grained Data Management Abstractions for Modern Operating Systems

BibTeX for this paper:

@inproceedings {pebbles,
author = {Riley Spahn and Jonathan Bell and Michael Lee and Sravan Bhamidipati and Roxana Geambasu and Gail Kaiser},
title = {Pebbles: Fine-Grained Data Management Abstractions for Modern Operating Systems},
booktitle = {11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14)},
year = {2014},
month = Oct,
isbn = { 978-1-931971-16-4},
address = {Broomfield, CO},
pages = {113--129},
url = {https://www.usenix.org/conference/osdi14/technical-sessions/presentation/spahn},
publisher = {USENIX Association},
}

Us and Them: A Study of Privacy Requirements Across North America, Asia, and Europe

http://t.co/4qPqcQTfTw

 

Us and Them: A Study of Privacy Requirements Across North America, Asia, and Europe

@inproceedings{Sheth:2014:UTS:2568225.2568244,
author = {Sheth, Swapneel and Kaiser, Gail and Maalej, Walid},
title = {Us and Them: A Study of Privacy Requirements Across North America, Asia, and Europe},
booktitle = {Proceedings of the 36th International Conference on Software Engineering},
series = {ICSE 2014},
year = {2014},
isbn = {978-1-4503-2756-5},
location = {Hyderabad, India},
pages = {859–870},
numpages = {12},
url = {http://doi.acm.org/10.1145/2568225.2568244},
doi = {10.1145/2568225.2568244},
acmid = {2568244},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {Human factors in software engineering, empirical studies, interaction data, privacy, requirements engineering, user developer collaboration},
}

Unit Test Virtualization with VMVM

Given by Jonathan Bell at ICSE 2014 in Hyderabad, India on June 5, 2014.

Unit Test Virtualization with VMVM

BibTex for this paper:

@inproceedings{Bell:2014:UTV:2568225.2568248,
author = {Bell, Jonathan and Kaiser, Gail},
title = “{Unit Test Virtualization with VMVM}”,
booktitle = {36th International Conference on Software Engineering},
series = {ICSE 2014},
year = {2014},
isbn = {978-1-4503-2756-5},
location = {Hyderabad, India},
pages = {550–561},
numpages = {12},
url = {http://doi.acm.org/10.1145/2568225.2568248},
doi = {10.1145/2568225.2568248},
acmid = {2568248},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {Testing, test optimization, unit test virtualization},
note = {ACM SIGSOFT Distinguished Paper Award.}
}

VMVM: Unit Test Virtualization for Java (Tool Demo)

BibTex for this paper:

@inproceedings{vmvm,
author = {Bell, Jonathan and Kaiser, Gail},
title = {VMVM: Unit Test Virtualization for Java},
booktitle = {Proceedings of the 2014 International Conference on Software Engineering Companion},
series = {ICSE 2014},
year = {2014},
month={Jun},
location = {Hyderabad, India},
url = {http://jonbell.net/publications/vmvm-demo},
publisher = {IEEE Press},
address = {Piscataway, NJ, USA}

}

genSpace-WebServices

genSpace Web Services

The core functionalities of genSpace web services can be categorized into 7 facades in the following:

  1. UserFacade: Retrieve corresponding information about the current user in genSpace. The selected web methods are listed as following:
    • getProfile: Retrieve the profile of current user
    • updateUser: Update the information, such as password, for current user
    • getMyNetworks: Retrieve all networks that the current user is in
  2. UsageInformation: Retrieve information about tools and workflows of geWorkbench. The selected web methods are listed as following:
    • getTool: Retrieve the corresponding tool by too ID
    • getWorkflow: Retrieve the corresponding workflow by workflow ID
    • getMyNotes: Retrieve the note from user for a specific analysis event. An analysis event includes an invocation of geWorkbench tool
    • saveNote: Save the public note from user for a specific analysis event. This note can be seen by user and user’s friends
    • savePriv_Note: Save the private note from user for a specific analysis event. This note can be seen by user only
  3. ToolUsageInformation: Retrieve statistic data about tools and workflows of geWorkbench. The selected web methods are listed as following:
    • getToolsByPopularity: Retrieve the data of using times for each tool in geWorkbench
    • getWorkflowsByPopularity: Retrieve the data of using times for each work flow in geWorkbench
    • getToolSuggestion: Retrieve the suggestion for next tool based on current tool
    • sendUsageEvent: Store the logged analysis event from geWorkbench in genSpace
  4. FriendFacade: Retrieve information about friends of current user in genSpace. The selected web methods are listed as following:
    • getFriendRequest: Inform user that a new friend in genSpace who sends a friend-invitation
    • addFriend: Accept friend-invitation from a new friend
    • getFriends: Retrieve all users who are friends of user in genSpace
    • getMyFriendsEvents: Retrieve the analysis events from friends of user in genSpace
  5. PublicFacade: Responsible to register new users. The selected web methods are listed as following:
    • register: Register new users for genSpace. This method is now synchronized with the registration function in geWorkbench. When a new user registers in geWorkbench, she/he will also be registered in genSpace immediately
    • userExists: A guarding method to check if the registered username has been used by a former user
  6. NetworkFacade: Retrieve information about corresponding networks of user in genSpace. the selected web methods are listed as following:
    • createNetwork: Allow user to create a new network in genSpace
    • joinNetwork: Allow user to request joining an existing network in genSpace
    • leaveNetwork: Allow user to leave a network
  7. WorkflowRepository: A managing facade for users to store workflows created by them or their friends in geWorkbench
    • addWorkflow: Add a new workflow in the workflow repository
    • addComment: Add comment to a specific workflow in the workflow repository
    • sendWorkflow: Send an existing workflow in the workflow repository to friends

Unit Test Virtualization: Optimizing Testing Time

A poster presented at the 2nd International Workshop on Release Engineering at Google in Mountain View, CA on April 11, 2014

Sound Build Acceleration

Sound Build Acceleration: Our empirical studies found that the bulk of the clock time during the builds of the ~2000 largest and most popular Java open source software applications is spent running test cases, so we seek to speed up large builds by reducing testing time. This is an important problem because real-world industry builds often take many hours, so developers cannot be informed of any errors introduced by their changes while still in context – as needed for continuous integration (best practice). The consequent lack of attention to failed tests is one of the major reasons that software is deployed with so many security vulnerabilities and other severe bugs. Prior work reduces testing time by running only subsets of the test suite, chosen using various selection criteria. But this model inherently reduces failure detection, and may be unsound because remaining test cases may have dependencies on removed test cases (causing false positives and false negatives). We thought out of the box to substantially reduce measured testing time without removing any test cases at all, thus no reduction in failure detection. For example, we developed tools that use static and dynamic analyses to determine exactly which portion of the state written by previous test cases will be read by the next test case, and instrument the bytecode to just-in-time reinitialize only that dependent portion of the state, rather than restarting the JVM between separate test cases, a common industry practice. Some dependencies are unintentional, so our tools also inform developers so they can re-engineer the code to remove those dependencies. Other dependencies are necessary, because series of tests are needed to build up and check each step of complex usage scenarios; for these our tools bundle dependent test cases and distinguish independent sets of test cases to enable sound parallelization of large test suites.

We expect to use components of this tool as part of the Mutable Replay project, and are seeking new project students in tandem with that effort.

Contact Professor Gail KaiserĀ (kaiser@cs.columbia.edu)

Team Members

Faculty
Gail Kaiser

Former Graduate Students
Jonathan Bell

Links

Publications

Jonathan Bell, Gail Kaiser, Eric Melski and Mohan Dattatreya. Efficient Dependency Detection for Safe Java Test Acceleration. 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), Aug-Sep 2015, pp. 770-781.

Jonathan Bell, Eric Melski, Gail Kaiser and Mohan Dattatreya. Accelerating Maven by Delaying Dependencies.3rd International Workshop on Release Engineering (RelEng), May 2015, p. 28.

Jonathan Bell, Eric Melski, Mohan Dattatreya and Gail Kaiser. Vroom: Faster Build Processes for Java.IEEE Software, 32(2):97-104, Mar/Apr 2015.

Jonathan Bell and Gail Kaiser. Unit Test Virtualization with VMVM. 36th International Conference on Software Engineering (ICSE), June 2014, pp. 550-561. (ACM SIGSOFT Distinguished Paper Award)

Jonathan Bell and Gail Kaiser. Unit Test Virtualization: Optimizing Testing Time. 2nd International Workshop on Release Engineering (RelEng), April 2014.

Jonathan Bell and Gail Kaiser. VMVM: Unit Test Virtualization for Java. ICSE 2014 Formal Demonstrations Track, Companion Proceedings of 36th International Conference on Software Engineering (ICSE), June 2014, pp. 576-579. Video at https://www.youtube.com/watch?v=sRpqF3rJERI.

Software

Download VmVm.