DEPARTMENT of INFRASTRUCTURE, ENERGY and RESOURCES “Acceptance Testing – How to do it!” The Acceptance Testing Kit Part 2 for Projects with an IT Enhancement or Procurement Component A Guide for Project and Acceptance Test Managers Version B August 2001 Information Management Branch Corporate Services The Acceptance Testing Kit – Part 2 Acknowledgments This Kit is the result of an initiative of the Information Management Branch of the Department of Infrastructure, Energy and Resources. Input was obtained from many individuals with experience in the field of Acceptance Testing, both internal and external to the Branch, and with particular knowledge gained from involvement with Projects with an IT enhancement or procurement component. In particular, the contribution of the following individuals in preparing this document is gratefully acknowledged: John Cuthbertson Information Systems Analyst DIER Gavin Plunkett Senior Consultant Prologic Allegra Huxtable Senior Business Analyst DIER 2 The Acceptance Testing Kit – Part 2 Table of Contents ACKNOWLEDGMENTS ............................................................................. 2 INTRODUCTION ................................................................................... 6 FOREWORD ..........................................................................................................................................................6 PURPOSE ..............................................................................................................................................................7 HOW TO USE THIS KIT .....................................................................................................................................7 PHASE 1 INITIATION AND PLANNING........................................................ 8 SMALL OR LARGE PROJECT?...............................................................................................................................8 CREATING AN ACCEPTANCE TEST PLAN ............................................................................................................8 BEFORE YOU PREPARE THE PLAN .......................................................................................................................9 WHO DOES WHAT? ...........................................................................................................................................9 PHASE 2 PREPARING TESTS, TEST DATA, AND TRAINING ...............................15 WHAT TEST DOCUMENTATION SHOULD WE MAKE?....................................................................................15 HOW DO WE DEFINE ACCEPTANCE CRITERIA? .............................................................................................16 WHAT TEST PROCEDURES SHOULD WE FOLLOW? ........................................................................................17 WHAT TESTS CAN WE DO?............................................................................................................................17 HOW DO WE DEVELOP ACCEPTANCE TESTS? ................................................................................................21 WHAT TEST DATA SHOULD WE USE?.......................................................................................................... 22 WHAT TRAINING IS NEEDED? ...................................................................................................................... 23 WHERE IS THE BEST PLACE TO CONDUCT TESTING?................................................................................... 23 APPROVING THE ACCEPTANCE TEST PLAN ..................................................................................................... 23 PREPARING TO CONDUCT THE ACCEPTANCE TEST ......................................................................................... 25 PHASE 3 EXECUTION AND CONTROL .........................................................25 WHAT YOU NEED BEFORE YOU START TESTING ......................................................................................... 25 MANAGING THE TEST ENVIRONMENT ........................................................................................................... 26 MANAGING TEST DATA .................................................................................................................................. 26 RECORDING THE RESULTS............................................................................................................................... 29 FIXING PROBLEMS AND RETESTING .............................................................................................................. 30 SUSPENDING OR CANCELLING TESTING .........................................................................................................31 PHASE 4 CLOSURE ...............................................................................32 FORMAL ACCEPTANCE ...................................................................................................................................... 32 TEST RECORDS MANAGEMENT AND RETENTION .......................................................................................... 32 OTHER ACCEPTANCE TESTING ISSUES.......................................................33 THE TENDER PROCESS .................................................................................................................................... 33 CONTRACT MANAGEMENT............................................................................................................................... 33 DOCUMENTATION ........................................................................................................................................... 34 SYSTEM DESIGN ............................................................................................................................................. 34 PACKAGE SYSTEMS .......................................................................................................................................... 34 ACCEPTANCE TESTING A LARGE SYSTEM ...................................................................................................... 35 ACCEPTANCE TESTING A SMALL SYSTEM ...................................................................................................... 36 SYSTEM ENHANCEMENTS AND MAINTENANCE............................................................................................. 37 SOME CAUTIONARY NOTES ....................................................................38 4 The Acceptance Testing Kit – Part 2 TEST DATA CONFIDENTIALITY ...............................................................38 INTERPRETATION OF BUSINESS REQUIREMENTS ........................................................................................ 38 SYSTEM PROTOTYPING ................................................................................................................................... 38 PARALLEL RUNNING......................................................................................................................................... 38 MINOR SYSTEM DEFICIENCY DELAYS ........................................................................................................... 39 5 The Acceptance Testing Kit – Part 2 Introduction Foreword Acceptance Testing is a process of evaluating a new or revised system undertaken by Business Unit Managers and end-users of the system to make sure it meets their business needs. With Acceptance Testing, the main objective to aim for is happy end-users and stakeholders. Whilst it does take time and resources to do Acceptance Testing, the rewards for the Department, end-users and stakeholders far outweigh the effort needed to undertake this activity. Acceptance Testing ensures that the new or improved system you want is the system you get, at the price you were prepared to pay. Acceptance Testing helps keep a Project budget under control by clearly stating and measuring the delivered product and outputs against the business requirements. The Service Provider also knows exactly what is required of them under the contract arrangements for the delivery of the product. The implications of overlooking or understating the importance of Acceptance Testing are considerable. Those accountable for the Project may find the system costing more than what was initially budgeted for because the ‘errors’ were not properly identified and resolved before putting the product into production. Therefore the effects of lost productivity from a product that does not meet quality standards or functionality could have major long-term effects on Business Units. However, Acceptance Testing must be resourced effectively and appropriate time must be allocated to thoroughly test the product. While this Kit can help you achieve the above, it is not a step-by-step recipe for Acceptance Testing success. It is designed as a guide to alert and inform those involved with a Project, and the Acceptance Testing task, of the benefits, issues, and pitfalls that can come hand-in-hand with the Acceptance Testing process. Every project is unique and as such, this Kit will enable this unique nature to be successfully managed and accounted for. Above all, talk with others about the Acceptance Testing process and benefit from their knowledge and experience they may bring to the activity. In particular, discuss the process with stakeholders and end-users! In line with its Service Charter, IMB makes available this Acceptance Testing Kit to assist Departmental staff. 6 The Acceptance Testing Kit – Part 2 Purpose The purpose of this Kit is to help Departmental staff plan, conduct, and manage the Acceptance Testing process for a business initiative. How to Use this Kit This Kit provides an overview of the essential components of Acceptance Testing. It is divided into two Parts. Part 1 Acceptance Testing – Why do it? introduces Acceptance Testing and outlines the reasons for making it an essential element of any Project. It provides the motivations for Project Managers and those involved in Testing to undertake the activity and the benefits that can be expected from conducting the Testing process thoroughly. There is also a brief outline of the steps required to execute Acceptance Testing from start to finish. Part 2 Acceptance Testing – How to do it! provides the person responsible for Acceptance Testing with a guide for moving through the process. Included are the types of individual tests that may be considered, how they can be managed, and a series of templates and checklists that minimise the need to ‘reinvent the wheel’. These resources should prove invaluable in assisting those involved in Testing. Use of this Kit enables a consistent approach to Acceptance Testing within different types of projects, for example from a small upgrade to an existing system, to implementation of a new, large, software package. By referring to the Kit, the person responsible for Acceptance Testing should be able to determine which components or key elements need to be included within their Acceptance Testing process. To err is human, but to really foul things up requires a computer. Anon. 7 The Acceptance Testing Kit – Part 2 Phase 1 Initiation and Planning Small or Large Project? Whilst every Project has its own unique characteristics, they will often take on a number of very similar features. As a general rule, the less expensive the Project, the less resources will be required to Acceptance Test. This will not always be the case but as a guide, a system developed for less than $50000 can be considered a small system, and over $50000, a large system. If you have any uncertainty as to the nature of the system you are involved with, consult with the Information Management Branch in your Division. Creating an Acceptance Test Plan The first step in Acceptance Testing is preparation of a Test Plan. Whenever Acceptance Testing is undertaken, there needs to be a clear plan and welldefined objectives. The planning stage includes the following activities: A good start to preparing an Acceptance Test Plan is to first write a Table of Contents for review and approval. ► Agreement with management and stakeholders on the Table of Contents; ► Documentation of the Acceptance Test operating environment, Acceptance Criteria, and testing responsibilities; ► Preparation of an Acceptance Test schedule; ► Definition of the Acceptance Test processes including security procedures; ► Determination and planning training for Test participants; and ► Document arrangements for review and sign-off of the Acceptance Test Plan. of Where a formal contract exists with a Service Provider, there may be clauses that require Acceptance Testing to be completed in an agreed timeframe. The Plan should be prepared according to these conditions. The task of developing the Acceptance Test Plan is the responsibility of the Manager of the Business Unit that ‘owns’ the system. However, the task may well be delegated, for example, to the Project Manager. There is an Acceptance Test Plan template included as part of this Kit. Operating environment includes the hardware, software, and network within which the system will run. It is important to define the operating environment because the system may work in one environment but not in another. 8 The Acceptance Testing Kit – Part 2 How to Prepare the Plan Gather together the following items, information, and documentation: ► The Acceptance Test Plan template and checklists; ► The requirements specification (either business or functional) for the system as this includes the requirements to be tested, and/or any additional Acceptance Criteria that may exist in the Contract or Service Level Agreement; Template – Acceptance Test Plan Checklist – Acceptance Testing Checklist – Acceptance Test Planning ► The environment the system will operate under as detailed in the Technical Environment – Hardware and Software document (obtainable from your Information Management Branch or on the intranet); and ► A list of the documentation to be delivered with the system including system release notes if this is a system upgrade. Once all this information has been obtained, work through the Acceptance Testing checklist and Acceptance Test Plan template, completing all the relevant sections. Who Does What? The roles and responsibilities for Acceptance Testing should be outlined in the Acceptance Test Plan. The roles required will depend upon the size of the Project, and consequently, the magnitude of the Testing task. There are four groups that need to be involved. Remember, one person may fill more than one role. Acceptance Testing Team Acceptance Test Manager 9 ► Manage the Acceptance Test and coordinate Acceptance Testing activities; ► Prepare the Acceptance Test Plan and Acceptance Test procedures and request/obtain the necessary Acceptance Test resources; ► Advise on establishment and training of the Acceptance Test team; ► Assign Acceptance Test tasks; ► Coordinate compilation of, and access to, Acceptance Test data; ► Liaise with the Service Provider Project Manager; ► Oversee development of Test Cases/Scripts, based upon business requirements as detailed in the Contract, RFQ/RFT or other documentation upon which system development will be based; ► Formally report to the Project Sponsor and Business Unit Manager on the status of Acceptance Testing; The Acceptance Testing Kit – Part 2 ► Formally manage, record, and authorise modifications to the Acceptance Test system, the documentation, the Test data, and the Acceptance Test environment; ► Manage and liaise/communicate with stakeholders regarding change requests and Test problems; ► Ensure that Tests are completed to the agreed schedule; ► Review Test results; ► Administer Test problem reports and recommend priorities for resolution; ► Ensure Tests are repeated where necessary; ► In the event of serious problems, determine whether to recommend suspension or cancellation of Testing; and ► Recommend formal acceptance of the system to the Project Sponsor. Business System Administrator It is desirable that the person who will serve as System Administrator once the system is in production, participates in Acceptance Testing as Business System Administrator. ► Administer and initialise the system configuration data for: • End-users and end-user system privileges; • Printers and stationery; • Work stations; • System codes and settings; • Access to the Acceptance Test data; and • Batch processing; ► Verify production support facilities; ► Test system administration functions; ► Coordinate generation of Test data; ► Test system documentation; ► Run routine batch processes and reports including audit trail reports; and ► Run data integrity checking routines and monitor data integrity. Senior User Representative ► Liaise with the Acceptance Test Manager; ► Assist in development of Test Cases/Scripts; ► Coordinate the testing activities of Business Unit officers; 10 The Acceptance Testing Kit – Part 2 ► Coordinate the use of Test data; ► Undertake Tests as requested; ► Record Test Cases and conditions; and ► Record and report successful completion of Tests and document problems encountered. Business Unit Officers/End-Users ► Assist with the Acceptance Test Plan as assigned; ► Prepare and provide Test data, and write Test Cases/Scripts, with expected results; ► Undertake tests as requested; and ► Record and report successful completion of tests and document problems encountered. Service Provider Team Service Provider Project Manager ► Ensure that delivery responsibilities in relation to Acceptance Testing, as outlined in the contract, are met; ► Oversee establishment of the Acceptance Test environment in consultation with IMB; ► Liaise with the Acceptance Test Manager and assist with Plan preparation and procedure definition as requested; ► Ensure Development Testing of the system is complete prior to hand-over of the system to the Acceptance Test Manager; and ► Supervise necessary amendments to the system and manage new system releases. Service Provider Team Members 11 ► Establish and maintain the Acceptance Test environment. ► Assist end-users with testing as required; ► Conduct all necessary technical Testing prior to system hand-over; ► Resolve system problems and update system versions as required; and ► Migrate programs, database changes, and data to the Acceptance Test environment. The Acceptance Testing Kit – Part 2 IMB Representatives Database Administrator ► Migrate application to the appropriate test/pre-production environment; ► Initialise the database (and re-initialise as required). This may include the loading of appropriate security-related data; ► Ensure database integrity, both in content and security; ► Ensure establishment of the application environment parameters; ► Ensure ancillary and support software is loaded and configured; ► Provide database support services as required; ► Undertake any specialised Testing requirements; ► Ensure requested database modifications are appropriate; ► Coordinate database backup procedures as outlined in the Acceptance Test Plan; ► Establish all end-of-day and batch processes; and ► Support standard application release procedures and verify their operation. Infrastructure and Support Services ► Set up and maintain the application environment; ► Provide the required hardware components for the Testing environment; ► Provide and support desktop, communications, and server environments in accordance with the Acceptance Test Plan (which in turn will nominate the environments required for Testing, Training, and Pre-Production); and ► Assist with stress, performance, and integrity testing as required in the Test Plan. Business Analyst ► QA the Acceptance Test Plan. IMB Management ► Act as a contact point for any resource/staff requirements as outlined in the Acceptance Test Plan; and ► Oversee the hardware and environment requirements and budget accordingly. 12 The Acceptance Testing Kit – Part 2 Management Representatives Project Steering Committee ► Provide policy and direction for Acceptance Testing; ► Review and verify the incorporation of business objectives and requirements into any Contract, RFQ/RFT etc.; ► Resolve contractual issues and issues relating to system scope; ► Review and approve or reject submitted change requests; and ► Endorse acceptance of the system and authorise its implementation. Project Sponsor/Business Unit Manager 13 ► Develop business objectives and requirements and ensure they are clearly detailed in any Contract, RFQ/RFT etc. in order to base Acceptance Criteria upon them; ► Appoint and direct the Acceptance Test Manager; ► Approve the Acceptance Test Plan; ► Manage the provision of requested Acceptance Test resources, including Business Unit officers to participate in the Acceptance Tests; ► Review Test results; ► Accept each major sub-component of the system; ► Participate in, and report to the Project Steering Committee; and ► Formally accept the new system and recommend system implementation. The Acceptance Testing Kit – Part 2 Roles for Large Projects The recommendation for role assignments for a large project are: ► Acceptance Testing Team; ► Service Provider Team; ► IMB Representatives; and ► Management Representatives. Roles for Small Projects The recommendation for role assignments for a small project are: ► Acceptance Test Manager (this role may be undertaken by the Project Manager or Business System Administrator); ► End-User(s) ► Business Systems Administrator ► Service Provider Team ► IMB Representatives ► Business Unit Manager (or other appropriate Management representative) 14 The Acceptance Testing Kit – Part 2 Phase 2 Preparing Tests, Test Data, and Training Acceptance Testing is a project in itself, depending on the scale and scope of the system or system changes. There is a defined body of work, a distinct start and end, and a well-defined objective. As such, Acceptance Testing is best managed using ‘conventional’ project management processes. There needs to be: ► An overall guiding plan; ► Well defined communication; ► A detailed schedule of tasks with dates and assignments; ► Well defined processes and tasks; ► A controlled environment, documentation, and product; ► Processes to capture and record details of progress and to monitor them against the plan; and ► Regular review meetings. responsibilities and lines of Don’t forget to report: • Overall progress; • Testing status; • Problem status; and • Change status. What Test Documentation Should We Make? Depending on the scale of the Acceptance Test, for maximum benefit and minimum effort, establishing and maintaining the following records and documentation can be very helpful. The Acceptance Test Strategy is generally only necessary for a large project, whilst all other documentation is needed for both large and small projects, with documentation “scaled down” for the smaller projects. ► An Acceptance Test Strategy - outlining the approach and understandings for Testing activities during the Project. This is best formulated soon after Project inception and can be included in the Project Execution Plan (should one exist). A template can be found on the DPAC Project Management web site; ► The Acceptance Test Plan - outlining the Test approach, objectives, activities, responsibilities, and schedule. This includes: • Test Procedures - documenting the processes to be followed during Acceptance Testing. Procedures; • Authorisation cancellation; requirements for commencement, • The conduct of Tests and recording of results; • The recording and resolution of Test problems; • Signing-off and formal acceptance; 15 suspension, and The Acceptance Testing Kit – Part 2 • Authorisation requirements for changes to the Test system and/or environment; and • The release of a new version of the system; ► Test Cases - showing Tests to be performed, usually measured against business requirements (with any specific data or conditions), and the expected outcomes. There may be many Test Cases for a single business requirement. These include recording the outcome of each Test Case and/or Script as Test Results; ► Test Scripts - documenting individual testing processes as a series of steps, many of which will be series’ of interrelated Test Cases and encompass an individual business requirement/process; and ► Problem Review Sheets and Problem Review Register - documenting problems encountered and indexing the status of each problem. In addition, maintain an: ► Acceptance Test Log - recording significant events and changes to the test environment and test data. Templates for these documents form part of this Kit. Samples and templates of these documents form part of this Kit. How Do We Define Acceptance Criteria? There needs to be clearly defined criteria on which to base system acceptance. Acceptance Criteria should be clearly documented so they are understood by all parties. Ideally, they Even though Acceptance Criteria are often should be decided ”up front” at the Project specified in the relevant contract or agreement with the system supplier, they Planning stage, prior to system development. should still be included in the Acceptance They should then be incorporated into any Test Plan. Contract to be fulfilled by the Service Provider. Acceptance Criteria will then be based upon the requirements as specified in the Contract (or any other less formal agreement) with a Service Provider, or in the case of an internal system development, upon requirements as specified in the business requirements documentation. If specified in a Contract, these requirements will in turn, hopefully be based upon the business requirements as detailed in the relevant Business Systems Requirements Specification. It is not the responsibility of the Acceptance Test Manager to define or “invent” Acceptance Criteria at the Testing stage. This point is too late in the development process! If Acceptance Criteria are either sufficiently unclear or difficult to obtain, refer the issue to the Project Manager for direction and resolution. 16 The Acceptance Testing Kit – Part 2 Often, Acceptance Criteria will also cover a number of “standard” items, that may include: ► system and user documentation; ► system useability; ► system performance and capacity; ► data integrity; ► system security; and/or ► system reliability. What Test Procedures Should We Follow? The Acceptance Test Plan details the overall process of initiating, conducting, and concluding Acceptance Testing. More specifically, there needs to be a clear outline of Determine testing procedures at the planning stage as they may require advice the actual testing process used for confirmation from outside the business unit. It may be of the Acceptance Criteria. Document these necessary for IMB in your Division to assist you with planning and execution. processes in the Acceptance Test Plan and translate them into Test Cases and Test Scripts that define the Testing steps. What Tests Can We Do? If new business processes are intended and Template – Test Case Template – Test Script Cover Sheet contracted to be introduced in conjunction with a Checklist – Test Case or Script new system, then it is necessary to prove these new processes during Acceptance Testing. Aspects of any new system relevant to business processes may prove unsatisfactory for end-user purposes. If this is the case, the Business needs to correlate the unacceptable system behaviour with the business requirements or specifications as detailed in the supply contract. If the number and degree of business process changes are significant, formal business change management processes can be applied in conjunction with system development and implementation. Responsibility for defining and proving new processes rests with the business unit, rather than the system supplier or developer. The Business Unit is obliged to accept the system ‘as is’, should it satisfy all contractual obligations of the Service Provider. Therefore, it is imperative that business requirements are precisely identified at the Project Planning stage and included in the For each business or system requirement Contract. Should these contractual obligations and for each Acceptance Criterion, there should be at least one Test Case. be met, and the system still fails to meet one or 17 The Acceptance Testing Kit – Part 2 more business requirements, steps may then be authorised (possibly at additional expense) to improve the system with alterations. However, system changes at such a late stage of the development life cycle are less than ideal. As well as basic function testing, Tests may also evaluate: ► Day, week, processing; period, month, and year-end ► Interfaces; ► System sociability; ► System performance and reliability in a range of environments and under any special conditions; ► Stress capabilities; ► Backup and recovery procedures; ► System access and security; ► Concurrent updating; and ► Disaster Recovery. You may be able to use a stop watch to measure system response times. For more accurate readings and for internal processes (such as database performance), system monitors and recorders may be necessary. Checklist – Report Testing Checklist – Web Page Usability Testing Checklist – User Interface Testing There may also be specific tests reviewing the supplied system documentation (on-line help system, user guide, operations guide, maintenance documentation etc.). Generic Tests For many Tests there will be common features e.g. all screens need to be tested for ease of use and appearance. These generic tests are better managed with checklists or standard forms rather than Test Cases. For each screen utilised during the running of each Test, the Tester should review the screen using the generic User Interface checklist contained in this Kit. Similarly, for each report generated during the running of a Test, the tester should check the report using the Report checklist. An additional checklist for Web Page Useability is also included. Stress and Performance Testing This form of testing addresses both specific contractual criteria and general system performance. By conducting both stress and performance testing in a controlled manner, you can be sure of accurate response and performance measurements where system loads are precisely known. These loads may include network traffic or database activity, as well as normal system functions. Stress testing is where specific system functions (usually critical ones) are subjected to high loads to ensure that the system will still cope. Performance testing is where specific system functions (usually critical ones) are timed under various system loads to ensure that the times meet contractual performance acceptance criteria. 18 The Acceptance Testing Kit – Part 2 If requirements for system throughput are specified in the Contract, then stress testing is necessary, and Test Cases should be clearly defined. The functions to be tested may be either on-line or batch. Stress tests tend to focus on a particular aspect of the system’s architecture such as database updating, for example, to ensure that the database server’s capacity meets expectations. In performance testing, system loads may include network traffic, database activity as well as normal system functions. Controlling these loads is not always straightforward and the assistance of IT personnel is often needed with the setup and execution. The steps and tasks to be undertaken should already be itemised in the Acceptance Test Plan. Regression tests are most successful if the test data, test environment, system dates, and any other test inputs are either kept constant or only changed in a controlled manner so the impact of any changes can be anticipated and/or explained. Regression Testing Regression testing is an important method of validating system changes that occur during Acceptance Testing. It ensures, where a change or changes have been made to the system, the test environment, or the test data, that these changes do not impact the correct operation of functions not obviously or directly related to the changes. Regression testing is where a series of tests (or indeed all tests) are systematically repeated and where expected results are known. The results of the repeated test are compared with the results of the original (successful) tests. Regression tests are usually done manually and can be time consuming and tedious. By minimising the number of times that changes are made to the system, the Test environment, and the Test data, effort can be significantly reduced. It is most practical to regression test only critical functions and those known or suspected to be affected by changes. For any system change, the Acceptance Test Manager should determine which Test Cases or Test Scripts need to be repeated, and schedule these accordingly. System crashes can logically or physically corrupt the database. To ensure this does not happen, comprehensive database integrity checking routines should be available. Over time, and with the assistance of experienced end-users of the system, a matrix of impact can be compiled i.e. for each system function there is a cross-referenced list of other functions that may be potentially affected by changes to the first function. While tools to support regression testing are available, their use is not always cost effective. However, using electronic means to compare the results of repeated Tests against the results of the original (successful) Tests is a possibility. 19 The Acceptance Testing Kit – Part 2 Disaster Recovery Testing Disaster recovery testing needs to be conducted in a controlled manner to allow the system to be “crashed” at a precise point, with the status of active system functions accurately known, to test the system’s disaster recovery process. Crashes are arranged to occur at strategic points such as in the middle of a multirecord database update. Recovery from simulated events such as complete loss of a database or server can also be tested. Two processes are used to determine the system’s ability to recover from a disaster. Firstly, where the whole system has crashed, the database is restored from a previous backup, the system transaction log is applied to the restored database (rolled forward), and the logical and physical integrity, and the completeness of the database is checked. The second process is where multi-database update functions are crashed and the system is allowed to “roll back” i.e. the partial updates are undone automatically by the database software and the logical integrity and completeness of the database is checked (especially for the data involved in the crashed functions). Concurrent Update Testing If the system you are testing is an on-line, shared system, you will need to conduct concurrent update testing. Concurrent update tests can fail without any apparent impact on the user. However, the integrity of the database must remain intact and can be confirmed using integrity checking routines. Concurrent update testing assesses a system’s capability to deal with multiple system functions simultaneously attempting to access or update the same database record(s). How the system handles these situations is based on the system’s technical design. The system needs to cope with the situation where an update transaction tries to re-read records that were read earlier but that have now become locked or changed. Irrespective of the internal processes, from the end-user point of view the system should provide a meaningful message and terminate the transaction in a controlled manner, allowing the user to restart the process. The logical and physical integrity of the database should remain intact and this should be confirmed using the appropriate integrity checking routines. The potential for problems in large batch processes is often high. If something goes wrong, it may not affect just one Case. 20 The Acceptance Testing Kit – Part 2 Large Reports, Batch Processes and Interfaces The amount of effort in preparing for tests of large reports, batch processes and interfaces is often underestimated. Most attention tends to be directed to the on-line system components. However, these items must be thoroughly tested as well. How Do We Develop Acceptance Test Scripts? It is important to always maintain the relationship between any Test Case and the requirement or acceptance criterion it is verifying. There are two steps to follow when developing Test Cases: ► Step 1 is to describe what is needed for each Test, what is to be done, and the expected outcome. A Test Case template is included as part of this Kit. ► Step 2 is to document the required Test Data and conditions that enable the Test to be undertaken. To help you in developing your Tests, a Test Case and Script checklist has been included as part of this Kit. For each Test, determine: ► The features to be tested; ► The source database(s) that will be required; ► The source of data required specifically for the A Test Script is a documented process involving a series of steps, many of which will be interrelated Tests. It may also describe a set of Test conditions. Test; ► Any other resource requirements; ► The task that will be performed in the Test Case; and ► The expected outcome. A Test Case is a single record or group of records used in a Test Script. Once Test Cases are prepared, collate related Test Cases into Test Scripts. Each Test Script usually equates with a business process. The Script brings all related Tests together into a logical sequence. For example, in a financial system there may be a series of tests to record different types of on-line financial transactions and there may be other tests to create and post a batch of transactions to the system and to print a batch report. It makes sense to relate the on-line transaction entry to the subsequent batch posting and printing. Remember to write Test Cases for reports, offline processes, interfaces, and data migration. These are often overlooked yet most likely to cause headaches after the system has been implemented! If new business processes are involved, describe in the Test Script the overall approach required to test them, 21 The Acceptance Testing Kit – Part 2 including the normal and alternative paths, and key exceptions. For each Test Script, identify resource requirements, including any resources outside the organisation. A Test Script template is available as part of this Kit. What Test Data Should We Use? Preparing Test Data can be a time consuming process. To minimise effort, first validate Test Data and then preserve it for subsequent re-use should it become corrupt through failed tests. To minimise data contention between tests, discrete test data may be assigned to one or several (related) Test Scripts. It may be possible to create data via direct data entry or by electronic transfer (such as exporting from a spreadsheet and direct loading into the test database). Test Data may also be taken from standard input forms used within the Business Unit. In some instances where the data is not of great End-users familiar with the application area significance, the Tester will be required to and system are best for creating test data. “make some up”. A useful source of data (especially where large volumes are required) is data migrated from an existing system. However, the data migration and load processes require thorough testing themselves and often migrated data may be incomplete and of questionable quality. A good way to organise Test Data is to match it with Test Scripts and maintain this link throughout the Testing process. Protecting Confidential Test Data By conducting Acceptance Testing in an environment and with data that closely emulates live operation, the chance of problems arising once the system is implemented is decreased considerably. Unfortunately, using “real” data often means a greater risk of accidental distribution of confidential information (for example, being printed, emailed, or transferred over a public or wide-area network). To minimise this risk, design security procedures into the Acceptance Test Plan and make sure all testing personnel are trained and alerted to the dangers. Other ways of maintaining data security include: ► Establishing a physically separate network with separate printers; ► Encrypting or modifying data such as names and addresses, so they are unrecognisable; ► Creating server and workstation directories specifically for the use of Acceptance Testing; ► Establishing specific Acceptance Test email accounts; 22 The Acceptance Testing Kit – Part 2 ► Regularly and routinely cleaning up Acceptance Test directories; ► Routinely shredding any printed reports; and ► Using special stationery that indicates the printed data is for test purposes only. What Training is Needed? Training needs should be outlined in the Acceptance Test Plan. This allows for the scheduling of training and assignment of trainers. This will usually be arranged by the Acceptance Test Manager. User Training is normally covered in the overall Project Plan. For end-users participating in Acceptance Testing, training must occur prior to Testing commencement. Participants in the Acceptance Test may also need training in the Test procedures for undertaking Tests and recording results. This may take the form of a walk-through or dry run of some Tests, as well as a formal training session. These sessions need to be allowed for in the Acceptance Test and Project Plans. Where is the Best Place to Conduct Testing? To help personnel focus on the job at hand, Acceptance Testing is best done in a separate work area where participants are not distracted by their normal work activities. A dedicated, laboratory-style facility with plenty of work space is ideal. This allows informal communication between participants and the Acceptance Test Manager. Use a white board and notice board to communicate Acceptance Test “announcements” and to display testing progress. A secure area also provides a good location for storing Acceptance Test records and documents and provides a focus for testing activities. Approving the Acceptance Test Plan It’s important that management formally approves the Test Plan. The Manager of the Business Unit that is responsible for the system should sign-off the Plan. This helps ensure personnel and resources are committed to Testing when it occurs. The Acceptance Test Plan should be reviewed by: 23 ► The Business Unit Manager; ► Those with key responsibilities in the Test Plan – the Acceptance Test participants should be offered the opportunity to review and comment. It will help them understand the nature of their involvement and allow them to voice any concerns; Remember, the Plan needs formal approval by the manager of the Business Unit responsible for the system. The Acceptance Testing Kit – Part 2 ► The Service Provider – this may be a contractual requirement (if it is not, allowing them to review the Plan will clarify any issues they may have). They should understand end-user expectations for the system and the support (if any) they are required to provide; ► Any other key stakeholders; and ► An independent quality inspector - they may pick up items that seem obvious to the author and participants, but may be open to misinterpretation. 24 The Acceptance Testing Kit – Part 2 Phase 3 Execution and Control Preparing to Conduct the Acceptance Test If the Acceptance Test Manager takes on responsibility for scheduling and assigning Testing tasks e.g. assigning individual Test Scripts to team members, workflow will run more smoothly and efficiently. Try and avoid any individual member of the Testing team shouldering too great a workload. It will also help in tracking work progress as sometimes, when people from different Business Units are involved, the same Test Script may require running by more than one Tester. The Acceptance Test Manager should ensure that each participant understands their assignment, is aware of the Test procedures, and knows the timetable expectations for each task. By previewing the Test Script and individual Tests, a tester can clarify any concerns with the Acceptance Test Manger before undertaking a Test Script. What You Need Before You Start Testing Ideally, Acceptance Testing should run according to the Acceptance Test Plan from start to finish without disruption and without the need to change either the system or the Testing environment. In reality, things do go wrong, and continuity is often difficult to achieve. To minimise the likelihood of disruption, Acceptance Testing should only proceed if the following have occurred: 1. The Acceptance Test Plan, including all Acceptance Criteria, has been signed-off by the Business Unit Manager; 2. There has been formal management approval to proceed with Acceptance Testing; 3. Test Data has been made available; 4. The Acceptance Test environment has been established, stabilised, and protected against unauthorised or inadvertent change; 5. The system has been thoroughly system-tested by the suppliers or developers, the system test has been formally signed-off, and the system (including all documentation) formally handed over for Acceptance; and 6. Testing participants have received the necessary training for using the system and for following Test procedures. 25 The Acceptance Testing Kit – Part 2 Managing the Test Environment Managing Changes Before you make changes to the Acceptance Test environment, make sure they are planned, authorised, controlled, recorded, and communicated to Test participants. Otherwise: ► even minor changes may impact the validity of tests already completed; and ► participants can become confused if the status and versions of the Test environment are uncertain. Keeping Track of Testing Progress Establish an Acceptance Test Log to record all significant events occurring within the Acceptance Test environment. The Log should be readily accessible and should be used (mainly by the Acceptance Test Manager and System Administrator) to log changes to: ► The system software; ► System documentation; ► System parameters, code tables, and reference data; ► Baseline Test Data; ► Migrated Test Data; ► External systems and/or data; ► Database software, configuration and scripts; and/or ► Network, server, and workstation software, and configuration. A Test Log helps when problems arise with the test system or test data. If you know precisely what took place prior to the problem, the Log can be referenced to prevent the problem recurring. The information you could log includes: ► The date and time of an event; ► The name of the person executing an event; ► Details of the event; ► The signature of the authorising person; and ► Any comments about the event and its outcome. Template – Acceptance Test Log Managing Test Data Initialising Test Data Initialisation usually involves loading or entering: ► The necessary system codes and system parameters; 26 The Acceptance Testing Kit – Part 2 ► Either manual or automated Test Scripts and Test Data required for the Tests; and ► Migrated data (usually used where large volumes of data are required, and often from a separate database). When testing an upgrade to an existing system, the Test database will normally be populated with data extracted or copied from the existing live database and there may be little or no need to add additional data. Once you’ve prepared your test data, make a copy should the data become corrupted in the future. It’s useful for when further system changes are made and another round of testing is required. When testing a new system, the Test database will probably be empty and need setting up with an initial Test dataset. Some data may be loaded automatically from spreadsheets, text files, or other databases using database scripts. However, data may need to entered directly using the system’s standard online functions. Backing up the Acceptance Test Database Regularly backing up the Acceptance Test database allows recovery of the database if the need arises to re-test, or to eliminate corrupt, spurious, or unnecessary data. Usually, backups (and any necessary restores) need to be authorised by either the Acceptance Test Manager or the System Administrator, and should be recorded in the Acceptance Test Log. Managing Changes to Test Data Another useful and important tool is a record of changes to the Test Data. These changes can affect the outcome of Tests and the effectiveness of regression tests. It may be necessary at times to restore the Test Data from an earlier backup to eliminate unwanted or unsuccessful changes to Test Data. Record any important changes in the Acceptance Test Log. Backing up at strategic points will enable you to more easily return to an historical data position in the testing process, with less time and effort. The Acceptance Test Manager or the System Administrator should coordinate the use of Test data between the various Testers and maintain a record of changes in the Acceptance Test Log. You may also find it useful if summaries of Test data entered during Acceptance Testing are logged as Tests are undertaken. Checking Database Integrity It is important that database integrity remains intact. Sometimes, Tests can affect database integrity, particularly by programmes that don’t operate correctly. For example, Tests such as crashing the system to Test recovery processes can cause physical corruption of the database where whole records are lost or corrupted. Processes that check the integrity of the test database may be provided by the system 27 The Acceptance Testing Kit – Part 2 supplier (they may be included in the system requirements) or they may have to be provided by database administrators in the form of database scripts. When run, these routines scan the database tables and relationships and report any logical data integrity problems. The Information Management Branch in your Division will be able to provide assistance with these. Database integrity is when the data retains internal consistency or lack of corruption. Database integrity checking routines are processes (programs or scripts) that scan the database tables and links and report any logical data integrity problems such a missing relationships, undefined codes etc. They may also check the physical integrity of the database The System Administrator routinely runs these scripts during Acceptance Testing, either at the completion of each Test Script or at the end of each Test session. They should also be run following any significant event or activity that affects the database (such as the loading of migration data). Results should be reviewed to detect any problems generated by the Test undertaken since the previous (clean) integrity check report. Keep the results with the Acceptance Test Log for future reference. Checking Audit Trails When Tests are run (and if the system provides an audit trail of changes) then records written to the audit trail should confirm changes made by the Tests. The System Administrator should routinely run reports that allow the System’s audit trails to be monitored. These will be run at the completion of each Test Script or at the end of a Test session, and also following any significant event or activity that affects the database. These reports should be reviewed with the Testers to ensure all significant updates have been correctly recorded in the audit trail. Results of these runs should be retained with Acceptance Test records. Migrated Data and the Migration Process Where data needs to be moved or relocated from an old system to a new system, it becomes necessary to test the migration process and the migrated data. If some Acceptance Testing steps are dependant on using migrated data (for example, if large volumes of migration data are to be used for stress and performance testing), then migration process testing may need to be completed first. Consider loading the migration data into a separate (full size) Test database. As migrated data is often incomplete and may include generated default values, it is necessary to repeat some functional Test Scripts using migrated data both with and without other Test data i.e. it is necessary to ensure that the system functions correctly with the migration data. 28 The Acceptance Testing Kit – Part 2 Reconciliation of control totals for data extracted from existing systems and loaded into the new system is an important validation check. These steps should be included in the migration Test Script or Scripts. Recording the Results For every individual Test, the result will be either ‘Successful Completion’ or ‘Failed’. The assigned Tester records the result of each Test Case within a Test Script in the Test result area on the Test Case sheet. The Tester then signs Remember, as the Acceptance Test Manager, the Test Case sheet alongside each Test Case and also check and endorse the Test the Test Script sheet once the full Test Script has been Script sheets and file them in the Test records. completed. Testers must remember to verify the version Maintain a register of of the system tested, the date and time of the testing, and completed Tests and Test Scripts with their status. any Test data identifiers. The Test Script result (bearing in mind this covers several Test Cases) will then be either ‘Successful Completion’, ‘Partial Completion’, or ‘Failed’. How Do We Manage Problems? For each Testing issue encountered, the Tester should first seek assistance to confirm that the issue is a valid one and not a temporary configuration or data related problem. At least one experienced system user should be on hand. Ready access to the necessary technical support should also have been Template – Problem Review Sheet of Problem Review pre-arranged. This may be either personnel from Template – Register Sheets IMB or Service Provider staff. The Tester should complete an Acceptance Test Problem Review Sheet for any ‘Partial Completion’ or ‘Failed’ Test results and the Acceptance Test Manager should record these in the Problem Review Register. Also, remind Testing personnel to record any documentation and on-line help inconsistencies and errors, and any other issues, even if they are not directly related to the current Test Script. Record and Categorise Problems To keep track of Testing and Test problems, the Acceptance Test Manager needs to monitor and report on Acceptance Testing progress and the status of outstanding problems. Each recorded problem will reference the relevant Test Case, Test Script, and business requirement (or requirements as detailed in the Contract). Problems will be graded by priority (severity and impact) and categorised by type. 29 The Acceptance Testing Kit – Part 2 Problems that can only be resolved by re-specifying business requirements (compared to those in the Contract) should still be recorded but categorised so as to be clearly identifiable as a possible future change request or Contract variation. Attempt Resolving Problems With the Supplier Management of any contractual issues arising from Acceptance Testing is best left to the Acceptance Test Manager and Project Manager who will try to resolve the problems with the Service Provider Project Manager. The outcome of any discussions needs to be recorded against individual problems as they appear in the Problem Review Register. The Acceptance Test Manager and the Service Provider Project Manager will endeavour to agree on the definition of the problem and a possible solution. If agreement can’t be reached as to the cause of or responsibility for any problem, refer the matter to the Project Sponsor or Project Steering Committee. Fixing Problems and Retesting Change Control When Acceptance Testing occurs, it is in a defined and agreed environment, against an agreed Plan and timetable, with agreed Test data, against agreed Acceptance Criteria and with a specific delivered version of the system and documentation. Any changes to these items should be managed and assessed by the Project Team, the change impact defined, measured and costed, and due consideration given to the change before it is approved and applied. Where changes to the Test environment, the system, or the Test data are made, they may impact the integrity of Testing already completed. System Upgrades and Retesting The Acceptance Test Manager will need to manage and authorise any upgrades or changes to the Acceptance Test environment required to resolve Testing problems. All changes to the system and Acceptance Test environment should be logged. The system supplier should provide details of changes and the problems that have been resolved with each new Release. Where applicable, regression testing may need to be undertaken to confirm that new problems have not been inadvertently created by changes that resolve other issues. The number of new releases should be as few as possible and should be stipulated in the Contract. Ideally, there should be only one subsequent release of the system. Too many releases will result in extra work and delay the Acceptance Test schedule, bringing into question the overall quality of the delivered system. Where there is an 30 The Acceptance Testing Kit – Part 2 external system supplier, the consequences of this should be determined by the contractual conditions. The Acceptance Test Manager and the Project Manager, with advice from the Service Provider Project Manager if required, will determine the degree and extent of retesting necessary. ‘Patching’ The System While a “quick fix” may seem like a good idea at the time, don’t rush into any process of making software or system “patches”. It can often result in undocumented changes together with problems reconciling subsequent system releases with any patches and can lead to loss of control of the system and the status of the Test Environment. The Acceptance Test Manager can authorise patches, but only after considering all the options and preferably, allowing for the ability to reverse any changes. Remember to keep accurate documentation! Suspending or Cancelling Testing Where problems exist that inhibit the continuation of effective Testing, the Acceptance Test Manager (under advice from the Project Manager) may suspend Acceptance Testing until the relevant problem or problems are resolved. If no resolution is possible in the immediate future, there may be grounds for cancelling any further testing. The criteria for suspending or cancelling Acceptance Testing should be documented in the Acceptance Test Plan and in the Contract. 31 The Acceptance Testing Kit – Part 2 Phase 4 Closure Formal Acceptance Once all Acceptance Criteria have been met, the Acceptance Test Manager is in a position to recommend formal acceptance of the system. Upon this recommendation to the Project Manager, the Project Sponsor or Project Steering Committee will formally accept the system. Acceptance is possible even if there are still specific (yet minor) outstanding problems, providing agreement has been reached on problem resolution following system implementation. The system may be accepted with the qualification that these non-critical items will be corrected to an agreed schedule under Warranty or Contract variation. In this way, acceptance can be achieved without unnecessary delay for minor items of non-compliance. The decision to allow a “qualified acceptance” and the items deemed “minor” is the prerogative of the Acceptance Test and Project Manager, and the Manager of the Business Unit that owns the system. Ideally, there should not be undue delay from completion of Acceptance Testing to system implementation. However, this may depend on overall Project and implementation planning. Test Records Management and Retention As far as is practicable, all test records should be retained at least for the duration of the Warranty period. Ideally the electronic components can be archived to off-line media. Test Cases, Test Scripts, Test Data, and expected results should be retained (as far is practicable) for testing subsequent releases of the system. These records should be formally handed over by the Acceptance Test Manager to the Business Unit Manager for safekeeping. You will usually find what corporate information management guidelines are relevant from IMB in your Division. 32 The Acceptance Testing Kit – Part 2 Other Acceptance Testing Issues The Tender Process It is important to assess the ability of a Service Provider to satisfy system Acceptance Criteria. Consequently, it is necessary to include these in any Request for Tender or Quotation and to consider them in assessment of submitted proposals. Possible Acceptance Criteria are outlined in the section How Do We Define Acceptance Criteria? on page 16. Contract Management Where a Contract is involved with delivery of a system, it is essential that Acceptance Criteria be included in the Contract. The standard GITC allows for the inclusion of Acceptance Test Criteria. These provide the Service Provider with a clear understanding of what is to be achieved to meet Acceptance. It is quite common for the business requirements to be a formal attachment to the Contract. Including Acceptance Criteria in the Contract also means that Acceptance and Acceptance Testing is more likely to be fully recognised at inception of the Project. As well as including Acceptance Criteria, the Contract should: ► Define the broad responsibilities for Acceptance Testing and for the provision of facilities and resources; ► Define the Operating Environment for the system (and by implication, the Acceptance Testing Environment); ► Define the duration (and possibly the schedule) for Acceptance Testing; ► Contain conditions to cater for delays in Acceptance Testing caused by either party. If there are clauses that require Acceptance Testing to be completed in an agreed time frame, then to ensure continuity and progress, it is important that personnel assigned to Acceptance Testing will be relieved of any conflicting responsibilities. This will allow them to be available in accordance with the Test Plan. Allowances should also be made for overruns and delays in Acceptance Testing. The timetable for Acceptance Testing in the contract and Test Plan should allow for a maximum of two sets of changes to the system (following the completion of the first pass of Acceptance Testing) and retesting for those corrections. The need for additional Releases may call in to question the quality of the system and the quality of Testing undertaken by the Service Provider. 33 The Acceptance Testing Kit – Part 2 Documentation End-user and operational documentation for a newly delivered system also needs to be Acceptance Tested. Appropriate end-users should be assigned to Acceptance Testing the documentation by following it through and evaluating it for clarity and completeness. For each system function tested there should be a Test to check the documentation and any on-line or context-sensitive Help component. Those ultimately responsible for operating the system in production also need to review the documentation and follow through the operation instructions. This should be done in a Test environment that emulates the final production environment as closely as possible. Once again, documentation should be subject to systematic document management and change control procedures. System Design Where there are complexities in testing aspects of a system, it may be necessary to design features into a system that facilitate testing of the system e.g. for a voiceactivated payment facility, the practicalities of testing this across a telephone network may require the system to have built-in features to support Testing. Package Systems Where a solution is to be based on a package, selection of the package is often made based on the package’s perceived ability to satisfy the business requirements. In this case, it may be practical (or even contractually agreed) to test the package against its documented capabilities. Where a package is delivered with modifications, specifications for those modifications should be documented and agreed upon, and system documentation should be updated accordingly. These specifications can be used as the basis for Acceptance Tests. A second aspect of a package implementation is that a key factor in its selection will have been the cost-effectiveness of the solution i.e. as a rule of thumb, it’s cheaper to implement a package if it meets 80% or more of the business requirements, than to custom-build a system. However, selection of a package will often involve compromise of at least some business requirements. Apart from these issues, Acceptance Testing a package system should not differ in approach to that for a custom-built system. 34 The Acceptance Testing Kit – Part 2 Acceptance Testing a Large System Planning It is to be expected that the extent of a Test Plan for a large system will be greater and consequently, the time necessary to prepare the Plan will be more significant. Similarly, the number of stakeholders may be greater and more time may be needed to allow adequate review of the Plan. It may also be a contractual requirement that the system supplier also approves the Test Plan. If this is the case, some allowance should be made for negotiation. The Plan may imply certain functionality that the supplier believes is not part of the system requirements. Preparing Tests, Test Data, and Training As the number of Test Cases increases, so does the complexity of coordinating and ordering the Tests into Test Scripts. This is likely to involve more than one person to execute and will require suitable management. Similarly, the complexity of providing Test Data will increase and its preparation and maintenance will need to be managed. There is likely to a larger group of testers and the range of skills, knowledge, and capability will vary. Preparation of a Skills Transfer and Training Plan is needed to detail delivery and management of training needs. For the Acceptance Testing to be (contractually) valid, the Test environment needs to mirror the final operating environment, as defined in the contract. The Acceptance Test Manager will need to oversee this step and the system suppliers may request an audit of the Test environment. The degree of coordination and planning will be higher. There may be a wide range of resources and personnel to be confirmed. Execution and Control Its important to use the Register of Problem Reviews and plan several runs of Testing, in particular, regression testing. Closure An allowance to accept the system subject to subsequent resolution of documented outstanding (minor) problems should be made. If this is the case, the Problem Review Register should be part of the Acceptance Document. The records for Acceptance Testing of a large system can be quite extensive. It’s important that these are retained safely. 35 The Acceptance Testing Kit – Part 2 Acceptance Testing a Small System A small project is defined as one where the external cost does not exceed $50,000. With a smaller project or system, the overall complexity of Acceptance Testing is reduced. There are fewer people involved, there are fewer types of data and the number of tests and problems is lower. Nevertheless, the basic steps listed still need to be executed. Planning ► Prepare a Test Plan ► Review the Test Plan ► Arrange sign off Preparing Tests, Test Data, and Training ► Prepare the Test Cases ► Prepare the Test Scripts ► Prepare the Test Data • Conduct training • Set up test environment • Confirm people and resources Execution and Control ► Run Test Scripts and Test Cases ► Record the results ► Log and manage problems ► Fix problems and re-test The relatively small number of problems from testing a small system should mean a Problem Review Register is not required. Closure ► Formal acceptance ► Hand over the system 36 The Acceptance Testing Kit – Part 2 System Enhancements and Maintenance Usually changes to an existing production system are grouped together into a ‘Release’. The source of these changes may be requested functionality enhancements and/or resolution of reported problems. Planning Existing DIER applications should already have processes established for system upgrades, maintenance, and enhancements. It may not be necessary to establish a formal Acceptance Test Plan, strategy, and procedures. However there is a minimum set of details that should be defined in order for the Acceptance Testing process to work successfully with established systems. There should be an agreed schedule and an understanding of who is conducting Tests. The responsibilities for providing a test version of the changed system also need to be understood. For systems with established support and testing processes it may be useful to go through a process of confirming any testing requirements and confirming agreement on the testing process. Sign-off need not be a significant undertaking. Preparing Tests, Test Data, and Training Apart from any new system functions, Test Cases and Scripts should already exist and these can be reused. A Test database may already be available. It may be necessary to ‘refresh’ this by extracting data from the production system. Processes to do this should already exist. Training is probably unnecessary as experienced users should be available. There may be a need to ‘run through’ any new functions with the developer. Given the minimal workload, it is quite likely that a single person can undertake all tasks. Closure Upon formal acceptance of the revisions, it will be necessary to arrange installation of the new version of the system with the Information Management Branch in your Division. 37 The Acceptance Testing Kit – Part 2 Some Cautionary Notes Test Data Confidentiality Acceptance Testing often involves the use of confidential data and the production of real documents, real interface files, generated e-mails, etc. It is important that during preparation of the Acceptance Test Plan, procedures to protect the security and confidentiality of data are included. Interpretation of Business Requirements Business system requirements may be open to misinterpretation. A system supplier (either internal or external) may contest the manner in which a system meets the business requirement. Therefore, the more accurately and specifically that business requirements are specified, the less open to misinterpretation they become. Resolution of these issues is a common part of negotiating acceptance of a system. If the system supplier accepts or endorses the Acceptance Test Plan, then these issues should arise early in the process, minimising any conflict at a later stage. System Prototyping System prototypes are sometimes built during system design and development as part of an iterative approach to system development. The prototype may be a working model of a system that will eventually be used and tested and it enables end-users to experience first-hand the proposed interaction with the system. The prototype is not a full working model and merely simulates the proposed system’s behaviour. Any feedback and requested changes are incorporated into the system and the system trialed again. However, this iterative trialing of a system is strictly part of the development process of satisfying the system requirements and does not replace formal Acceptance Testing. Parallel Running Parallel running is normally conducted after implementation prior to a full cut-over to the new system. However, parallel running may also occur during Acceptance Testing. Parallel running is where an existing system continues to operate as normal, with the new system duplicating the processes and activities. The results of the old and new systems can then be compared. Caution should be taken when planning parallel running as it can place additional and excessive demands on end-users’ time. It may be necessary to consider increased personnel numbers. 38 The Acceptance Testing Kit – Part 2 Minor System Deficiency Delays Even minor system modifications, implemented at a late stage of development to overcome deficiencies in the business requirements specification, can cause final delivery of the system to be significantly delayed. Acceptance of the system, subject to any minor modifications being done after the system has been fully implemented, is at the discretion of the Project Manager and Steering Committee. Generally, these issues will be handled under change management or contract variation procedures. 39
© Copyright 2024