270 likes | 486 Views
Contemporary Application Development. Are Testing Teams and Techniques keeping pace?. Pete Couper AMR & Associates peter.couper@amr.co.nz October 200 3. Question!. How many of you have been in Testing Teams asked to transition from
E N D
Contemporary Application Development Are Testing Teams and Techniques keeping pace? Pete Couper AMR & Associates peter.couper@amr.co.nz October 2003
Question! • How many of you have been in Testing Teams asked to transition from • Mainframe environment, predominantly batch/file based interfaces, to • GUI based N-tier solutions with complex realtime integration across bespoke and shrink wrapped systems including integration to legacy systems running in vendor supplied frameworks (eg application server or .NET)? • What process changes, training and tools were supplied to help you with this transition?
Session Outline • Contemporary Application Development Defined • Contemporary Application Development – Challenges for Testing • Some Contemporary Testing Techniques • A look at a Contemporary Testing Team • Session Summary
Contemporary Application Development Defined • Dictionary definition of Contemporary • Date: 16311: happening, existing, living, or coming into being during the same period of time2 a: SIMULTANEOUSb: marked by characteristics of the present period : MODERN, CURRENT • Often Contemporary Application Development refers to :- • Methods, or • Tools
Contemporary ApplicationDevelopment Defined(cont.) • What do I mean by Contemporary Application Development? • Method used & Structure of Teams • Tools – both Development and Runtime • n-Tier, distributed • Mix of bespoke, shrink wrapped, legacy • Complex integration – sync and async • Web Services – internal and/or external • Cross organisation business process integration • Etc.
Contemporary ApplicationDevelopment Defined(cont.) • Emphasis on “Speed to Market” & ROI • Less Large Projects • Increase in Buy/Build • Agile Software Development Methods (XP, SCRUM, FDD, DSDM, ASD etc.)
Contemporary ApplicationDevelopment Defined(cont.) • Speed of Technology Change • Mix of Technology • Service Oriented Architecture (SOA) • Enterprise Application Integration (EAI)
Session Outline • Contemporary Application Development Defined • Contemporary Application Development – Challenges for Testing • Some Contemporary Testing Techniques • A look at a Contemporary Testing Team • Session Summary
Need fully integrated test environment Ability to test multiple delivery channels Changing requirements Ever Increasing Time Pressure Contemporary Application Dev. – Challenges for Testing
Complex test planning Lack of support for new packages Faults hard to identify/define Hard to match Prod. Environment Contemporary Application Dev. – Challenges for Testing(cont.)
Non-functional testing of solution Environment stability Testing on incomplete solutions Access, availability, data & date sync. issues Contemporary Application Dev. – Challenges for Testing(cont.)
Session Outline • Contemporary Application Development Defined • Contemporary Application Development – Challenges for Testing • Some Contemporary Testing Techniques • A look at a Contemporary Testing Team • Session Summary
Some Contemporary Testing Techniques • Develop a Test Strategy that • Takes an Enterprise Level view of testing • Covers all existing Systems • Defines “How to” for Projects • Includes vendor testing – for both Business-as-usual and projects • Covers the Testing Teams involvement throughout the SDLC
Some Contemporary Testing Techniques(cont.) • Test Planning is more complex • Multi system, fully integrated, data driven, external interfaces, delivery channels, new packages, mix of technology, multiple vendors, incomplete solution, non-functional testing, etc. • Plan to Test early • Testers review functional and non-functional requirements specifications prior to sign-off • Testers review Use Cases and define alternate flows in Use Cases, again, prior to sign-off • Test iterations as they become available
Some Contemporary Testing Techniques(cont.) • Plan to allow Testers flexibility • Testers should be encouraged to follow “hunches”, not simply stick to a rigid script • Plan to include Non-functional testing • Test the System “-abilities” (Reliability, Scalability, Recoverability, Availability, Usability, Manageability, Compatibility, even Securability etc.) • Include a mix of testing techniques • Automated • Manual • Exploratory
Some Contemporary Testing Techniques(cont.) • Consider a Risk Based approach to testing • Define testing mission • Risk Assessment • Outside-In – “-abilities” • Inside-Out • Risk Prioritisation • Develop Risk Task List Aim – “Find the fundamental faults fast”
Session Outline • Contemporary Application Development Defined • Contemporary Application Development – Challenges for Testing • Some Contemporary Testing Techniques • A look at a Contemporary Testing Team • Session Summary
Glenford Myers Quote The design of “good” system test cases requires more creativity, intelligence and experience than required to design the system.
Glenford Myers Quote - Modified The design of “good” system test cases requires more creativity, intelligence, technical appreciationand experience than required to design the system.
A Contemporary Testing Team(cont.) • Test Team is expected to develop a comprehensive Test Plan • Faults need to be identified and reported to appropriate vendor • Ability to identify and prioritise risks • Non-functional testing scripts need to be developed and executed
A Contemporary Testing Team(cont.) • Test Teams need Testing Professionals • Testing Professionals need to understand technology • Business resources added to the Test Team need to be trained and mentored • Consider outsourcing technical testing tasks e.g. Test Planning, Performance Testing, Reliability Testing
Session Outline • Contemporary Application Development Defined • Contemporary Application Development – Challenges for Testing • Some Contemporary Testing Techniques • A look at a Contemporary Testing Team • Session Summary
Session Summary • Contemporary Application Development has increased the complexity of software solutions • This complexity directly impacts on testing • The effectivenessof testers will reduce if they do not change how they approach testing
Session Summary (cont.) • Comprehensive Test planning is critical when testing a complex software solution • It is vital the Testing Team contains the experience and technical skills required • Test Professionals are essential to ensure a quality outcome • Testing is a profession in its own right, it needs to be recognised as such
Session Summary (cont.) We have Contemporary Application Development Is it time that it is complemented by Contemporary Application Testing? Well I think it is!
THE END Questions?
References • James Bach – Satisfice Inc. – www.satisfice.com • www.Stickyminds.com • “Project Survival Guide” & “Rapid Development” - Steve McConnell • Dr. Magdy Hanna – International Institute for Software Testing – www.softdim.com/iist • Glenford Myers – “The Art of Software Testing” 1979 To get a soft copy of this presentation go to:- www.amr.co.nz