“xUnit Test Patterns: Refactoring Test Code”, Meszaros, 2007, 944pp, discusses reuseable software design patterns for testing. This begins with agile techniques, and proceeds through refactoring to automation unit testing. The test-driven development process is detailed with principles to observe, and ways to reduce bad object-oriented coding smells and to minimize the test effort and costs while maximizing benefits. Scripting using the same language as the system under test is termed xUnit. Tests are written, parameterized, converted to utilities, given the ability to verify their own correct operation, and correlated to recognize dependencies on other tests in order to self-organize their execution. Many code samples are shown. Databases can be added to handle complexity if necessary. Test automation maturity is derived based on CMM. Book site.
Archive for February, 2008
Posted by cadsmith on February 22, 2008
“Game Testing All in One”, Schultz & others, 2005, 511pp describes how software testing techniques can be applied to games. After a humorous introduction orients the reader to the differences between gamer and tester approaches (e.g. rules 1 & 2 taken from Hitchhiker’s Guide, & X-Files or Ice-Nine, respectively), the authors reveal their knowledge of some popular titles as well as methods for improving the user’s experience. Book chapters have exercises answered in appendices. The contents demonstrate how to dissect a game for testing, and drive the software and hardware components in both well-defined and ad-hoc fashions. Testers get to know the games inside out and often spend weeks working through the various phases until release. Beta, online and multiplayer testing are also covered. Automation tools are used (since the game AI usually isn’t responsible for the testing part, too). Document, form and test flow diagram templates are detailed in an appendix. There are links to some commercial and public-domain tools to support the effort, e.g. documentation in a wiki.
Testing of mobile devices is covered in a recent webcast. Equipment costs can be lowered using combined analyzer and generator components local to a test station or connected using web-enabled LXI and IEEE 1588 timing.
Posted by cadsmith on February 17, 2008
“Practical FPGA Programming in C”, Pellerin & Thibault, 2005, 464pp, is a guide to using Impulse C to create FPGAs. Parallel process threads share memory, streams, signals and registers between them to be written/posted by one and read/waited by another. Streams are first-in-first-out (FIFO) buffers. High-level code can be simulated and translated to VHDL & RTL. Each thread becomes a unique process or logic block initialized at start time. This makes it possible to create an embedded testbench to run component unit tests, system evaluations, test generators or simulators in mixed software and hardware. Platform FPGAs have 32-bit processor cores such as Xilinx & PowerPC, or Altera & ARM. Since the C code is untimed, clock synchronization requires editing the HDL. Synthesis tools such as Streams-C and embedded operating systems such as uClinux can be used. Additional news.
Posted by cadsmith on February 11, 2008
“Effective Methods for Software Testing”, 3rd edition, Perry, 2006, 1008 pages provides a comprehensive summary of the subject. Software testing organizations can be built using the methodology described in this book. It emphasizes enterprise systems which have central business functionality and details a seven-step testing process. This is then applied to other types of agile testing for client/server systems, rapid application development, off-the-shelf packages, multiplatform, security, data warehouse and web-based systems. The textbook is written as a guide that includes checklists and fill-in-the-blank forms to complete the steps of the process. It defines relevant terms and the roles of testing within the organization including how risk is analyzed, measured, and mitigated and how software quality can be improved. This is a high-level treatment which handles projects of large scope. Specific tools, languages, hardware or vendors are not covered beyond identifying their types. Readers involved in other forms of software (e.g. mobile, embedded, virtual, storage media, UML, drivers, or firmware) might seek additional sources.
Posted by cadsmith on February 9, 2008
“Innovate Like Edison”, Gelb and Caldicott, 2007, 300pp, discusses a framework to describe the inventor’s overall approach to problem-solving for consumer and business products and services. There are some extensions that could be made given a web component, e.g. less necessity of geographic proximity and more analytics. The book supports the practices of experimentation and journaling which are useful in test environments. The market is what drives innovation according to Edison. It is what led to his ideas, notebooks and drawings, lectures and founding of the journal Science. He excelled in experimentation, persistence and learning and pioneered methods of collaboration and teaching. This book captures some of the energetic style of this well-known American inventor of the 20th century phonograph, light bulb and motion picture projector among over a thousand patents. The book discusses his biography, contemporaries, society and creative influences including Shakespeare and Abraham Lincoln. He formulated a core culture that could be used across industry business models which included brand name, manufacturing, marketing, open communication, geographic proximity, and leader networks.