Many companies have implemented quality programs such as CMM®, TQM, Six Sigma, etc., to improve requirements and software development. However, these initiatives often focus on building the software right-meeting quality expectations and specifications-but do not necessarily focus on building the right software-the right functionality at the right time and at the right cost from the customer's perspective. Unmesh Gundewar explains how EMC employed the Goal, Question, Metric (GQM) methodology to identify key measurements that ensure the "right software" is being developed. Learn how EMC applies the Six Sigma approach to drive these measurements into the organization and the resulting software. Move beyond the processes designed to get functional requirements and specifications right as Unmesh shares experiences, the challenges faced, and lessons learned from building the right software.
Testing an application's robustness and tolerance for failures in its natural environment can be difficult or impossible. Developers and testers buy tool suites to simulate load, write programs that fill memory, and create large files on disk, all to determine the behavior of their application under test in a hostile and unpredictable environment. Herbert Thompson describes and demonstrates new, cutting edge methods for simulating stress that are more efficient and reliable than current industry practices. Using Windows Media Player and Winamp as examples, he demonstrates how new methods of fault injection can be used to simulate stress on Windows applications.
Runtime fault injection as a testing and assessment tool
Developing real-time, automated testing for mission-critical programmable logic controller (PLC)-based control systems has been a challenge for many scientists and engineers. Some have elected to use customized software and hardware as a solution, but that can be expensive and time consuming to develop. Reginald Howard shows you a way to integrate a suite of commercially available, off-the-shelf tools and hardware to develop a scalable, Windows-based testing platform that's capable of performing an array of different tests including, but not limited to, black box, destructive, regression, and system security testing. He describes the use of the Jelinski-Morana statistical model for determining expected results from automated tests.
Reginald Howard, Advanced Systems Integration Inc. and Jon Hawkins, Alliance Technical Solutions
The New York Stock Exchange (NYSE) traded over $10 trillion last year. Three years ago, NYSE established an initiative to improve the productivity and quality of software validation efforts. Learn the key architecture and infrastructure elements of that initiative.
The Graybox Testing Methodology is used to test embedded systems. Recent studies have confirmed that the Graybox method can be applied in real-time using software executing on the target platform, expanding the capabilities of this method to include not only path coverage verification but also worst-cast/best-case path timing. Learn how this methodology has been applied in a real-time environment to validate mission-critical embedded software systems.
Large companies often have multiple software development projects running at the same time. Getting enough infrastructure in place to test these projects concurrently, however, can be very difficult. A High Speed Testing Methodology (called "Testing Trains") has been developed to perform system/acceptance testing for large-scale projects in two-week periods. Learn how Testing Trains can be successful in delivering bug-free software on schedule for your organization.
Increasing complexity and functionality of digital systems--coupled with time-to-market constraints--pose quality challenges. Strategies often include a mix of new development with the integration of pre-existing components from multiple sources. Ann Miller presents some of the software engineering and software management lessons learned from eight years on a large commercial satellite program, as well as several years on military satellite programs. This presentation focuses on the planned evolution of large-scale systems from the design and build of smaller components based on an end-to-end system backbone.
Today's large-scale enterprise applications are all Web-enabled and complex in nature. Many users experience performance problems from day one. Performance evaluation and measurement via extensive testing is the only practical way to raise and address all issues prior to a successful deployment. Learn how to tackle performance and capacity issues with the appropriate testing strategy and scalable infrastructure/architecture.
In testing utopia, all software products submitted for testing have thorough and comprehensive documentation describing how every program function should work. On planet Earth, however, test engineers usually have to make do under less-than-ideal circumstances. It's not uncommon for test engineers to be asked to verify the functionality of a critical legacy system which has no documented requirements whatsoever. While there are many reasons this can happen, the result is the same: You assume the role of an archeologist sifting through the layers of clues to reconstruct the specifications. Patricia Ensworth gives you instructions and tools so you'll be ready to roll up your sleeves and dig.
While we can't guarantee that our software will never fail, we can take serious steps to reduce the risk. The toughest kind of system to build involves safety-critical software where the reliability requirements are extremely strict-and whose failure puts lives in jeopardy. Shari Lawrence Pfleeger looks at what "solid software" means, and explores ways we can achieve it. She examines solid software within the context of the proposed National Missile Defense System.