Aiming for the stars? Great, but did you have to build a rocket first.
--Your friends at LectureNotes

Note for Software Testing Methodologies - STM By Jalaiah Saikam

  • Software Testing Methodologies - STM
  • Note
  • Computer Science Engineering
  • 16 Topics
  • 162 Offline Downloads
  • Uploaded 1 year ago
0 User(s)
Download PDFOrder Printed Copy

Share it with your friends

Leave your Comments

Text from page-3

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

Text from page-4

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

Text from page-5

Since software is also a product, its quality is primary from the user’s point of view. Therefore, the first goal of understanding and performing the testing process is to enhance the quality of the software product. The software should be passed through a rigorous reliability analysis to attain high quality standards. Customer Satisfaction: Software Testing Reliability Quality Customer Satisfaction If we want the customer to be satisfied with the software product, then testing should be complete and thorough. Testing should be complete in the sense that it must satisfy the user for all the specified requirements mentioned in the user manual as well as the unspecified requirements which are otherwise understood. Risk Management: Software Testing Reliability Quality Customer Satisfaction Risk Factors: -Cost -Time -Resources -Critical Features Risk is the probability that undesirable events will occur in a system. These undesirable events will prevent the organization from successfully implementing in business initiatives. It is the tester’s responsibility to evaluate business risks (such as cost, time, resources and critical features) and make the same a basis for testing choices. Testers should also categorize the levels of risk after their assessment (like low-level risk, high risk, moderate risk). Post Implementation Goals: Reduced Maintenance Cost: The maintenance cost of any software product is not physical cost, as the software does not wear out. The only maintenance cost in a software product is its failure due to errors. Post release errors are costlier to fix, as they are difficult to detect. Improved Software Testing Process: A testing process for one project may not be successful and there may be scope for improvement. Therefore, the bug history and post implementation results can be analyzed to find out snags in the present testing process. 5

Text from page-6

Psychology of Software Testing: Software testing is directly related to human psychology. Though Software testing has not been defined till now, but most frequently it is defined as: “Testing is the process of demonstrating that there are no errors” The purpose testing is to show that the Software performs its intended functions correctly. If testing is performed keeping this goal in mind, then we cannot achieve the desired goals as we will not able to test the software as a whole. This approach is based on the human psychology that human beings tend to work according to the goals fixed in their minds. If we have a pre-conceived assumption that the software is error free, then we will design the test cases to show that all the modules run smoothly. On the other hand if our goal is to demonstrate that a program has errors, then we will design test cases having a higher probability to uncover bugs. It means now we don’t think of testing only those features or specifications which may have mentioned in document like SRS, but we also think in terms of finding bugs in the features or domains which are understood but not specified. Thus Software testing may be designed as: ―Testing is the process of executing a program with the intent of finding errors” Definition: ―Testing is the process of executing a program with the intent of finding errors” ―A Successful test is one that uncovers as as-yet-undiscovered error” --Myers “Testing can show the presence of bugs but never their absence” --W Dijkstra “ Software Testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test, with respect to the context which it is intended to operate” --Cem Kaner ―Software testing is the process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate the features of the software item” -IEEE 6

Lecture Notes