×
A DAY WITHOUT LEARNING IS A DAY WASTED
--Your friends at LectureNotes
Close

Software Testing Methodologies

by Jalaiah Saikam
Type: NoteInstitute: JNTUK KAKINADA Specialization: Computer Science EngineeringDownloads: 17Views: 692Uploaded: 1 month agoAdd to Favourite

Touch here to read
Page-1

Software Testing Methodologies by Jalaiah Saikam

Topic:
Jalaiah Saikam
Jalaiah Saikam

/ 121

Share it with your friends

Suggested Materials

Leave your Comments

Contributors

Jalaiah Saikam
Jalaiah Saikam
SOFTWARE TESTING METHODOLOGIES Unit 1 Software Testing Software Testing Terminology and Methodology Software Testing Introduction Evolution Myths & Facts Goals Psychology Definition Model for testing Effective Vs Exhaustive Software Testing Introduction: --Software is becoming complex, but the demand for quality in software products has been increased. --This rise in customer awareness for quality increases the workload and responsibility of the software development team. --That is why software testing has gained so much popularity in the last decade. --Jobs trends have shifted from development to software testing. --Today software quality assurance and software testing courses are offered by many institutions. --Organizations have separate testing groups with proper hierarchy. --Software development is driven with testing outputs. Evolution: The different phases of software testing are: Debugging Oriented Phase (Before 1957) : This phase is the early period of testing. At that time, testing basics were unknown. Programs were Written and then tested by the programmers until they were sure that all the bugs were removed. The term used for testing was checkout, focused on getting the system to run. Debugging was a more general term at that time. Till 1956, there was no clear distinction between software development, testing and debugging. Demonstration – Oriented Phase (1957-1978): In 1957, Charles Baker pointed out that the purpose of checkout is not only to run the software but also to determine the correctness according to the mentioned requirements. Thus, the scope of checkout of a program increased from program runs to program correctness. Moreover, the purpose of checkout was to show the absence of errors. Destruction – Oriented Phase (1979-1982): 1
In this phase testing process is changed from 'testing is to show the absence of errors' to 'testing is to find more and more errors'. This phase separated debugging from testing and stressed on the valuable test cases if they explore more bugs. Evolution – Oriented Phase (1983-1987): With the concept of early testing, it was realized that if the bugs were identified at an early stage of development, it was cheaper to debug them as compared to the bugs found in implementation or post-implementation phases. This phase streses on the quality of software products such that it can be evaluated at every stage of development. In fact, the early testing concept was established in the form of verification and validation activities which help in producing better quality software. Prevention – Oriented Phase (1988-1995): The evaluation model stressed on the concept of bug prevention as compared to the earlier concept of bug detection. With the idea of early detection of bugs we can prevent the in implementation or furthet phases. The prevention model includes test planning, test analysis, and test design activities playing a major role, while the evaluation phase mainly relies on analysis and reviewing techniques other than testing. Process – Oriented Phase(1996 onwards): In this phase testing was established as a complete process rather than a single phase (performed after coding) in the SDLC. The testing process starts as soon as the requirements for a project are specified and its runs in parallel to SDLC. Moreover, the model for measuring the performance of a testing process has also been developed like CMM. The model for measuring the testing process is known as Testing Maturity Model (TMM). The evolution of software testing was also discussed by ?Hung Q Nguyen and Rob Pirozzi in three phases namely Software Testing 1.0, Software Testing 2.0 and Software Testing 3.0. Software Testing1.0: In this phase, Software testing was just considered a single phase to be performed after coding of the software in SDLC. No test organization was there. A few testing tools were present but their use was limited due to high cost. Management was not concerned with testing, as there was no quality goal. Software Testing2.0: In this phase, Software Testing gained importance in SDLC and the concept of early testing also started. Testing was evolving in the direction of planning the test resources. Many testing tools were also available in this phase. Software Testing3.0: In this phase, Software Testing is being evolved in the form of a process which is based on strategic effort. It means that there should be a process which gives us a roadmap of the overall testing process. Moreover, it should be driven by quality goals so that all controlling and monitoring activities can be performed by the mangers. Thus the management is actively involved in the testing phase. 2
Myths & Facts: Myth: ―Testing is a single phase in SDLC‖ Truth: It is a myth that software testing is just a phase in SDLC and we perform testing only when the running code of the module is ready. But in reality, testing starts as soon as we get the requirement specifications for the software and continues even after implementation of the software. Myth: ―Testing is easy‖ Truth: The general perception is that, software testing is an easy job, wherin test cases are executed with testing tools only. But in reality, tools are there to automate the tasks and not to carry out all testing activities. Testers job is not easy, as they have to plan and develop the test cases manually and it requires a thorough understanding of the project being developed with its overall design. Myth: ―Software development is worth more than testing‖ Truth: This myth prevails in the minds of every team member and even in fresher’s who are seeking job. As a fresher, we dream of a job as a developer. We get into the organization as a developer and feel superior to other team members. But testing has now become as established path for job- seekers. Testing is a complete process like development, so the testing tam enjoys equal status and importance as the development team. Myth: ―Complete testing is possible‖ Truth: Complete testing at the surface level assumes that if we are giving all the inputs to the software, then it must be tested for all of them. But in reality, it is not possible to provide all the possible inputs to test the software, as the input domain of even a small program is too large to test. This is the reason why the term 'Complete Testing' has been replaced with 'Effective Testing'. Myth: ―Testing starts after program development‖ Truth: Most of the team members who are not aware of testing as a process, still feel that testing cannot commence before coding. But this is not true, as the work of the tester begins as soon as we get the specifications. The tester performs testing at the end of every phase in SDLC in the form of verification and validation. Myth: ―The purpose of the testing is to check the functionality of the software‖ Truth: Today all the testing activities are driven by quality goals. Ultimately, the goal of testing is also to ensure quality of the software. There are various things related to quality of the software, for which test cases must be executed. Myth: ―Anyone can be tester‖ Truth: As an established process, software testing as a career also needs training for various purposes such as to understand 1) Various phases of SDLC, 2) Recent techniques to design test cases, 3) various tools and how to work on them. 3
Goals of Software Testing: Short-Term or Immediate Goals: These goals are the immediate results after performing testing. These goals may be set in the individual phases of SDLC. Bug Discovery: The immediate goal of testing is to find errors at any stage of software development. More the bugs discovered at an early stage, better will be success rate of software testing. Bug Prevention: From the behavior and interpretation of bugs discovered, everyone in the software development team gets to learn how to code safely such that the bugs discovered should not be repeated in later stages or future stages. Long-Term Goals: Quality: 4

Lecture Notes