Milestone Testing Techniques

Josh - May 23 '21 - - Dev Community

In my assignment for school this week, I was asked to reflect on the milestone submitted for my Project that is due towards the end of the term. First, I will discuss some of the software testing techniques that I employed. For this module I used black-box techniques. I derived test cases using the specification document for the classes that needed programmed. Black-box techniques are not concerned with how a system works but only if it does what it is supposed to do. The modules that I was designing were not complex but one way of disseminating the information for test cases is to create a decision table. These tables display the business rules, conditions and actions required for the system making it much easier to create test cases to meet the requirements. My modules were very straightforward, so I was able to visualize these tables in my head. Another form of testing I used was a white-box technique called code coverage. Using the Eclipse IDE, I was able to determine the percentage of the executable statements I tested against. My module tests covered roughly 82% of the code base which through research I deem appropriate.

There are many other testing techniques that can be employed on a project. If what I was working on was much larger there are graphs and coverage techniques that I would have utilized as well. Flow and control charts give a visual representation of decisions made in the program and how they move through processes. These can be useful in creating test cases to make sure the system is programmed the way it was designed. Decision testing and coverage is similar to execution coverage but instead looks to make sure all of the lines of code are reachable. Sometimes a branching path will be created but the developer will forget to create a way for the system to reach it. Other types of testing include experience-based techniques. Testers that have been in the profession are able to leverage their experience on what typically fails in the systems they develop and test for specific defects. This can sometimes be very efficient depending on the level of expertise.

The techniques discussed are applicable to many different types of testing. Black-box techniques are great for testing against the specification or model laid out for what the system should do. These specifications are known as a test basis and can easily identify test conditions that test cases must be derived from. In order for these techniques to be effective the test basis should not define how the system will operate but only what it should achieve. White-box techniques are used to explore the system and component structures at different levels. At the component level, the tester will test how the program lays out decisions while at the integration level interest is specific to how components interact with each other. Many of these tests are performed using specialized tools and allow testers to check what is being tested is structurally sound. Lastly, as mentioned before, there is also experience based testing. Models and standard procedures do not always catch important defects. Sometimes specific tests will need to be created that are targeted based on past projects from experienced testers. Critical defects that they have found in previous systems can be applied to future work. Using a combination of all the techniques available are crucial to being a highly effective tester in production.

Source:

  1. Hambling, Brian Morgan, Peter Samaroo, Angelina Thompson, Geoff Williams, Peter. (2015). Software Testing - An ISTQB-BCS Certified Tester Foundation Guide (3rd Edition). BCS The Chartered Institute for IT. Retrieved from https://app.knovel.com/hotlink/toc/id:kpSTAIST01/software-testing-an-istqb/software-testing-an-istqb
. . . . . . . . . . . . . . . . . . . . .