Tag Archives: software engineering

Test Dependencies and the Future of Build Acceleration

Test Dependencies and the Future of Build Acceleration

JONATHAN BELL

Programming Systems Laboratory, Department of Computer Science, Columbia University

SEPTEMBER 10 @ 12:00 PM1:00 PM

With the proliferation of testing culture, many developers are facing new challenges. As projects are getting started, the focus may be on developing enough tests to maintain confidence that the code is correct. However, as developers write more and more tests, performance and repeatability become growing concerns for test suites. In our study of large open source software, we found that running tests took on average 41% of the total time needed to build each project – over 90% in those that took the longest to build. Unfortunately, typical techniques for accelerating test suites from literature (like running only a subset of tests, or running them in parallel) can’t be applied in practice safely, since tests may depend on each other. These dependencies are very hard to find and detect, posing a serious challenge to test and build acceleration. In this talk, I will present my recent research in automatically detecting and isolating these dependencies, enabling for significant, safe and sound build acceleration of up to 16x.

Jon is a fourth year PhD candidate at Columbia University studying Software Engineering with Prof Gail Kaiser. His research interests in Software Engineering mostly fall under the umbrella of Software Testing and Program Analysis. Jon’s recent research in accelerating software testing has been recognized with an ACM SIGSOFT Distinguished Paper Award (ICSE ’14), and has been the basis for an industrial collaboration with the bay-area software build acceleration company Electric Cloud. Jon actively participates in the artifact evaluation program committees of ISSTA and OOPSLA, and has served several years as the Student Volunteer chair for OOPSLA.

The Modern, Responsive Web Site

The Modern, Responsive Web Site

ANTHONY HOLLEY

Department of Computer Systems Technology, New York City College of Technology, City University of New York

More and more use is being made of cell phones for web exploration at the expense of conventional desk and laptop PCs. The modern web has to accommodate all these many screen sizes from High definition PC screens through iPads to miniature cell phone and maybe even smaller? This presentation will give many outward examples of valid web sites and discuss internal coding techniques.

Anthony is a Lecturer at the Computer Systems Technology Department of New York City College of Technology, City University of New York. He holds a BSc from King’s College London and an MBA from Regent Street Polytechnic, London, UK.

Poster

Subscribe


 

Feedback

Test Dependencies and the Future of Build Acceleration

Test Dependencies and the Future of Build Acceleration

JONATHAN BELL

Programming Systems Laboratory, Department of Computer Science, Columbia University

With the proliferation of testing culture, many developers are facing new challenges. As projects are getting started, the focus may be on developing enough tests to maintain confidence that the code is correct. However, as developers write more and more tests, performance and repeatability become growing concerns for test suites. In our study of large open source software, we found that running tests took on average 41% of the total time needed to build each project – over 90% in those that took the longest to build. Unfortunately, typical techniques for accelerating test suites from literature (like running only a subset of tests, or running them in parallel) can’t be applied in practice safely, since tests may depend on each other. These dependencies are very hard to find and detect, posing a serious challenge to test and build acceleration. In this talk, I will present my recent research in automatically detecting and isolating these dependencies, enabling for significant, safe and sound build acceleration of up to 16x.

Jon is a fourth year PhD candidate at Columbia University studying Software Engineering with Prof Gail Kaiser. His research interests in Software Engineering mostly fall under the umbrella of Software Testing and Program Analysis. Jon’s recent research in accelerating software testing has been recognized with an ACM SIGSOFT Distinguished Paper Award (ICSE ’14), and has been the basis for an industrial collaboration with the bay-area software build acceleration company Electric Cloud. Jon actively participates in the artifact evaluation program committees of ISSTA and OOPSLA, and has served several years as the Student Volunteer chair for OOPSLA.


 

Static Analysis and Verification of C Programs

Static Analysis and Verification of C Programs

Subash Shankar

Department of Computer Science, Hunter College, City University of New York

