Tools for Code Quality Improvement - Metrowerks CodeTEST
Richard Bloor   Monday, 12 January 2004
Metrowerks latest Symbian OS toolset will help device and application developers track down quality issues with their code. SymbianOne talks with Greg Hemstreet about Metrowerks latest offering.

The range and depth of tools for Symbian OS, both for device manufacturers and third party developers, has been steadily improving. The latest, Metrowerks CodeTEST for Symbian OS, delivers developers working on reference boards, with production devices or the emulator tools to help identify memory and performance problems, as well as review code structure and code coverage.

Richard Bloor recently caught up with Greg Hemstreet, Director of Product Marketing, Standard Products and Core Technologies for Metrowerks to find out more about the tools.

Richard: Greg thanks for finding the time to talk with SymbianOne. I'd like to start by just recapping on the addition of CodeTEST to the Metrowerks family, because it was an acquisition I believe?

Greg: Yes we acquired the technology from Applied Microsystems about 18 months ago. At that time the tool was focused mainly on the telecommunications and avionics market. Over the course of 2003 we have been adding support for the operating systems Metrowerks supports, both desktop and those in the wireless market. So we support embedded Linux, which has some wireless applications, and now Symbian OS.

Richard: What were reasons for adding Symbian OS early in the development cycle?

Greg: We have been making a concerted effort in the Symbian OS market, we are selling CodeWarrior tools into that market and have good relationships with device manufactures and developers. We believe we have identified a real opportunity to introduce an analysis product because the industry is maturing and focusing on those quality issues which CodeTEST helps address.

Richard: Having identified the need, what tools have you provided in CodeTEST?

Greg: There are four elements to the CodeTEST suite performance, memory, trace, and code coverage tools. While code is running on a platform, the developer can ask how it is performing both in execution times and memory usage, and what it doing, where in the code it is and what code it is using over time. With these tools developers can really understand the characteristics of the application as it runs. As such, CodeTEST is the first comprehensive set of tools for Symbian OS code analysis.

What makes CodeTEST unique is that we have a hardware version which allows developers to connect a probe to a reference board and get information in the same way as they would from a logic analyzer. So you are able to get very accurate information without the analysis process affecting the software's performance. This allows the developer to really understand what the application is doing.

Hardware_Probe.jpg - 10525 Bytes

The CodeTEST Hardware In-Circuit (HWIC) probe with Mictor-38 connections.

We also have a software version which runs with a production device and a native version, so called because the probe runs on the same machine as the analysis tools, which allows developers to work with the Virtio simulator or the Symbian OS SDKs which come with the CodeWarrior IDE.

These tools all allow developers to understand how their applications are performing. With the hardware version this can be over an extended time as we have a huge data collection unit which allows the performance of the software to be recorded over hours or days.

Richard: Most analysis tools have some limit to the details they can provide, how comprehensive is CodeTEST?

Greg: We believe we can provide the developers with all the information they need. For example we can instrument to be able to tell you how long each statement is taking. This gives a clear and accurate picture of what is happening and is really important when you have multiple tasks running simultaneously, something we are seeing more of as Symbian OS applications become more complex.

Richard: So, for example, you get a detailed picture for each active thread?

Greg: Absolutely, each thread, or if you wish you can aggregate the information. It is the developer's choice and one they make as they instrument the code. We provide a utility that instruments the source code, which then gets compiled into the application that is downloaded to the board, device or emulator. So as the application runs we monitor the instrumentation through the probe and bring that information back into CodeTEST for display and analysis, where you can aggregate that information or leave it as independent tasks.

Richard: Instrument at the source level obviously slightly alters the application, what effect does that have on the validity of the results?

Greg: The effect depends on the type of probe you are using. Instrumentation always adds instruction to the executable code, but in the case of the hardware probe all we are doing is adding 32 bit memory move instructions to identify the location in the code. This is the smallest amount of code that you can add when instrumenting. As a result we have very little intrusion, and that is why we created a hardware version in the first place, so developers could get as close to the running code as possible with little or no effect on the execution.

With the software version you are adding function calls into the code and linking in a small library into your application so it is more intrusive. The software version will give you relative information, so it is not absolute timing information but still more than adequate to answer, with certainty, questions about application performance.

Richard: The trace, performance and memory tools are all clearly dynamic, examining running code, is the code coverage tool also dynamic? Does it simply assess logic paths or does it look at what actually gets executed?

