|
API Design for Testability Many who try to unit test their applications-whether using agile or traditional methods-quickly find that doing a thorough job can be difficult if the code was not designed with testability in mind. Roy Osherove describes dependency injection methods for designing APIs so that they are easier to test. He explains how design patterns can help and how to implement applications with interface-based programming. Roy shares his insight on what "evolving a design" really means in the context of test-driven development. For those who are living with legacy code, he discusses special techniques for managing and implementing unit testing. In addition, Roy discusses the build life cycle and how continuous integration fits into the mix.
|
Roy Osherove, Team Agile
|
|
The Gentle Art of Pair Programming Based on their experiences as software developers and the pair programming practices they use at Oxygen Media, Wendy Friedlander and Oksana Udovitska describe the principles of pair programming, explain why it is a worthwhile practice, and show you how to get started. They share ways to take full advantage of pairing and how to cope with its challenges. For those new to pair programming, this class serves as a good introduction and includes concrete first steps for getting into a new way of programming. For those already working in a pairing environment, Wendy and Oksana include some novel viewpoints and interesting discussions on familiar topics. Additionally, everyone will benefit from the interactive and fun games for improving and enhancing communication skills. Being women in a male-dominated profession gives Wendy and Oksana unique perspectives and insights into pairing which they are eager to share.
|
Wendy Friedlander, Oxygen Media
|
|
Architectural Envisioning on Agile Projects One of the common misperceptions with agile software development is that agilists don't "do architecture." This completely ignores the 11th principle of the Agile Manifesto which states that the best architectures evolve over time. In this article Scott Ambler overviews an agile practice called "architecture envisioning" which enables you to gain the value from modeling without the cost of needless documentation.
|
|
|
The Coming SOA Revolution: What It Means To Testers Applications deployed with service oriented architectures are implemented as producers and consumers of services. Testing a Service Oriented Architecture (SOA) application is unlike anything you've done before because every service can be invoked by consumers of whom you have no knowledge. This requires you to understand the specifications of those services in order to build valid, robust tests. Before SOAs began appearing in IT organizations, testers often dealt with lack of management commitment, poor testing tools, and minimal testing environments. Now, with SOA, the risks of failure are high, and the powerful processes, protocols, and tools that software developers use to build applications can also be used by testers to verify, validate, and test SOA applications.
|
Frank Cohen, PushToTest
|
|
Points of Defect Creation: Speeding Detection and Correction Software development methodologies try to improve quality by promoting the tactic of testing "early and often." When a defect is detected, a report is filed, the developer tries to reproduce and repair the problem, and then testing must verify that the modification corrected the problem and did not create any new problems. Because it doesn't prevent the same types of errors from recurring, this approach is time consuming, costly, and inefficient. Errors are introduced into the product at various stages- requirements definition, design, and coding. If we focus our efforts on eliminating defects at the points of error introduction, we can reduce the time spent on error detection and correction. Shankar Krishnamoorthy discusses the best practices for error prevention that Aspire Systems has discovered in their experience of developing almost three hundred products.
|
Shankar Krishnamoorthy, Krishna Sivaramakrishnan, and Aparna Venkateshwaran, Aspire Systems
|
|
SOA Governance: The Process Change Required for Succcess The SOA revolution is already underway in many IT organizations. SOA creates new cultural, organizational, and technological challenges that must be met to ensure success. Merely implementing web services and enterprise service buses will not address the key issues in building organizational support and standardized adoption throughout the organization. Without the proper organizational process infrastructure, you will be left with SOA program chaos and SOA infrastructure shelf ware.
|
David Butler, Hewlett-Packard
|
|
Real World SOA: From Concept to Application Service Oriented Architecture (SOA) is becoming a widely adopted approach for enterprises to attain agility and economy while meeting their Information Technology (IT) needs. Unlike previous attempts at component based software development efforts, development in SOA environments stresses code reuse through development, deployment, and orchestration standards. Frank Cohen explains the major trends currently in play that impact the use of XML in SOA and how a new base of computing technology using composite applications, Registry/Repository, Enterprise Service Bus (ESB,) Master Data Management (MDM), Database, and SOA protocols and practices deliver a solution. Frank begins with the SOA basics, explains their applications, and shares specific metrics that you can use to govern your SOA efforts.
- Identify where SOA is applicable, and where it is not
- The importance of performance and scalability
|
Frank Cohen, PushToTest
|
|
Better Software Conference & EXPO 2007: The Art of SOA Testing: Theory and Practice Service Oriented Architecture (SOA) based on Web Services standards has ushered in a new era of how applications are being designed, developed, and deployed. SOA's promise to enable the development of applications that are built by combining loosely coupled and interoperable services poses new challenges for testers and everyone involved with the software reliability and security. Among the challenges are dealing with multiple Web Services standards and implementations, legacy applications (of unknown quality) now exposed as Web services, weak or non-existent security controls, and services of possibly diverse origins chained together to create dynamic application implementations. Join Rizwan Mallal to learn concepts, skills, and powerful techniques-WSDL chaining, schema mutation, and automated filtration-needed to meet these challenges.
|
Rizwan Mallal, Crosscheck Networks
|
|
What Snake Oil Is Your Organization Buying Today? As always, the snake oil bandwagons are circling your organization. But unlike snake oil, a purported health supplement of old, modern organizations bet their success on technologies with often equally dubious claims. Did your organization jump on the CORBA bandwagon? It's now dead. How about outsourcing? Have you discovered all the hidden costs and quality problems yet? Perhaps you were mesmerized by Extreme Programming-a fading religion that once had many believers but few actual practitioners. There are many other software religions with many practitioners but few real believers. Do you use sound business judgment in choosing your technologies and methodologies? Or do you choose it because you heard an impassioned presentation by a noted expert? Ungrounded choices based on testimonials place us squarely back in the days when snake oil salesmen crisscrossed the land.
|
James Coplien, Nordija A/S
|
|
A Classic Example Many systems architects have a technology—centric view of service-oriented architecture. This article emphasizes the need to understand the business side of SOA before tackling the technology and illustrates this need with a look back in time.
|
|