Recent years have seen the emergence of several static analysis techniques for reasoning about programs. This talk presents several major classes of techniques and tools that implement these techniques. Part of the presentation will be a demonstration of the tools.

Dr. Subash Shankar is an Associate Professor in the Computer Science department at Hunter College, CUNY. Prior to joining CUNY, he received a PhD from the University of Minnesota and was a postdoctoral fellow in the model checking group at Carnegie Mellon University. Dr. Shankar also has over 10 years of industrial experience, mostly in the areas of formal methods and tools for analyzing hardware and software systems.

Subscribe


 

Feedback

Fraglight: Shedding Light on Broken Pointcuts in Evolving Aspect-Oriented Software

Software Engineering Seminar Series
Fraglight: Shedding Light on Broken Pointcuts in Evolving Aspect-Oriented Software
Raffi Khatchadourian

Computer Systems Technology
New York City College of Technology, Room N921
Thursday, November 13 1-2pm

Aspect-Oriented Programming compliments Object-Oriented Programming by modularizing code that would otherwise be scattered and tangled throughout a system. Since its inception in the last decade, it has made a substantial impact in both academia and industry, with many Aspect-Oriented languages emerging. It has influenced many new language features, such as method interceptors in .NET and categories in Objective-C, as well as application frameworks, such as Spring and JBoss.

While providing many benefits, however, Aspect-Oriented programs can experience other complications as software evolves. Because the paradigm relies on queries over the program’s dynamic execution, certain program changes can adversely effect to function. Deciding which queries have broken is a daunting venture, especially in large and complex systems. In this talk, Dr. Khatchadourian will present his ongoing, joint work on an automated approach that recommends likely modifications to aspects due to a certain code change. The approach has been implemented as an open-source extension to the popular Mylyn Eclipse Integrated Development Environment plugin, which maintains focused contexts of entities relevant to the task at hand.

Dr. Raffi Khatchadourian is an Assistant Professor in the Department of Computer Systems Technology at New York City College of Technology of the City University of New York. He received his MS and PhD degrees in Computer Science from Ohio State University and his BS degree in Computer Science from Monmouth University, NJ. Prior to joining City Tech, he was a Software Engineer at Apple, Inc., Cupertino, California, where he worked on Digital Rights Management (DRM) for iTunes, iBooks, and the App store. He also developed distributed software that tests various features of iPhones, iPads, and iPods. His research involves automated software evolution, such as refactoring and source code recommendation systems. He is focused on easing the burden associated with correctly and efficiently evolving large and complex software by providing automated tools that can be easily used by developers.

Software at Scale

Software Engineering Seminar Series:
Software at Scale
Michael Barnathan

COMPUTER SYSTEMS TECHNOLOGY
NEW YORK CITY COLLEGE OF TECHNOLOGY
300 JAY ST.
BROOKLYN, NY 11201

TUESDAY, NOVEMBER 25 1-2PM
ROOM N119
LIGHT REFRESHMENTS WILL BE SERVED!

Can your app handle an appearance on the front page of TechCrunch? In this talk, we’ll compare common design patterns and strategies for building software that can scale to millions of users and beyond, such as concurrency, caching, CDNs, compression, immutability, sharding, partial ordering, and read optimization. We’ll discuss why the REST paradigm has become such a natural fit for building web and app backend services, as well as how to test your app for scalability so you can be confident that it will survive an unexpected spike in traffic.

Michael Barnathan is a Director of Engineering at Amplify Access, which deploys educational tablets to K-12 schools across the country. Prior to joining Amplify, Michael founded Clipless, the first contextual deals startup, which survived two appearances on the front page of TechCrunch, gained massive traction in a short period of time, and was acquired 8 months from founding. Michael’s prior experience also includes a Senior Software Engineer position at Google, where he worked on their build pipeline, creating software to compile millions of lines of source code in under 1 second. He holds a Ph. D. in machine learning from Temple University, with a particular emphasis on using computer vision techniques to automatically diagnose medical scans. In his spare time, Michael enjoys genetic engineering, piano, and composition.

