Jump to content

User:J-at-ywalters-dot-net/sandbox

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by J-at-ywalters-dot-net (talk | contribs) at 18:20, 29 August 2020. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

J-at-ywalters-dot-net (j@ywalters.net) sandbox page


Open box testing

Illustration of Open Box Testing discipline

Open box testing (also known as white box testing, clear box testing, glass box testing, transparent box testing, and structural testing) describes a software validation and verification discipline that is typically performed by the application engineers that have directly contributed to a project's source code. Individuals that have direct access to source code are considered to be able to see within the box and have with that ability their significant understanding of the computer programming within the project enables certain activities but also creates some bias challenges.

The following, commonly referenced types of testing activities often comprise open box testing disciplines within organizations that are following modern software engineering practices:

  • Unit testing
    • smallest piece of code that can be logically isolated
  • Component testing
    • also known as program or module testing individual components separately without integrating with other components done after unit testing
  • Integration testing
    • individual software modules are combined and tested as a group
  • System testing
    • verification of a completely integrated system

Practitioners of open box testing disciplines are subject to various cognitive biases, particularly confirmation bias, as it is impractical to have people objectively evaluate the quality of work that they have done. Third party, unprejudiced validations of the work of others is a long determined best practice throughout many industries.

We suck at testing our own code. We suck so badly at it that it has led to entire professions like as Quality Assurance analysts and test engineers. We're not necessarily bad at coding, but we're notoriously bad at finding our own bugs.
Confirmation Bias: How your brain wants to wreck your code [1]

Open box testing activities are typically performed prior to an official, fully integrated installation of a piece of software and the start of an official, objective testing cycle begins. Post-installation, a wide variety of closed box testing disciplines are performed by a variety of different types of software testing professionals.

Illustration of Closed Box Testing discipline

The open box testing disciplines are among the central tenets of the Shift-left testing approach to software development. As part of this "test early and often" modern and progressive approach, developer responsibilities are incorporated into the overall testing cycle earlier than ever before. Focusing on finding and remediating software defects as early as possible within the Software Development Life Cycle (SDLC) has profound benefits to organizations that support it because quality is clearly acknowledged as a shared responsibility and testing is prevalent throughout the process.

In an Agile software development enabled world, teams are being asked to reduce the length of time of software delivery while continuously improving quality of each release of the software. At the same time, there is typically an increased pressure to reduce testing costs.

All software testing disciplines involve identifying flaws, errors and defects in the application code that must be fixed. The processes that are undertaken provide for confidence that the functionality and correctness of a software has been analyzed and verified to be correct.

The main purpose of testing can be quality assurance, reliability estimation, validation and verification. Software testing is a fundamental component of software quality assurance and represents a review of specification, design and coding. The main objective of software testing is to affirm the quality of software system by systematically testing the software in carefully controlled circumstances, another objective is to identify the completeness and correctness of the software, and finally it uncovers undiscovered errors. [1] [2] The three most important techniques that are used for finding errors are: [1] 1) White Box Testing Technique: It is the detailed investigation of internal logic and structure of the code. In white box testing it is necessary for a tester to have full knowledge of source code.


Illustration of Open Box and Closed Box Testing disciplines
Illustration of Closed Box and Open Box Testing disciplines
  1. ^ Eland, Matt. "Confirmation Bias: How your brain wants to wreck your code". Retrieved 12 September 2019.