 |
|
 |
|
|
 |
|
|
 |
Testing & Debugging
| | |
|
|
Tools and techniques for testing, profiling, performance optimization, debugging and quality assurance.
|
Dr. Dobb's Journal May 2006 Jonathan Erickson Testing & Debugging (11.6 MB)
Debugging and Full System Simulation Jonathan Erickson Peter Magnusson explains how multiprocessing is driving the need for simulation in systems-level debugging. (MP3, 4:37 mins.)
Debugging & Embedded Linux Runtime Environments Rajesh Mishra Debugging in embedded Linux runtime environments requires an assortment of tools.
Interface: License Overload Warren Keuffel As open source becomes entwined with the profit sector, the ancient GNU Public License is showing its age. Will the new version help developers avoid the legal thicket of alternate licenses?
Software Build Tips & Tricks: Build Your Own Makefile Debugger
A Software Development Vendor Perspectives NetSeminar
Wouldn't it be nice to be able to set a breakpoint in a Makefile? Learn practical, applicable tips for troubleshooting software builds. Among other tips, you will learn how to turn GNU Make into an interactive Makefile debugger with the ability to set a breakpoint in a rule and then interactively discover macro values, definitions, why the current rule is being executed and more. If you’re spending valuable time uncovering the causes of broken builds, this is a presentation you won’t want to miss.
The Software Quality Lifecycle Yochi Slonim The current approach to resolving application problems--and ensuring software quality throughout the entire useful life span of the application--is not getting the job done.
Pragmatic Exceptions Benjamin Booth February 2006 Pragmatic Exceptions.
Viewing & Organizing Log Files Phil Grenetz LogChipper, the tool Phil presents here, lets you view and organize the contents of log files.
Dynamic Bytecode Instrumentation Ian Formanek, Gregg Sporar Dynamic bytecode instrumentation is an innovative technique that makes profiling fast and easy.
Pragmatic Exceptions Benjamin Booth January 2006 Pragmatic Exceptions.
Programming for Reliability Andy Chou Lessons learned from static analysis of millions of lines of code
Detecting Potential Deadlocks Tomer Abramson To avoid deadlocks, Tomer explains how to use tools that detect potential deadlocks each time code is executed.
Recursive Descent, Tail Recursion, & the Dreaded Double Divide Truck Smith What can you do when the wrong answer turns out to be right?
Achieve More Comprehensive Verification With Less Work Michael J. Hunter Test cases exist to verify that operations do in fact have the results they are expected to have. "Monkey at the keyboard" work---where what should happen is unknown or what happens is ignored--may be doing something but it certainly is not testing.
The Craftsman: Team Player Robert C. Martin Returning to Jerry, Alphonse gets a reprieve from Jasper's jollity and learns more about acceptance tests—alternate and otherwise—and the collaborative value of his own work.
Compile-Time Assertions & Debugging Klaus Wittlich It's common practice to use assertions to check invariants at runtime, but assertions can be equally useful at compile time for doing things like checking arrays for proper size and order.
Unit Testing & CxxTest Eric Gufford Unit testing can save you time and catch bugs early in the development cycle, but it can be tedious to set up. CxxTest is a framework that uses Perl to automate the creation of test classes for your application.
Efficient Testing of .NET Applications Steve Mostello The .NET software infrastructure brings both benefits and challenges to the application and test and QA engineers.
Assessing the VB6 Assessment Tool Mark Baker What is the best way to determine the effort needed to migrate a legacy Visual Basic 6 application to VB.NET?
Pragmatic Exceptions Benjamin Booth December 2005 Pragmatic Exceptions
Tip #4: Make Only the Actionable Obvious
Setting Up an Enterprise-Wide Testing Practice for Software Quality Optimization Alexandra Weber Morales This session will take attendees through the business planning and strategy basics for setting up an enterprise-wide testing practice for software quality optimization. The session will incorporate best practices culled from real-world experiences within several large corporations.
Important Factors For Test Automation Success Alexandra Weber Morales This web cast will focus on two important such factors: developing applications for testability and setting test automation standards that promote productivity. Attendees will learn how organizations can develop applications that facilitate test automation and, thus, optimize the overall quality process.
Test Automation: An Architected Approach Alexandra Weber Morales The particular architecture championed in this session is based on the idea of automation code as an application in its own right. Code reuse, encapsulation, recursion, object-oriented concepts, testing maturity and usability concepts will be covered.
Best Practices for Creating a Performance Testing Center of Excellence Alexandra Weber Morales This web cast provides you with a comprehensive outline for creating a testing center within your organization. The session details critical processes required for lab setup and preparation, efficient planning, script development, scalability testing and results analysis.
Lessons Learned Along the Performance Testing Road Alexandra Weber Morales In order to optimize performance, one must have an understanding of application behavior under real-world usage conditions. This web cast will be a guided tour through real-world experiences, exploring a selection of projects on which it was necessary to determine how each system performed under load - or even IF each system could perform under load.
Why Did My Build Break? Learn Effective Techniques to Debug Troublesome Makefiles Alexandra Weber Morales Join Usman Muzaffar in a fun and engaging discussion on how to effectively debug those troublesome Makefiles that keep you awake at night. If errors in command scripts or syntax errors have haunted you in the past, this is a discussion you won’t want to miss.
The Craftsman: The Trouble with Constants Robert C. Martin As Jasper tries to tone down and acceptance tests continue to fail, Alphonse learns something about message IDs—and perspective.
IBM/Rational Software Testing Tools Mike Riley Brian Bryson of IBM/Rational discusses its software testing tools. Brian also explains IBM's plans for the self-healing autonomic systems of the future and how this vision will alter the software testing process. (MP3 audio, 9:54 mins.)
.NET Winforms Testing Tools Mike Riley Andrew Flick of Infragistics talks about Test Advantage 2005 components that allow regression testing on Windows forms in the .NET Framework. (MP3 audio, 9:43 mins.)
Linux Kernel Debugging Dean A. Gereaux Dean explains how to debug drivers with Linux Kernel Debugger, add hooks into KDB from your drivers, and create KDB modules.
Debugging Heterogeneous Distributed Applications Stephen B. Jenkins Debugging complex, asynchronous, heterogeneous, distributed applications is hard. The techniques Stephen presents here makes the process easier.
Static Analysis, Security Holes, & Networking Code Andy Chou Static analysis, which examines source code at compile time, is an effective tool for spotting security flaws. However, scaling it to large codebases is a challenge.
Are Standards Enough for Web Services Security? Jeremy Epstein The set of Web services standards seems to grow by the day. But if a Web services implementation supports all of these standards, is it necessarily secure?
Getting Runtime Info from the CLR Mark Baker Using the System.Diagnostics namespace, you can update the Trace class to dump out some useful diagnostics about where the Trace object is being used
Using Hardware Trace for Performance Analysis Michael Lindahl Michael examines embedded-systems performance-analysis techniques, and discusses some of their inherent limitations.
The Eclipse Test and Performance Tools Platform Andy Kaylor The Eclipse Test and Performance Tools Platform provides open Standards for interoperability.
What's in a Name? Robert C. Martin When Alphonse gets carried away with refactoring, Jasper reins in his excess enthusiasm with a timely reminder about the necessity of testing. Ouch!
The Proof Is Out There Mike Riley Smart developers know testing is one of the most important phases in the development lifecycle. Yet, testing software is like playing Go—easy to learn, but difficult to master. These testing tools can offer you an edge.
Reverse Engineering Jonathan Erickson John Blattner discusses reverse engineering in general, and the unique demands of reverse engineering real-time embedded systems in particular. (MP3 audio, 4:19 mins)
Lightweight Tracing in C# Mark Baker What is a good way to implement tracing in my application?
Programmer's Progress Robert C. Martin As Jasper struggles to quell his condescension, Alphonse explores the intricacies of eradicating error messages one by one—and both recognize that they're really learning something.
Testing Web Applications Sean Dawson, Kristin Kerr Sean and Kristin automate web application testing by integrating JWebUnit into Hippo's existing test framework.
Code Coverage for C Unit Tests Ryan Bloom Gcov is a test coverage program that's part of the GCC suite of tools.
When Enough's Enough Robert C. Martin After Alphonse suggests running tests in sequence, Jasper’s patronizing refusal rings
reluctantly true—and causes an unprecedented explosion
Deja Parallel All Over Again Gregory V. Wilson Do multicore processors, multithreaded programming, and replay debuggers have what it takes to do parallel computing right this time around?
One More Time Robert C. Martin Camaraderie hits rock bottom when Alphonse is assigned to another journeyman. But behind Jasper's gleaming grin and effusive exterior, he's got a point—much to our apprentice's increasing annoyance.
Are We There Yet? Karl Wiegers While pressured schedules are nothing new, in the long run, quality counts. But how do you know when you're done? Take these tips to create software that meets your stakeholders' needs—on time. By Karl Wiegers
Dr. Dobb's Journal June 2005 Jonathan Erickson Testing & Debugging
As software systems become more complex, testing and debugging become more important. In June, we examine techniques such as omniscient debugging and hardware-assisted breakpoints, and look at testing tools for Java and C#. We also take a look at TR1, the Technical Report on C++ Library Extensions, and the Linux 2.6 kernel. Then there's coverage of error messages, software reuse, performance monitoring, and more. (10.6 MB)
Hardware-Assisted Breakpoints Dmitri Leman Dmitri explains how to access debug registers on XScale-based CPUs from C/C++ applications.
Performance Monitoring with PAPI Philip Mucci, Nils Smeds, Per Ekman The Performance Application Programming Interface is a portable library of performance tools and instrumentation with wrappers for C, C++, Fortran, Java, and Matlab.
System Verification with SCV George F. Frazier The SystemC Verification Library speeds up verification of electronic designs.
Debugging Production Software John Dibling The Production Software Debug library includes utilities designed to identify and diagnose bugs in production software.
Dissecting Error Messages Alek Davis Error messages are the most important information users get when encountering application failures.
Examining Software Testing Tools David C. Crowther, Peter J. Clarke Our authors examine class-based unit testing tools for Java and C#.
Omniscient Debugging Bil Lewis With omniscient debugging, you know everything about the run of a program--from state changes to the value of variables at any point in time.
Managing COM Errors with Macros Mark Baker Macros can be used to handle rich error information from a COM object, and a well-designed one won't add bulk to the compiled code.
Rich Error Information John Calcote The RichError class provides a mechanism to instrument existing code bases for rich diagnostic composite error information, with minimal engineering overhead.
Analyzing Real-Time Systems with Hardware Trace Michael Lindahl Hardware trace is a debugging technology that captures a history of the instructions that a microprocessor executes.
Digital Bob Cratchit Rick Wayne Sift and clean your Java code with Agitar’s Agitator 2.0, and stay inside the lines with ILOG’s Rules for .NET. Also, jProductivity’s Protection! Pro repels freeloaders from your Java code, and two new tomes talk privacy and security.
Managing That Millstone Michael Feathers Legacy code is often used as slang for murky, difficult-to-change code. But to me, legacy code is simply code without tests. Whether you want faster performance, more features or manageability, the key is simple: instantaneous feedback via tests.
Using Trace to Debug Real-Time Systems Michael Lindahl Hardware trace data gives you full printf() debugging in a completely nonintrusive fashion.
Perl, VMWare, & Virtual Solutions Sam Tregar The Krang Farm is an automated build and test system created using VMWare and Perl.
Induce Us Not Warren Keuffel Proposed federal legislation threatens to clamp down on fair use of copyrighted material, turning developers' workaday explorations into felonies. What's going on here?
Scripts as Modules brian d foy brian shows how to have a script masquerade as a module. This makes automated testing far easier.
Eclipse Validators Lawrence Mandel Lawrence presents a validator plug-in that uses Eclipse markers and dialog boxes to display problems.
Me and My Shadow Rick Wayne Keep your server copy piping hot with XLink's ClusterReplica, morph .NET into Java with Stryon’s iNET, and get a simpler bug tracker: Excel’s QuickBugs. Also, don't miss these four tomes from Kerievsky, Sobell, Bejtlich and a Russian troika.
In the War Zone Robert C. Martin Is all this testing nonsense just make-work for morons? After toiling on the suit registration requirement for nearly four hours, the only production code the team's got to show for it is...
Virtual Platform Testing Mark Baker What is the best way to test an application on multiple versions of Microsoft Windows when hardware resources are scarce?
Creating Trace Listeners in .NET Michael Taylor The .NET Framework comes with powerful, extensible classes for debugging and tracing applications
Swiss Wisdom Robert C. Martin Avery's resistance to acceptance tests creates a stumbling block for the DTracker team, as our intrepid Alphonse remains neutral.
Automated Testing with the Perl Test:: Modules Andy Lester Andy uses Test::Harness and Test::Simple do do automated testing - a major tenet of Extreme Programming.
Prevention's the Cure Adam Kolawa Wouldn't it be nice to have a guru tell you which classic coding mistakes to avoid? Pattern-matching static analysis tools help you shift focus from finding bugs to coding cleanly.
Red Light, Green Light Robert C. Martin Taking the plunge into a safety-critical project, Alphonse and the team wrangle out an acceptance test—but competitive currents threaten to sink their progress.
RunTime Monitoring & Software Verification Doron Drusinsky Doron examines runtime monitoring, focusing on its application to robust system verification.
The Subversion Version-Control Program Jeff Machols The Subversion version-control program provides all the benefits of CVSalong with many improvements.
C++ and the Perils of Double-Checked Locking: Part II Scott Meyers, Andrei Alexandrescu In this installment, Scott and Andrei examine the relationship between thread safety and the volatile keyword.
Building Callout Controls Thiadmer Riemersma Thiadmer's balloon-style Windows control is configurable for many purposes.
Performance & System Testing Thomas H. Bodenheimer When collecting performance data from dozensif not hundredsof computers, automation is a necessity.
Pseudorandom Testing Guy W. Lecky-Thompson Guy examines how you can test objects by creating specific test harnesses with verifiable datasets.
Testing Java Servlets Len DiMaggio Java servlets differ from other types of programs, thereby affecting your testing strategies.
The Testing Toolbox Frank Cohen With these 10 tools, Java scalability, performance and functionality are no longer elusive. Chockful of techniques, they enable software developers, QA technicians and IT managers to effectively proof programs.
Tech Tips George Frasier Enumerating registry subkeys in D, debug formats in GCC, and null iterator types for STL.
C++ and The Perils of Double-Checked Locking: Part I Scott Meyers, Andrei Alexandrescu In this two-part article, Scott and Andrei examine Double-Checked Locking.
A Heisenberg Compensator for Measuring Software Performance Gary Carleton, Charles Spirakis Measuring software performance without affecting the performance of the system being measured.
Perl Benchmarking Glenn Wood Perl is compiled each time it is run, and classes and methods can be redefined after they have been initially defined, at runtime. This feature can be used to implement a powerful, easily used, generalized benchmark harness.
Debugging Standard Containers with GDB Herman Pijl Herman uses Standard containers as a tool when debugging with GDB, the GNU debugger.
Tracing Application Execution Tomer Abramson The most common and effective way to debug and get information about applications is to use some form of tracing. Tomer's technique transforms tracing from a "heavy" to "light" operation.
Debugging Real-Time Production Software Bill Pyritz Debugging real-time software is hard. Bill presents techniques that make the job easier, more efficient, and more reliable.
Ease of Use Equals Use Aaron Marcus What's user-centered UI development—and why does it matter? Developers tend to focus on functionality, forgetting that powerful tools become popular only if they're easy to use. Here's how to interview users, create personas and build applications that will resonate with your customers.
Software--The Root of the Problem Rosalyn Lum, Rick Wayne Step up on security with two new tomes, hop on the platform bandwagon with SlickEdit Studio and grab a discount on Motion Computing’s Tablet PC bundle. Also, Eclipse gets a new WYSIWYG GUI builder, and Mr. T. goes way, way wireless.
Exponential Testing Dana Cline See how one small lab, a manager and a mere handful of testers can go through hundreds of hardware and software configurations using modern virtualization software.
Making the Grade Jeff Langr Do parameterized types achieve Sun's goal to make Java code "clearer, safer, shorter and easier to develop?" Read on as we put J2SE 1.5 to the test. Part 2 of a series
Show Me the Structure Gregor Kiczales Aspect-oriented programming is all about crosscutting structure. Understand that, and it’s clear what direction AOP tools need to follow.
Genetic Algorithms & Real-World Applications Philip Joslin Genetic algorithms can play a key role in testing electronic testing tools.
C# & Electronic Test Instruments Andy Purcell With C# and I/O libraries compliant with the Virtual Instrument Software Architecture specification, you can create test and measurement applications—complete with GUIs.
Software Manufacturing Fred Wild Software manufacturing is the process of applying automated methods to produce software components.
Beats the Heck out of Grep Rick Wayne DtSerach 6.3 lets you offer near-instant searching of gigabyte-scale databases. Vordel's SOAPbox tests your app's compliance, InterSystems' Ensemble adapts divers artifacts to a consistent object model, and Panscopic's new Scope Server helps you build reports from XML documents on-the-fly.
The Business Case for Software Security Herbert H. Thompson, James A. Whittaker Is it possible to make a business case for software security?
Editor's Forum P.J. Plauger March 2004 Editor's Forum
We All Have Issues Rick Wayne Serena's TeamTrack keeps your projects on course; speed up CORBA with ORBexpress RT. Also, open your mind (and your app) with JewelBox Builder, and find foul-ups fast with Etnus's CodeRoad Bridge and TotalView.
|
|
 |
|
|
|