Poster

Introduction to New Features in Java 8

Computer Systems Technology Colloquium Series presents:
Introduction to New Features in Java 8
Raffi Khatchadourian


Computer Systems Technology
New York City College of Technology
Room N906
Thursday, March 26, 2015 12-1pm
Light refreshments will be served!

Java 8 is one of the largest upgrades to the popular language and framework in over a decade. This talk will detail several new key features of Java 8 that can help make programs easier to read, write, and maintain. Java 8 comes with many features, especially related to collection libraries. We will cover such new features as Lambda Expressions, the Stream API, enhanced interfaces, and more.

Dr. Raffi Khatchadourian is an Assistant Professor in the Department of Computer Systems Technology at New York City College of Technology of the City University of New York. He received his MS and PhD degrees in Computer Science from Ohio State University and his BS degree in Computer Science from Monmouth University, NJ. Prior to joining City Tech, he was a Software Engineer at Apple, Inc., Cupertino, California, where he worked on Digital Rights Management (DRM) for iTunes, iBooks, and the App store. He also developed distributed software that tests various features of iPhones, iPads, and iPods. His research involves automated software evolution, such as refactoring and source code recommendation systems. He is focused on easing the burden associated with correctly and efficiently evolving large and complex software by providing automated tools that can be easily used by developers.

Introduction to New Features in Java 8

Computer Systems Technology Colloquium Series presents:
Introduction to New Features in Java 8
Raffi Khatchadourian

Computer Systems Technology
New York City College of Technology
Room N906
Thursday, March 26, 2015 12-1pm
Light refreshments will be served!

Java 8 is one of the largest upgrades to the popular language and framework in over a decade. This talk will detail several new key features of Java 8 that can help make programs easier to read, write, and maintain. Java 8 comes with many features, especially related to collection libraries. We will cover such new features as Lambda Expressions, the Stream API, enhanced interfaces, and more.

Dr. Raffi Khatchadourian is an Assistant Professor in the Department of Computer Systems Technology at New York City College of Technology of the City University of New York. He received his MS and PhD degrees in Computer Science from Ohio State University and his BS degree in Computer Science from Monmouth University, NJ. Prior to joining City Tech, he was a Software Engineer at Apple, Inc., Cupertino, California, where he worked on Digital Rights Management (DRM) for iTunes, iBooks, and the App store. He also developed distributed software that tests various features of iPhones, iPads, and iPods. His research involves automated software evolution, such as refactoring and source code recommendation systems. He is focused on easing the burden associated with correctly and efficiently evolving large and complex software by providing automated tools that can be easily used by developers.

Slides from “Android Apps the Right Way”

Slides from yesterday’s talk on Android app development by Michael Barnathan.

Android Apps The Right Way

Computer Systems Technology Colloquium Series presents:
Android Apps The Right Way

Michael Barnathan

Computer Systems Technology
New York City College of Technology
Room N906
Thursday, March 5, 2015 12-1pm
Light refreshments will be served!

“Mobile is eating the world,” but few developers realize that mobile software is written very differently from desktop software. This leads to lots of mobile apps that simply don’t work well, suck up battery power, or can’t recover from being put into the background. I’ll discuss a few such apps on the Android platform, and explain how they should have been written to improve user experience, illustrating general mobile development principles by example.

Dr. Michael Barnathan is a Director of Engineering at Amplify Access, which deploys educational tablets to K-12 schools across the country. Prior to joining Amplify, Michael founded Clipless, the first contextual deals startup, which survived two appearances on the front page of TechCrunch and was acquired 8 months from founding. Michael’s prior experience also includes a Senior Software Engineer position at Google. He holds a Ph. D. in machine learning from Temple University, with a particular emphasis on using computer vision techniques to automatically diagnose medical scans.

Poster