The Software Development Cycle Print
Written by Sam Azer   
Tuesday, 08 April 2008
Testing & Review Phase

Testing & Review

In this phase the developers tag the completed modules as being ready for testing and copy their product to a testing sandbox so that the Quality Assurance staff can execute the test plans that were written/updated during the development phase of the cycle.

After each test execution, a meeting is held to review the bugs that were found and prioritize them. The developers then fix the prioritized bugs and the tests are executed again. These test-fix cycles continue until the product is stable.

Once a stable product is ready for User testing, the developers tag the completed modules and copy their product to a sandbox that is accessible to the users. Not all users will test this product. The Project Manager will find a few Power Users who will take the time to review the software and report their conclusions. They might also log bugs into the bug tracking system which will be reviewed and most likely fixed by the development team (after being prioritized.)

Expectations

Remember that, during the Design and Implementation phases, the customers were discussing all sorts of great ideas between themselves - but the development team is not working on any of these ideas. It is very important to manage the expectations of the customers who see the software in this phase. Customers who will be involved in testing must understand that they will be looking at the results of the last Evaluation Phase.

To maintain end-user buy-in for the project, it is important that the users have a clear picture in their minds of what has been done with the ideas that they've been discussing. In practice their ideas may not have been passed along to the Project Manager - so the development team is often limited in their ability to discuss specific new ideas and how they are being integrated into future cycles. Nevertheless, the customers need to know that their ideas have been documented and will be considered.

End-users need to have a clear idea of what they will be testing in the current phase of the software development cycle. In later cycles, after the stakeholders have experienced a few cycles of regular software releases, expectations will become a much less important issue - everybody will know that their ideas will be passed along to the development team during the Evaluation phase in a future cycle and not the current one.

Failure to manage these expectations can result in a situation where the Design and Implementation phases of the current cycle are revisited without completing the current cycle. This prevents the building of a solid foundation on which the project can grow successfully. Over time, development will continue but there will be no way to determine if the project meets the real needs of the end-users. Perceived needs will be met but at a cost which can't be evaluated relative to the real value of the features produced. This stretching of the Implementation phase can seriously threaten the success of the project overall.

Acceptance Testing

If this cycle is expected to produce a result which is intended to satisfy a contractual obligation, a special test is executed. This test, called an Acceptance Test, contains only test steps designed to verify that the software meets the contractual obligation. Acceptance tests are usually simple and quick to execute. They are far less detailed than the majority of tests that are performed before the acceptance step. The customer may already have been using the software for some time prior to the acceptance test and is already prepared to accept the software. Therefore, the acceptance test is often omitted if the customer signs an acceptance statement or approves the software for release to a production server.

Go No-Go Approval

If this cycle is expected to produce a result which is to be posted to a production server, formal approval of the posting is required from the customer. To obtain this approval a Go-No-Go meeting is held. During this meeting the heads of any departments affected by the release of the software will review all bugs remaining in the Bug Tracking System. Department heads will be able to query the development team leaders to ensure that everybody has a clear idea of the risks, if any, involved in making the release. If all department heads approve the release, the package can be installed on the production server. Otherwise, the various managers must decide what they want to do and take action to ensure that it is done.

Unfortunately, many Go-No-Go meetings result in the software being approved but the release being deferred. There are many reasons for this:

  • Many releases involve functionality changes that require employee training. If the employees have not been trained to use the new software, the release might have to wait for the training to be completed.
  • Many releases are of no value to the customer if the necessary data is not available. If the customer needs time to prepare the necessary data, the release will be delayed.
  • Many releases involve components that must interface with new features that are in external systems. If one of those external systems is not ready yet, the release of the current product will have to wait until it is.
  • Many releases add complexity and overhead to existing software. This might necessitate increasing the amount of available memory or disk space in the production server. From time to time a new feature in the software to be released requires an Operating System or Component upgrade before it can be used on the production server. If these upgrades are held up for some reason, the release to production will have to wait for them to be completed.

Regardless of the results of a Go-No-Go meeting, the development team can simply branch the software in the Revision Control System and move forward with the Evaluation Phase of the next cycle. When the next Go-No-Go meeting is called, the software will still be available for posting to production.

At this point, we know that we have a solid product in our hands. It does what the customer wants it to do and it works correctly - thereby meeting the two main objectives of the Software Engineering process. When we start writing additional software, we know we won't have any problems with the software we've written already; we are confident that the work will go smoothly as we will be building on a solid foundation.

Finally, we close this Software Development Cycle with a review of the work that has been done in the current cycle. Are we on track? Did we learn anything in this cycle that we need to incorporate into our future cycles (good or bad?) Is there anything we need to change in our Project Roadmap?

Following this review, we start the Evaluation Phase of the next cycle and repeat these steps again.

 


 

Mailing List

To join our mailing list,
enter your email address
and press Subscribe:

Login Form






Lost Password?
No account yet? Register

AzerTech RSS


Copyright © 2010 by AzerTech.net, All rights reserved.
Powered By BNT Solutions, Inc.



Note: Site functionality is impaired when using IE6 or less.