Close
  • Latest News
  • Artificial Intelligence
  • Video
  • Big Data and Analytics
  • Cloud
  • Networking
  • Cybersecurity
  • Applications
  • IT Management
  • Storage
  • Sponsored
  • Mobile
  • Small Business
  • Development
  • Database
  • Servers
  • Android
  • Apple
  • Innovation
  • Blogs
  • PC Hardware
  • Reviews
  • Search Engines
  • Virtualization
Read Down
Sign in
Close
Welcome!Log into your account
Forgot your password?
Read Down
Password recovery
Recover your password
Close
Search
Logo
Logo
  • Latest News
  • Artificial Intelligence
  • Video
  • Big Data and Analytics
  • Cloud
  • Networking
  • Cybersecurity
  • Applications
  • IT Management
  • Storage
  • Sponsored
  • Mobile
  • Small Business
  • Development
  • Database
  • Servers
  • Android
  • Apple
  • Innovation
  • Blogs
  • PC Hardware
  • Reviews
  • Search Engines
  • Virtualization
More
    Home Development
    • Development

    Agitar Puts Java to the Test

    Written by

    eWEEK EDITORS
    Published February 5, 2007
    Share
    Facebook
    Twitter
    Linkedin

      eWEEK content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

      As enterprise applications continue to grow more and more complex, the need for testing and quality assurance tools increases more than ever. Agitar Software, based in Mountain View, Calif., specializes in the automation of unit testing, where software developers test their code as they write it. Jerry Rudisin, CEO and president of Agitar, chatted with eWEEK Senior Editor Darryl K. Taft about the importance of testing and how it can help improve software quality and business agility.

      What is unit testing?

      Its the practice in which software developers test each module of their code in isolation—hence the term “unit”—as they write it and deliver their code with a set of tests that characterize and validate the correct behavior of individual modules.

      The important point is that code needs tests to do the best job of getting it right and keeping it right. If you create tests as you write the code, you create better code. Its easier to get the code right in the first place. And you can develop [applications] faster, since you spend less time on the pursuit of bad design paths, wandering around in a debugger to see what the code is doing, and on software scrap-and-rework.

      If you have a good set of tests that characterize each modules behavior, its much easier to safely change it later. You can see right away if a change to one behavior breaks another behavior—a likely source of bugs.

      Unit testing is an old idea, though its popularity has soared in the past five years. Open-source frameworks such as JUnit [for Java] and NUnit [for .Net], have encouraged unit testing by providing a standard way to express tests. Unit testing is the best way to improve the economics of software development and the agility of development teams.

      Some organizations try unit testing and end up with some small percentage of developers who are test-infected—they find it natural to create unit tests and see the benefits. But most teams stay test-neglected—the developers try unit testing and back off because they find it too hard. Its more important to have unit tests than to practice unit testing. The question is then one of, how can the test-neglected get unit tests on their code, and how can the test-infected practice more thorough unit testing with less manual effort?

      Whats the benefit of unit testing over other types of testing?

      Unit testing is all about building in quality instead of testing out bugs, by making sure that each code module does what its supposed to do. It minimizes bugs by exposing defects early and isolating the guilty module quickly, and by making it easier to safely change code [both new code and legacy systems]. Every bug thats prevented or fixed while in development is one less bug that gets in the way of the GUI, functional, performance or stress testing that QA [quality assurance] teams do.

      Many QA teams complain of getting junk from development. Giving QA code that has good unit tests lets the QA team focus on integration and real system-level testing, since it spends less time finding and isolating bugs long after theyre introduced. Code with unit tests helps development teams release software systems that work a lot faster. Theres a real advantage to unit testing both in quality and time to market.

      What does Agitar do differently [from competitors], or what makes it unique?

      Agitars flagship product, AgitarOne, is a comprehensive server-based solution for unit testing of Java code. AgitarOne is powered by Agitator, an award-winning innovation that performs unique dynamic and static analysis on the code. Agitator executes many pathways through the code and identifies interesting observations about what the code does in the face of normal and exceptional conditions, including many that a developer might not think of or might find too tedious to analyze. Developers can use Agitator to interactively examine these observations and promote them to regression tests or tell AgitarOne to publish them in the form of standard JUnit tests.

      Why should a developer use Agitars tools instead of JUnit, which is free?

      About 95 percent of Agitar customers start with JUnit and continue to use it even after they use AgitarOne. This is true of Agitar as well. Our code has a huge set of Agitator assertions and JUnit tests, and we check them 24/7 using continuous integration and testing. But if your organization uses JUnit, AgitarOne is a perfect fit.

      Some developers happily spend time writing unit tests. JUnit is just more code to write and to maintain. But testing is a combinatorial problem that cries out for automation. Even if you could write and maintain extensive unit tests by hand, why would you do it when a computer can do it faster? And, of course, people cannot easily think of all of the boundary conditions and corner cases for which they should test, so automation is needed to be really thorough.

      And for the test-neglected shops or where theres a lot of never-been-unit-tested legacy code, automation is the easiest way to get started. You can use AgitarOne to create a set of JUnit tests that characterize the current behavior of your software. You get a set of regression tests that let you know when you change some behavior by accident.

      There is far too much Java code without unit tests, because manual unit testing is too hard. AgitarOne provides automation that leverages the intellectual power of a talented human by doing a lot of the grunt work.

      What kind of overhead does Agitars technology bring into the development experience—in terms of time, resources, extra work or complexity?

      Even though the benefits are clear, many developers see unit testing as a behavior change to be resisted. AgitarOne is designed to make it as easy as possible to get a good set of unit tests and to augment or amplify the unit testing that good developers already do.

      You can install the AgitarOne Eclipse plug-in for generating JUnit, point to a Java project, press a button to send the Java code to the AgitarOne server and get JUnit tests. You can literally start to generate good characterization tests in minutes. You can look at them to learn about the behavior of your code, or check them in and look at them only when they fail in the face of a later change to the code.

      You can write JUnit tests, of course. And you can improve the thoroughness of the generated tests and your handcrafted tests by writing a few simple helper methods that tell AgitarOne how to create objects that your code needs. Other AgitarOne clients support interactive exploratory testing, code-rule checking, and dashboard reports on test thoroughness and trends.

      Does Agitar help developers create more secure code?

      A lot of security flaws stem from unexpected or undocumented code behavior, and many of these unexpected “what if?” situations are discovered and highlighted by AgitarOne. AgitarOne also provides code-rule enforcement, making it easy for organizations to identify and avoid dangerous coding patterns.

      AgitarOne complements the static analysis tools that scan code for known security flaws. As with software quality, maximum software security is best achieved by combining multiple techniques for defense in depth, starting with delivering individual software unit classes and methods in the case of Java that are validated to be free of flaws that could be exploited to allow security problems.

      How has your experience as a former Rational [now IBM Rational] exec helped prepare you for your role at Agitar?

      Everyone who helped build Rational is quite proud of what that company achieved over its 23 years as an independent company. I joined the old private Rational when it had completed a year with revenues of about $28 million, and left when it had completed a year with revenues of $412 million, so I experienced tremendous growth. Agitar isnt that big yet, but we aspire to be.

      Rational enabled a real change for the better in worldwide software development practices. It did more than any other organization to popularize iterative development approaches, which are a lot more effective than the old pure waterfall approaches. It did it by relentless focus on its mission, sustained innovation, a zeal for customer satisfaction and by fostering a high-trust, high-performance culture. This worked very well and is a very good model of what one can do when tackling a hard problem with very innovative and dedicated people.

      Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.

      eWEEK EDITORS
      eWEEK EDITORS
      eWeek editors publish top thought leaders and leading experts in emerging technology across a wide variety of Enterprise B2B sectors. Our focus is providing actionable information for today’s technology decision makers.

      Get the Free Newsletter!

      Subscribe to Daily Tech Insider for top news, trends & analysis

      Get the Free Newsletter!

      Subscribe to Daily Tech Insider for top news, trends & analysis

      MOST POPULAR ARTICLES

      Artificial Intelligence

      9 Best AI 3D Generators You Need...

      Sam Rinko - June 25, 2024 0
      AI 3D Generators are powerful tools for many different industries. Discover the best AI 3D Generators, and learn which is best for your specific use case.
      Read more
      Cloud

      RingCentral Expands Its Collaboration Platform

      Zeus Kerravala - November 22, 2023 0
      RingCentral adds AI-enabled contact center and hybrid event products to its suite of collaboration services.
      Read more
      Artificial Intelligence

      8 Best AI Data Analytics Software &...

      Aminu Abdullahi - January 18, 2024 0
      Learn the top AI data analytics software to use. Compare AI data analytics solutions & features to make the best choice for your business.
      Read more
      Latest News

      Zeus Kerravala on Networking: Multicloud, 5G, and...

      James Maguire - December 16, 2022 0
      I spoke with Zeus Kerravala, industry analyst at ZK Research, about the rapid changes in enterprise networking, as tech advances and digital transformation prompt...
      Read more
      Video

      Datadog President Amit Agarwal on Trends in...

      James Maguire - November 11, 2022 0
      I spoke with Amit Agarwal, President of Datadog, about infrastructure observability, from current trends to key challenges to the future of this rapidly growing...
      Read more
      Logo

      eWeek has the latest technology news and analysis, buying guides, and product reviews for IT professionals and technology buyers. The site’s focus is on innovative solutions and covering in-depth technical content. eWeek stays on the cutting edge of technology news and IT trends through interviews and expert analysis. Gain insight from top innovators and thought leaders in the fields of IT, business, enterprise software, startups, and more.

      Facebook
      Linkedin
      RSS
      Twitter
      Youtube

      Advertisers

      Advertise with TechnologyAdvice on eWeek and our other IT-focused platforms.

      Advertise with Us

      Menu

      • About eWeek
      • Subscribe to our Newsletter
      • Latest News

      Our Brands

      • Privacy Policy
      • Terms
      • About
      • Contact
      • Advertise
      • Sitemap
      • California – Do Not Sell My Information

      Property of TechnologyAdvice.
      © 2024 TechnologyAdvice. All Rights Reserved

      Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.

      ×