Greg: It's a dynamic tool so as test cases are executed we are looking at the code which gets executed. We look at code coverage in several ways. We can look at what statements are covered, we can look at the decision level, are all the decisions executed. The greatest detail comes from our modified condition decision coverage analysis which gets down to asking ?has every outcome of every decision been executed,' given the test case that you are running.

Richard: I think we have spoken about all the analysis tools except perhaps memory analysis.

Greg: Yes. The memory analysis tools are designed around being able to understand how memory allocation works in the Symbian OS. It gives you memory information that covers not only the allocations being done by your code but also those being done by the operating system.

In the UI all these allocations are color coded to make them easy to assess. Actually an important point is that all these tools are part of an integrated suite with a common user interface. So if you have the trace analysis and memory analysis tools you can see the memory allocations as they relate to the module traces, all in a clear visual interface. It also means that one set of instrumentation support all the analysis tools which keeps the instrumentation overhead low.

mem_data_src_highlight.jpg - 37258 Bytes

The CodeTEST source viewer highlighting a memory allocation

memory_data.jpg - 45949 Bytes

The CodeTEST Memory module GUI which shows the minimum, maximum, and average memory block allocations. It also shows the total current allocation by function and the percentage of maximum.

Richard: Clearly elements of the product will appeal to different developers, a device developer will want the hardware probe, a third party developer the software version. Does licensing allow developers to just license what they need?

Greg: Each of the probes and each of the four analysis tools can be licensed separately. We would see a device manufacturer taking maybe a couple of hardware probes and a handful of software probes for devices and then just about every one who buys the tool would have the native probe. What you license will really depend on how closely you are working with hardware. Therefore we have designed the licensing very much so customers can mix and match to suit specific needs.

Richard: What sort of interest are you seeing in the tools, I assume that betas have already been with some of your clients?

Greg: We cannot talk about individual clients, but several major manufacturers have already been evaluating the tools. We are seeing the manufacturers getting to the point where they are looking for tools that can help them assure more tightly the code quality of the systems they are producing. I think that 2004 will also see an upsurge in interest from third party developers in these issues. As applications get more complex we clearly have to tools the ride that wave of interest.

Richard: So what does 2004 hold in store for Symbian tools at Metrowerks?

Greg: We have a roadmap of releases scheduled for throughout the year which is intended to synchronize with what Symbian is releasing into the market. Our Symbian tools are really strong sellers in our wireless tools portfolio and we are committed to working with Symbian to provide the tools to support making Symbian OS a world class wireless platform.


Metrowerks CodeTEST tools are in our view a major step in the maturing of Symbian OS, both in terms of the technical support for developers but also as a further sign that Symbian OS is becoming a mainstream development environment.

CodeTEST is price at a level which will appeal to the more successful small Symbian developers upwards to large software houses and device manufacturers. All four native software probes are priced around US $3000, the software tools for use on a device are around US $8000 for all four, or about US $3000 each. The probes for the hardware in circuit version start at $15,000 and $15,000 for the modules.

Web: www.metrowerks.com

 


Close    To Top
  • Prev Article-OS:
  • Next Article-OS:
  • Now: Tutorial for Web and Software Design > OS > Symbian > OS Content
    Photoshop Tutorial
     

    Special Effect

      3D Effect
      Photoshop Articles
    Programming Tutorial
     

    C/C++ Tutorial

      Visual Basic
      C# Tutorial
    Database Tutorial
     

    MySQL Tutorial

      MS SQL Tutorial
      Oracle Tutorial
    Geek Tutorial
     

    Blogging Tutorial

      RSS Tutorial
      Podcasting Tutorial
    Graphic Design Tutorial
      Coreldraw Tutorial
      Illustrator Tutorial
      3D Tutorials
    Webmaster Articles
     

    Domain Service

      Web Hosting
      Site Promotion
    Java Tutorial/ Articles
     

    Java Servlets

      JavaEE Tutorial
     

    JavaBeans Tutorial

    XML Tutorial/ Articles
     

    XML Style

      AJAX Tutorial
      XML Mobile
    Flash Tutorial/ Articles
     

    Flash Video

      Action Script
      Flash Articles
    OS Tutorial/ Articles
      Linux Tutorial
      Symbian Tutorial
      MacOS Tutorial
    Personal Tech
      Hardware Tutorial
      Software Tutorial
      Online Auction