Monday, November 18, 2019

Word of the Day: white box testing

Word of the Day WhatIs.com
Daily updates on the latest technology terms | November 18, 2019
white box testing

White box testing is a software testing methodology that uses source code as the basis for designing tests and test cases. White box testing takes an inward look at the framework and components of a software application to check the internal structure and design of the software. White box testing is also called transparent, clear and glass box testing for this reason. This test type can also be applied to unit, system and integration testing.

White box testing usually involves tracing possible execution paths through the code and working out what input values would force the execution of those paths. The tester, who is usually the developer that wrote the code, will verify the code according to its design- which is why familiarity with the code is important for the one initiating the test. Code is tested by running input values through the code to determine if the output is what should be expected. Testers can work out the smallest number of paths necessary to test, or "cover," all the code. Static analysis tools will aid in the same job, more quickly and more reliably.

White box testing, on its own, cannot identify problems caused by mismatches between the actual requirements or specification and the code as implemented, but it can help identify some types of design weaknesses in the code. Examples include control flow problems (e.g. closed or infinite loops or unreachable code) and data flow problems. Static code analysis (by a tool) may also find these sorts of problems but does not help the tester/developer understand the code to the same degree that personally designing white-box test cases does. Tools to help in white box testing include Veracode's white box testing tools, Googletest, Junit and RCUNIT.

Advantages & disadvantages

Advantages to white box testing include:

  • Thorough testing.
  • Supports automated testing.
  • Tests and test scripts can be re-used.
  • Testing is supported at earlier development stages.
  • Optimizes code by removing any unnecessary code.
  • Aids in finding errors or weaknesses in the code.

Disadvantages include:

  • Test cases are often unrepresentative of how the component will be used.
  • White box testing is often time consuming, complex and expensive.
  • Testers with internal knowledge of the software are needed.
  • If the software is implemented on frequently, then time and cost required

White box testing vs black box testing

Black box testing is the opposing form of testing compared to white box testing. The implication is that you cannot see the inner workings of a black-painted box; and in fact, you do not need to. Black box testing will design test cases to cover all requirements specified for the component, then use a code coverage monitor to record how much of the code is executed when the test cases are run. Unlike white box testing, black box tests do not need developers who worked on the code. All the testers need to be familiar with are the software's functions. Other differences between black and white box testing are that black box testing is based on requirement specifications rather than design and structure specifications. Additionally, black box testing can be applied to system and acceptance tests rather than unit, system and integration tests.

The term "gray box testing" is used for internal software structures that are not actually source code - for example, class hierarchies or module call trees.

Quote of the Day

 
"In most cases, QA professionals design white box tests around an application's source code. These tests put the app's architecture, not what the software does, under review." - Ryan Black

Learning Center

 

Words to go: QA testing methodologies
To be an effective tester, you must know a vast -- if not unwieldy -- number of QA testing methodologies and terms. To give testers some context, this list outlines how several test steps, types and levels fit into the development process.

Prevent attacks with these security testing techniques
A single software error can leave enterprises open to attack. Learn how to identify vulnerabilities with these security testing techniques.

Choosing the best software testing tools for your business
Purchase the right automation, bug tracking and test case management tools for your organization.

10 skills of highly effective software testers
Tools enable the tasks to evaluate software, but more importantly, QA professionals must have the interpersonal and technical skills needed to accomplish them. Here are 10 skills that all software testers should have, whether you perform manual testing or adhere to an Agile and DevOps methodology.

Amazon Inspector gives dev automated security assessment
Amazon Inspector provides an automated security assessment, pointing out vulnerabilities that might leave resources and data prone to attacks and theft.

Quiz Yourself

 
The purpose of regression testing is to ______ that the software continues to function as expected under specific conditions.
a. ensure
b. assure

Answer

Stay in Touch

 
For feedback about any of our definitions or to suggest a new definition, please contact me at: mrouse@techtarget.com

Visit the Word of the Day Archives and catch up on what you've missed!

FOLLOW US

TwitterRSS
About This E-Newsletter
This e-newsletter is published by the TechTarget network. To unsubscribe from Whatis.com, click here. Please note, this will not affect any other subscriptions you have signed up for.
TechTarget

TechTarget, Whatis, 275 Grove Street, Newton, MA 02466. Contact: webmaster@techtarget.com

Copyright 2018 TechTarget. All rights reserved.

No comments: