IMPORTANCE OF SYSTEMS TEST AND EVALUATION IN MODERN SYSTEMS` LIFE-CYCLE
SYSTEMS TEST & EVALUATION IN MODERN SYSTEMS` LIFE-CYCLE 13
IMPORTANCEOF SYSTEMS TEST AND EVALUATION IN MODERN SYSTEMS` LIFE-CYCLE
Section 1 5
Scope of Software testing 5
Role of software testing in SDLC 6
Inception stage 6
Elaboration Phase 6
Construction phase 7
Transition phase 7
Importance of software testing 7
Identify bugs and fix defects 7
Improved product quality 8
Prevent defect migration 8
Cultivate creativity and a positive attitude 8
Increased competition 9
Section 2 9
Evaluation in software development 9
Roles of system evaluation 10
Performing a detailed feasibility study 10
Performs cost-benefit analysis 11
Systemstesting and evaluation are essential and valuable phases in anorganization, in the process of Software Development Life Cycle(SDLC). This process of SDLC has currently become the mostsignificant part of development in organizations. Following this,there exist a great deal of evidence that suggests that the moderncomputerized information systems (IS) are achieving the level ofintegration into the management system of many organizations. Thishas occurred because of the current advancing technology, as well as,the advances in the organization’s ability to understand and copewith the changing technology. For this reason, most organizationsdefine their SDLC process in various formats of varying number ofphases and, thus, carry out the process differently. During the lifecycle of software development, many problems arise. Resolution ofthese problems can be time consuming and expensive. As a result, mostorganizations understand the importance of testing and evaluationwithin the lifecycle of software development. Furthermore,organizations have realized the importance and advantage of systemtesting and evaluation in improving reliability and performance, aswell as, detecting and removing defects. This study highlights theSDLC process and analyzes the role, importance and advantages ofsystem testing and evaluation in the SDLC.
SystemsDevelopment Life Cycle (SDLC) is common in many organizations and isdefined as a framework or a process describing the phases ofdevelopment of an information system in an organization (Schwalbe,2013). The SDLC model has been a staple in IT texts since the 1960sand is based on the idea of a product life cycle. The development ofinformation system is usually done by using various traditionalsystems bought from different vendors. This also includes thetechnical staff and the end users of the systems. In most cases, thetwo need to work in order to arrive at an optimal information system.SDLC process includes various phases during which the definedsoftware products are created or modified. These phases includeplanning, design, requirement analysis, testing, definition,maintenance, implementation, integration and development. Inaddition, popular SDLC models include the waterfall model, the spiralmodel, the prototyping model, the incremental build and the rapidApplication development model. These models evolve from anengineering background, which has traditionally not given humanfactors a major place in planning priorities.
SDLCimproves the chances that if an organization selects the correctapplication system for its needs, the probability of a successfulimplementation increases. Thus, the advantage of the SDLC methodologyis that a project following a proven SDLC method generally produceshigh quality systems that are well contrasted and designed.Conversely, without a proven SDLC methodology, a system may lack somedesirable characteristics and may fail to meet the aim andrequirements of the organization. Another common benefit of theSoftware Development Lifecycle is that the process is well-defined,and the life-cycle intelligence from past efforts generallytranslates into predictable results and the efficient use ofresources (Bass et al., 2003). However, the SDLC process has beencriticized for being slow and its tendency to handle systems changesand backlogs particularly well. There are some modifications andapproaches such as analysis and object oriented design that someclaim to be better at these aspects of managing the lifecycle.Nevertheless, it is important to adopt and use a proper SDLCmethodology. An organization’s familiarity and expertise with amethodology may be as important as the specific choice ofmethodology.
Section 1Scope of Software testing
Inmost cases, software testing is confused with software debugging.However, the two vary as the former of a common process used to finderrors that are ‘unknown’ while the latter is the process used toremove the ‘known’ errors. In general, the primary function andthe main objective behind software testing is to detect errors anduncover them. The testing effort is also conducted to verify thatimportant software criteria are met and they satisfy therequirements of the customers or end users. This helps to increasethe possibility that, in all circumstances, the software applicationwill function appropriately, and will as well, meet the definedrequirements, therefore, satisfy the end user of the application.Most importantly, the primary function of testing is only achieved bydetecting and removing defects in the software, whether throughwalk-through, testing, inspection or excellent software developmentpractices (Ahmed, 2010).
Thehigh level goal of testing is to identify defects in the softwareapplication, therefore, permitting the prevention, detection, andsubsequent removal of defects, and the creation of a stable system.This can be achieved by using automated testing that supports manualtesting efforts intended to achieve the high level testing goal. Ifthe automated testing is implemented correctly, it promotes faster,better and more efficient testing. Eventually, it is likely to leadto a reduction of a reliable system, as well as, the enhancement of arepeatable test process. This will also serve the purpose of findingdefects in order for them to be fixed, as well as, help to definequality before the software is ready to be deployed.
Softwaretesting helps to verify that the software program works according tothe specification. It is possible to detect a software program thatworks correctly if the program behaves as specified, if it keepsrunning correctly for as long as expected, if the program producesthe correct output when given a valid input, if the product does nothand or crash, and if the program correctly rejects an input whengiven an invalid input (Dustin, 2002). In addition to verifying thatthe software program works correctly and without any major effect,the test team and the quality assurance personnel seeks to verifythat other outputs of the application development life cycle arecorrect and work as required.
Role of software testing inSDLCInceptionstage
Thisis the first phase where goals of the project are defined. Inaddition, this phase contains the project planning and start-upactivities and the process configuration for Rational Unified Process(RUP). Testing plays a significant role as it allows an engineer toestablish and document the business case, and baseline vision for thesolution. The test manager and team members should be involved duringthe system’s inception phase. This involvement adds understandingof customer needs, issues, potential risks, and most importantlyfunctionality.
Theelaboration phase is the second phase, which primarily deals withanalysis, the requirements gathering, and design phases of a project.A product’s basic concept and requirements are created anddeveloped as defined by its features and functions. However, therisks pertaining to the project are also identified and a riskmitigation plan prepared. The risks can be of various natures, suchas business related, technological challenges, skill related, and therisk mitigation plan. The software tester in this phase plays asignificant role as he/she tries to understand the development of theproject.
Thesoftware in this phase is brought from the elaboration to theimplementation form. The bulk effort goes into the construction phaseas the cases are transformed into actual software code. The softwareis then designed, written and released from beta testing operation.After the software code is created, the product’s features andfunctions are fully developed and tested. If a project is large andcomplex, then sub-teams will be testing their portions of thesoftware code in a concurrent manner and then sharing testinginformation on an ongoing basis with other teams. Software testingplays a crucial role in these phases, as the product should be testedas early as possible.
Thisis the fourth phase, which takes place just before the main releaseof software product. This phase is progressively turned over to itsusers, and may include user acceptance testing, beta testing, and aphased deployment (Stepanek, 2005). Some of the key things addressedin this phase include product scalability, performance, andoptimization among others. The steps relevant in transforming theproduct from a piece of software to something that can be used arecarried out in this phase. Activities in this phase include testing,demonstrations, and training users, and they required to place thesoftware into the hands of the end-users. Much effort is currentlydedicated to the transition phase in order to train users, developuser-oriented documentation and support consumers in the initial useof product.
Importance of software testingIdentifybugs and fix defects
Testengineers use testing to determine and identify a bug and defect thesoftware application. Defect analysis and defect prevention areactivities that are of increasing importance in software testing anddevelopment. Therefore, testing is essential as it allows theengineers to document the details of a defect and the steps necessaryto recreate it, or reference a test procedure to expose the problem,as well as, help the development team pursue its defect-correctactivities (Meyerhoff and Amland, 2002). Testers are then able torefer to the tracking tool to see which defects are being identified.
Productquality improvement is not a new pursuit for mankind. Organizationsare currently improving the quality of software products by drivingthe testing process with statistical sampling, trustworthiness,measurement of confidence levels and implementing softwarereliability goals. The application of various testing tools allowsthe engineers to conclude the general operational performance of thesoftware product. In addition, establishing a test processimprovement group helps to monitors the testing process andpractices, as well as, identifies areas of improvement (Boehm andBasili, 2001).
Thedetection of errors and defects in the early stages of the softwaredevelopment cycle helps to prevent migration of errors to specificdesigns, and from designs into codes. Chances are that manyorganizations are currently missing the best opportunity forimproving the effectiveness of their product by failing to utilizetesting in earliest stages of the application development process. Aneffective and efficient test program puts a stop to the migration oferrors and defects from any phase of development to any subsequentphase.
Cultivatecreativity and a positive attitude
Testingrequires disciplined creativity and a positive team attitude. Goodtesting that is devised and executed successfully encourages teameffort in discovering the defects in a product. Considerablecreativity among team members is needed to destroy errors and defectsin a controlled and systematic way. This helps to establish propermental attitude among team members and has a profound effect ontesting success. As a result, managers should cultivate a positiveattitude, creativity and discipline among team members.
Softwareindustry is one of the rapidly growing industries, with competitorsincreasing tremendously. In order to ensure survival in thisincreasingly, competitive market, organizations have to show theircommitment to quality and also assess the software developmentprocess. As a result, the goal for quality improvement should help toincrease competition, and help organizations gain a competitiveadvantage. Thus, product testing improves the quality of a product byincreasing competitiveness, and reduces risk by increasing usersatisfaction and acceptance of the product. Organizations that ensureeffective testing gain in operational efficiency and achieveproductivity through the use of advanced technology, as well as, through creative and skilled professionals.
Section 2Evaluation in softwaredevelopment
Softwaresystem evaluation enables prediction regarding the whole system lifecycle, especially on performance, cost, reliability and maintenance.According to Shillito and Marle (2000), the evaluation phasecategorizes ideas, gathers information about their cost, screens theideas, and then measures the value of the best ideas. In some cases, there is much uncertainty about the system, since implementing poordecision can be disastrous. In this case, the purpose and objectiveof evaluation and selection procedure is to structure the decisionmaking process, and thereby reduce the risk of making poor anddisastrous decisions. There do not a magic formula in which themanagement can use to make good decisions. In fact, the decisionsshould come down from the management judgment. Therefore, theobjective of the management in decision making should be to makeinformed judgment. System evaluation plays a major role in performinga feasibility study and a cost benefit analysis.
Roles of system evaluationPerforminga detailed feasibility study
AnEvaluation enables the organization to re-examine the feasibilityfactors on a preliminary basis as part of the systems proposal. Forthis reason, informed evaluators should perform a detailedfeasibility study. This group should co consist of the projectmanager, systems professionals, and user representatives. Thefeasibility factors that are commonly evaluated include technicalfeasibility, legal feasibility, operation feasibility, schedule andeconomic feasibility.
Schedulefeasibility is the measure of how reasonable the project time is andthe need to initiate deadline. The consideration of this factorplaces the evaluator in a good position to assess the likelihood thata project will come to an end according to the schedule. Notablefactors such as system design, technological platform, system design,and user training may influence the original schedule. Therefore, theevaluator should effective apply schedule feasibility to measure thelimit of time management of a particular project. This is because aproject can fail terribly if it takes longer than expected to bcompleted, due to cost variation.
Theevaluation system analyzes economic feasibility by analyzing costs,benefits, and economic trends. This is the most frequent used methodfor evaluating the effectiveness of a new system. The process is usedto determine the benefits and saving that are expected a candidatesystem and compare them with costs. The benefit of evaluatingeconomic feasibility outweighs costs, whereas the decision is made todesign and implement the system. Therefore, organizations shouldaccurately evaluate economic feasibility by weighing the cost versusbenefits before taking an action.
Infinancial transaction processing system, the legality of the systemis always an issue. In this case, evaluation play a major role inlegal feasibility, as it involves the identification of the existenceof any form of conflicts between the proposed new system, and legalrequirement (Dransfied and Needham, 2005). For instance, the dataprocessing system must comply with the local Data Protection Act.Therefore, the evaluator should be concerned that the system does notviolate laws pertaining to rights of privacy or wrong distribution ofinformation.
Evaluatingthe operational feasibility of a design requires a well-trained,motivated and experienced engineer. The evaluator ensures that thecurrent procedures and the way in which the organization works wouldsupport the new technology. This will help to measure how ell aproposed system solves the problem and takes advantage of theopportunities identified during scope definition, as well as, how itsatisfies the requirements identified in the requirements analysisphase of system evaluation.
Thistechnique is used by evaluators to measure the relationship of coststo benefits, as well as the efficiency and effectiveness of policiesand programs in the evaluation phase. The management is able todetermine whether the benefits received from a proposed systemoutweighs its costs. This technique suggests that factors in adecision or policy should be quantified so as to provide a morecoherent basis for establishing rule and making new policies. Theadvantage of cost benefit analysis as a tool for evaluation isobvious in the sense that it provides an apparently neutral techniquefor identifying costs and benefits of the policy, system or program(Huang, 2009). Although this tool has received much criticism, costbenefit analysis combined with feasibility factors is a useful toolfor competing systems designs.
Softwaretest and evaluation remains among the most expensive, most difficult,but the most beneficial. There is a clear need for effective systemtesting and evaluation in the engineering industry. To achievesoftware quality, software testing and evaluation is an crucialaspect and component in all software development. Software testingand evaluation is characterized by the existence of many methods,tools and techniques that must fit the test and evaluation situationincluding goals and restrictions.
Someorganizations face challenges of choosing a particular improvementmodel, which is compatible to their goals and needs. Theseorganizations should be able to critically analyze available testprocess improvement approaches, and a generic evaluation process thatcovers a broad aspect of process improvement models. The evaluationprocess can help reveal improvement suggestions to improve animplemented process improvement model. Most importantly, the callfor testing software has often been ignored, and systems proceededinto production without the software attaining the appropriate levelof maturity to yield valid results. It is noteworthy that theimportance of software testing should not be overlooked because itcosts money, because failure of software testing may cost even moremoney.
Ahmed,A. (2010). Softwaretesting as a service.Boca Raton, FL: CRC Press.
Bass,L. Paul C., & Rick K. (2003). SoftwareArchitecture In Practice, Second Edition. Boston:Addison Wesley. pp. 21–24.
Boehm,B. and Basili, V.R. (2001) SoftwareDefect Reduction Top 10 List, Computer,Volume 34, Number 1, pp. 135-137.
Dransfield,R., & Needham, D. (2005). GCEAS Level Applied Business Double Award for OCR.Oxford: Heinemann,..
Dustin,E. (2002). EffectiveSoftware Testing: 50 Specific Ways to Improve Your Testing.Boston: Addison-Wesley.
Huang,A.H. (2009).“Modelfor Environmentally Sustainable Information Systems Development,”Journalof Computer Information Systems,Volume 49, Number 4, pp. 114-121.
Meyerhoff,D., & Amland, S. (2002). Softwarequality and software testing in Internet times.Berlin: Springer.
Schwalbe,K. (2013). InformationTechnology Project Management.Cambridge, Ma.: Course Technology.
Shillito,M. L., & Marle, D. J. (2000). Value,its measurement, design, and management.New York: Wiley.
Stepanek,G. (2005). SoftwareProject Secrets: Why Software Projects Fail.Berkeley: Apress .