In my initial Fall meeting with Dr. Bowring, we delved into the intriguing realm of software testing. The session commenced with an engaging testing assignment, challenging my ability to think creatively when crafting inputs and oracles for special test cases. This exercise revolved around a classic problem known as the “Triangle Problem,” where three input values determine whether a triangle is scalene, isosceles, or equilateral (as detailed in G. Myers’ book from 1979).

Our conversation then shifted towards the concept of Black Box Testing—a technique where testers focus solely on the software’s requirements, without peering into the internal code. This approach empowers testers to assess software without requiring access to the underlying source code, highlighting its relevance in real-world testing scenarios.

Dr. Bowring encouraged me to explore the concept of Contracts, as outlined in G. Myers’ “The Art of Software Testing.” Contracts are invaluable in software testing and quality assurance, providing a structured framework for validation. They come in three main types: Specification, Interface, and Procedural, each serving a distinct purpose in ensuring software correctness.

Key terms that are integral to becoming a proficient tester were emphasized:

Preconditions: These ensure the software is ready to execute an operation, preventing potential errors. For example, before initiating a bank withdrawal, a precondition checks if the account balance covers the withdrawal amount.

Postconditions: These define the expected software state after an operation. For instance, following a successful withdrawal, the account balance should reflect the reduced amount.

Invariants: Invariants are conditions that must consistently hold true during program execution, serving as a cornerstone for software correctness.

Dr. Bowring tasked me with exploring the Tripoli code and creating test cases, providing a valuable opportunity to expand my expertise in JUnit testing. Additionally, I was encouraged to explore the Liskov Substitution Principle by MIT professor Barbara Liskov, a subject that promises to expand my testing expertise.

Stay tuned for my next blog post, where I’ll delve deeper into these topics. Thank you for joining me on this journey through the world of software testing and quality assurance.