Contributed by IBM - Rational Software
Make testing a first-class citizen in the software development life-cycle
Developer testing, user testing, outsourced testing, ad-hoc testing. However it works in your organization, testing plays a crucial role in the successful delivery of today’s complex, heterogeneous, business-critical software systems.
As software development is becoming more sophisticated, companies are discovering that when armed with the right tools, processes, and people - testing teams add tremendous value in solving the complex problem of delivering high quality enterprise software systems.
This realization comes at a critical time - when IT organizations and development teams are being asked to address a new set of challenges.
Predicting the ability of software systems to be self-managing and self-healing, rapid assembling and testing of services-based applications, managing outsourced testing projects, and using test and validation processes to support regulatory compliance audits; these are all new challenges that even the most savvy IT organizations struggle with. Faced with these new challenges, the focus on processes and tools to improve quality, customer satisfaction, and company agility has never been higher.
Start quality initiatives early to avoid costly mistakes
Injecting quality into a software system at the end of the life cycle tends to be a losing proposition. By then, architectural flaws, missed requirements, and an enormous backlog of defects are too much to recover from without missing that critical window of opportunity to bring new products to market. Implementing a more proactive approach that supports team communication and iterative and early testing allows you to avoid or detect flaws early in the software life cycle. With the escalating cost of fixing a defect as the development life cycle progresses, it’s clear that a prudent approach to delivering a high quality software system includes managing what you are building, along with how you are building it, from the beginning of the project. With this approach, all team members have a clear view of the business objectives, requirements, and key use cases of the software application at each phase of development and testing.
This critical sharing of development information can be achieved through the use of a common development and communication platform, upon which practitioner productivity tools can exchange data in real-time.
Use a common team communication platform
The IBM® Rational® Software Development Platform provides an open platform of team communication and practitioner productivity tools to help ensure that development artifacts are managed and shared, and that processes are enforced across the entire team. Test management and planning capabilities are tightly integrated into the Rational Software Development Platform and with test practitioner automation tools. With this integration, testers have real-time access to the project’s business and functional requirements, use cases, and service-level agreements.
Figure 1 - Link test and development artifacts
The benefit of this tight integration is two-fold. First, by tying test cases to software requirements, testers can identify and focus their testing on the most critical capabilities of the software system and can easily stay current with changing requirements. Second, development activities that are initiated from test results, such as defect repairs and enhancement requests are traceable to test results and requirements. This help to ensure that test teams can monitor the progress of engineering work that impacts the test cycle, and that software repairs can be evaluated in context of the business requirements that they impact.
Integrating workflows and sharing data among analysts, developers and testers are best practices for establishing an early focus on quality and preventing, rather than reacting to, breakdowns in communication.
Write high-quality code
Figure 2 – Automate identification of performance bottlenecks early
When coding begins, tools for developer testing can help continue the focus on quality. Component test and run-time analysis tools help developers write faster, more reliable code. IBM Rational PurifyPlus™ provides memory corruption and leak detection, performance profiling, and code coverage analysis for JavaTM, C/C++, managed VS.NET languages, Visual C/C++ and Visual Basic applications on heterogeneous platforms. For developers building embedded and other pervasive computing products, IBM Rational Test RealTime provides a cross-platform component test and run-time analysis solution for Java, C and C++ development. With Rational Test RealTime, developers can perform target-based component testing to help ensure the correct operation under a variety of deployment environments. For development teams focusing on Java, J2EE, Web, Web Services and Portal applications, integrated quality capabilities to perform coding standard reviews and component and Web service testing are part of the IBM Rational Application Developer for WebSphere offering. This early and continued focus on quality, supported by test automation tools, can weed out performance bottlenecks and coding errors before troubleshooting and correcting these problems becomes more costly.
Leverage automation across the entire test and development team
Effective automation begins with integrated test management
Effective test automation begins with implementing a team-based, test management solution. IBM Rational TestManager provides a central tool from which all test planning, test execution, and results analysis can be managed. Even teams using all manual testing techniques will find that a test management solution is critical for effective control and management of testing projects. Rational TestManager is the hub through which the integration of test and development artifacts, such as test plans, test cases, requirements, code, and defects are managed.
Figure 3 – Comprehensive test analysis reports
This integration ensures that test planning activities and test results are traceable to the software development project objectives and requirements. Test and validation results can be rolled up into an executive dashboard to provide insight into the quality metrics that are needed to make informed “go-live” decisions. Implementing a team-based test management solution will help the entire team to stay up-to-date with test plans and progress, thus minimizing last minute quality issues that can derail your projects on-time delivery.
Improve test efficiency and accuracy through automation tools
After gaining control of test management, automation of test execution and results analysis is the next area of process and tooling improvement that most testing teams address. The benefits of test automation are shortened test cycles, improved quality through broader and deeper test coverage, and more accurate, reliable, and reproducible tests. IBM Rational Functional Tester Plus provides teams with a test automation toolkit to test a wide variety of heterogeneous applications. Included in Rational Functional Tester Plus are IBM Rational Functional Tester and IBM Rational Robot.
IBM Rational Functional Tester is a test automation tool to develop sophisticated tests to validate the functionality and use cases of Java, Web, .NET, 3270/5250, VT100, and Siebel® applications. Testers and developers alike can leverage Rational Functional Tester’s use of industry standard languages - Java and VB.NET - and integration with Eclipse and Microsoft Visual Studio .NET to build powerful, customized, automated tests. Through integration with the test management system, testers can centralize test execution and results analysis of both automated and manual tests and better ensure the traceability of test results to upstream requirements and downstream defects. To help ensure your investment in test automation is protected and changes are tracked, Rational Functional Tester includes IBM Rational ClearCase® LT for version control of automated tests.
Figure 4 - Powerful test automation development
Rational Functional Tester is not just for testers. Developers can benefit from Rational Functional Tester by leveraging its capabilities to develop and execute a suite of automated tests to validate each software build before it moves on to full system testing. For additional automation, the execution of these automated tests can be tied to the build process. This allows developers to leverage automation and off-hours cycles to test an application’s stability and functionality. Automating build validation testing will help eliminate the wasted man-hours that result from deploying faulty builds into the test-lab or system test environment.
IBM Rational Robot, also a component of Rational Functional Tester Plus, provides test automation for applications created with Microsoft Visual Basic, C/C++, Oracle® Forms, Borland® Delphi® and Sybase® PowerBuilder®. Both Rational Robot and Rational Functional Tester test scripts can execute from Rational TestManager’s centralized execution and management system.
This common management system helps to ensure tight integration of test results and plans, regardless of which test script development tool is used.
Since most testing teams employ a combination of manual and automated testing techniques, Rational Functional Tester also includes IBM Rational Manual Tester, a solution to document detailed, manual tests and to improve manual testing accuracy and speed through automation of common error prone tasks. Rational Manual Tester also helps teams with the transition from manual to automated testing by promoting automation best practices such as test modularity and reusability.
Figure 5 - Automating manual tests environment
Business analysts and subject-matter experts who perform application testing can also leverage Rational Manual Tester to improve and integrate their testing with the broader testing efforts across the development team. To meet the needs of your team, Rational Manual Tester is offered as both a stand-alone tool and is included with Rational Functional Tester.
Validate scalability and service-level agreements
Figure 6 - Isolating scalability problems before you go live
Ensuring that a software application can scale and perform to meet service level agreements and user expectations is one of the most difficult yet critical tasks in the testing process. A software application that meets all its functional requirements but not the end-user’s responsiveness expectations will ultimately be a failed software development project. IBM Rational Performance Tester provides a solution to perform load and scalability tests on J2EE, Web-based, Siebel®, and SAP® applications and their infrastructure. Rational Performance Tester is a highly scalable and easy-to-use solution for the development, execution, and analysis of performance and scalability tests. J2EE transaction breakdown capabilities and remote system resource monitoring allow testers to pinpoint the source of performance bottlenecks. Through integration with IBM Tivoli® composite application management solutions, performance data from a production environment can be captured and delivered to the developer’s desktop, creating a closed-loop performance problem isolation and repair process. Through integration with IBM Tivoli monitoring solutions, teams can capture extended system resource data for more granular problem isolation.
Rational Performance Tester can also help you to achieve a better return on your hardware investments by executing pre-deployment capacity planning tests to size the server resources needed to achieve the desired performance and throughput.
Integrate packaged application testing into your process
Many core business systems are a combination of new development, legacy back-office systems and integrated packaged applications. To ensure that you have support for test management and test automation of heterogeneous application environments, Rational has extended its functional and performance testing capabilities to support Siebel and SAP solutions. IBM Rational Functional Tester for Siebel Test Automation and IBM Rational Performance Tester for Siebel Test Automation extend the capabilities of Rational Functional and Performance Tester to Siebel 7.7 and 7.8 applications. Using these extensions, your Siebel implementation teams can validate the business use cases of core and customized Siebel implementations, and ensure that the systems will scale and perform to meet end users needs. For customers implementing SAP applications, IBM Rational Performance Tester for SAP Solutions supports performance and scalability testing of SAP 4.6 and 4.7 solutions. Both the SAP and Siebel performance testing solutions can help improve application quality, increase the return on investment of your IT infrastructure through capacity planning tests, and reduce the cost of scalability testing with reusable test scenarios that can emulate a large population of users. And because these solutions are integrated with the Rational Software Development Platform, your teams can better ensure that they are managing packaged application testing with the same level of requirements-to-test traceability, audit-ability, and attention to quality metrics as with other software development projects.
Integrate mainframe application testing into your process
Many companies rely on an integrated set of mainframe and distributed platforms to run mission-critical software applications. If that sounds like your organization, you can benefit from Rational solutions to test main frame based software applications. IBM Rational Functional Tester Extension for Terminal-Based Applications brings all of the power of Rational Functional Tester to test the use cases of 3270 (zSeries), 5250 (iSeries) and VT100-based applications. For customers who are deploying workload-intensive Web-based applications, IBM Rational Performance Tester for z/OS provides the ability to use IBM System Z hardware as a high-scalability load-generation agent for Web-application testing.
Use testing rigor to help comply with regulatory requirements
Meeting regulatory requirements is more than a legal obligation — it is an opportunity to improve your organization’s software development transparency, oversight and results. By adopting a business-driven approach to regulatory compliance management, your team will replace ad hoc or unstructured processes with a streamlined and self-documenting software development life cycle. With test management and automation solutions integrated with your development platform, your team will be better able to demonstrate traceability between tests and regulatory requirements, provide detailed reports on the steps taken to validate requirements, and help substantiate that automated processes and controls are operating as specified. For additional value, Rational Manual Tester can also be used by your compliance team to document and execute structured tests against non-software business and IT controls.
Treat outsourced testing like an extension of your team
Almost all companies will rely on some level of outsourcing in their IT organizations. Whether your goal is to speed development, lower costs, or increase innovation, successful outsourcing requires careful planning of expectations, work partitioning, and adherence to your quality processes and standards. Rational solutions for test management and test automation can provide a standardized platform of tools to enforce your quality processes, develop sharable test assets, and enable your management team to stay apprised of the return on investment of outsourced testing projects.
Figure 7 - Aligning Business, IT Operations and Development
Make IT lifecycle management a core competency
Establishing test excellence as core competency in your development team can make a measurable impact on the success of application deployments. Whether your software applications drive revenue, provide the “face to your customers”, open new markets, or support core business functions, how well your software systems meet their business goals can be directly attributed to your ability to implement processes and tools to support high-quality development. The key is for organizations to adopt a more holistic approach, an approach that takes a top-down, end-to-end view of the IT life cycle. Ongoing optimization efforts must be coupled with a new perspective that breaks down the silos on either side of the operations and development divide. Tools, metrics, and processes must be normalized across the organization to ensure that all real and virtual lines of business are equally measured and equally accountable for the success or failure of the business. Rational’s full life cycle of quality solutions, coupled with their integration to rational development and IBM Tivoli application management tools, can be the catalyst for the changes needed to truly optimize the effectiveness of your IT organization.
IBM, the IBM logo, eServer, Informix, iSeries, Rational, Rational Application Developer, Rational ClearCase, Rational ClearQuest, Rational RequisitePro, Rational Unified Process, RUP, Rational Software Architect, VisualAge, WebSphere, WebSphere Developer, WebSphere Developer Studio and zSeries are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc., in the United States, other countries, or both. Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others. References in this publication to IBM products or services do not imply that IBM intends to make them available in all countries in which IBM operates. Offerings are subject to change, extension, or withdrawal without notice. All statements regarding IBM future direction or intent are subject to change or withdrawal without notice and represent goals and objectives only.