Friday, December 22, 2023

Transparency vs opacity: layers of visibility

 

     A transparent situation allows full awareness of all that is going on and all interactions. An opaque situation means that only what is seen and heard, in response to some type of action, is all that is known. In the world of software testing, these are referred to as white box and black box situations which may be used for evaluation and testing. However, such a difference also exists within interpersonal relationships.

     In many instances, we know only what a person has done without knowing anything of the reasons and methods of doing the action. We may not even know what event, or events, occurred to cause the action. If all we know is from the "outside" then it is an opaque situation. It is hard to envision a person-to-person interaction where full transparency is possible. Full open communication and active listening can help but that only reaches conscious thoughts and reasonings.

     Groups of people may allow processes that are closer to transparent. What is happening within each person is still unknown but it is possible to keep track of interactions between the people and associate that with actions taken by the group. To put together a "rule book", transparency is not needed. What is needed are the events and the reactions -- though there may be so many variants of combinations of events that a complete rule book is impossible. These sets of "rule books" may be considered to be sets of laws -- both natural laws as well as human-created laws. However, in order to potentially change reactions to given inputs, transparency is needed.

     Let's go back to the world of software testing as it is much easier to examine internal behaviors and test reactions to given input than it is to do such with people. If you are doing transparent/white box testing, then you have access to all of the software code for the project. You certainly can connect to the places where the software is SUPPOSED to connect to other pieces of software but you can also examine just how it reaches this point. With experience, you can notice certain vulnerabilities -- places where the software can be persuaded to do things that it wasn't supposed to do. This is a blessing/curse for "open source software" because people can help your software become safer and more robust -- but others, who do not have the general public's best welfare in mind, can locate and take advantage of weaknesses.

     Within this transparent mode of testing, each comparison and each test can, and should, be tested for all legal values as well as a representation of illegal values. Proper error responses should happen with all illegal values and correct output should happen for all legal values. Once the individual tests have been checked, it can be checked at the function level and then at the system component level. Finally, we are at the stage of testing the full system. At this point, transparent testing may be similar, or identical to, opaque/black box testing.

     Like an onion, layers can be removed and something hidden can be made visible. Once visible, it can be examined and tested. This is true of software, of societies, of individuals, and of other objects which are the focus of examination by scientists and other interested people.

To Waste or to Waist: That is the question

       As is true of many people growing up in the US, I was encouraged to always clean my plate (encouraged is putting it mildly -- I remem...