Course code: COB-2
  • Years with company: 4
  • Years programming: 25
  • Primary programming language: C/C++
  • Other programming languages: Python, Java
  • Unit test harnesses: JUnit
  • Something else: I work on a range of software, primarily post crash analysis PC client tools that are used by the application developers to aid in diagnosing software bugs on the target platform. I also write software for the embedded 'C' platforms related to the capture and output of diagnostic information that is analysed by the post crash analysis tools.
  • Test practice now: On the most part "developer testing", exercising paths in a new piece of code until I have confidence it fulfils the formal/informal requirements. In some cases this requires exercising the same piece of code on multiple operating systems. Some regression testing is also performed using our automation system.
  • Target system: PC based (WIN32/UBUNTU/FEDORA), TM500 target (VxWorks/Linux)
  • Dev tools: Various IDEs Eclipse(Juno), Visual Studio (2005/2010/2013), CodeCollaborator,
  • Build time: 31-60 seconds
  • Coding standard: We have a coding standard which has historically been 'C' based until recently, but is gradually being revised to cover some aspects of C++ as well.
  • Function too long: Typically we rely on manual inspection. There are good code metric tools/plug-ins available but they are not used widely at present.
  • Code reviews: We use SmartBear's Code Collaborator tool to review all code changes.
  • Code time: 30
  • Test time: 30
  • Debug time: 40
  • Favorite thing about dev: The creativity it enables and the endless possibilities it provides. Creating tools that allow others to work more efficiently. Adding features that others may not have considered, that add real value to the end product.
  • Least favorite thing about dev: Maintaining poorly documented code where the author assumes the reader will understand the intent. Maintaining 'scruffy' code that does not conform to even the most basic of formatting and indentation rules.
  • Tdd knowledge: Improve code quality code by: + helping ensure features are thoroughly tested before new code is committed + enabling code to be regression tested to avoid re-introducing historical bugs + enabling refactoring to be undertaken with more confidence
  • Why are you attending: I'd like to understand how I can apply TDD to my development process. I am particularly interested in the automated regression testing aspects. I'm also genuinely keen to learn new ways in which I can produce less buggy code from the outset.