Logo

Navigation
  • Home
  • Services
    • ERP Solutions
    • Implementation Solutions
    • Support and Maintenance Solutions
    • Custom Solutions
    • Upgrade Solutions
    • Training and Mentoring
    • Web Solutions
    • Production Support
    • Architecture Designing
    • Independent Validation and Testing Services
    • Infrastructure Management
  • Expertise
    • Microsoft Development Expertise
    • Mobile Development
    • SQL Server Database and BI
    • SAP BI, SAP Hana, SAP BO
    • Oracle and BI
    • Oracle RAC
  • Technical Training
    • Learn Data Management
      • Business Intelligence
      • Data Mining
      • Data Modeling
      • Data Warehousing
      • Disaster Recovery
    • Learn Concepts
      • Application Development
      • Client Server
      • Cloud Computing Tutorials
      • Cluster Computing
      • CRM Tutorial
      • EDI Tutorials
      • ERP Tutorials
      • NLP
      • OOPS
      • Concepts
      • SOA Tutorial
      • Supply Chain
      • Technology Trends
      • UML
      • Virtualization
      • Web 2.0
    • Learn Java
      • JavaScript Tutorial
      • JSP Tutorials
      • J2EE
    • Learn Microsoft
      • MSAS
      • ASP.NET
      • ASP.NET 2.0
      • C Sharp
      • MS Project Training
      • Silverlight
      • SQL Server 2005
      • VB.NET 2005
    • Learn Networking
      • Networking
      • Wireless
    • Learn Oracle
      • Oracle 10g
      • PL/SQL
      • Oracle 11g Tutorials
      • Oracle 9i
      • Oracle Apps
    • Learn Programming
      • Ajax Tutorial
      • C Language
      • C++ Tutorials
      • CSS Tutorial
      • CSS3 Tutorial
      • JavaScript Tutorial
      • jQuery Tutorial
      • MainFrame
      • PHP Tutorial
      • VBScript Tutorial
      • XML Tutorial
    • Learn Software Testing
      • Software Testing Types
      • SQA
      • Testing
  • Career Training
    • Career Improvement
      • Career Articles
      • Certification Articles
      • Conflict Management
      • Core Skills
      • Decision Making
      • Entrepreneurship
      • Goal Setting
      • Life Skills
      • Performance Development
      • Personal Excellence
      • Personality Development
      • Problem Solving
      • Relationship Management
      • Self Confidence
      • Self Supervision
      • Social Networking
      • Strategic Planning
      • Time Management
    • Education Help
      • Career Tracks
      • Essay Writing
      • Internship Tips
      • Online Education
      • Scholarships
      • Student Loans
    • Managerial Skills
      • Business Communication
      • Business Networking
      • Facilitator Skills
      • Managing Change
      • Marketing Management
      • Meeting Management
      • Process Management
      • Project Management
      • Project Management Life Cycle
      • Project Management Process
      • Project Risk Management
      • Relationship Management
      • Task Management
      • Team Building
      • Virtual Team Management
    • Essential Life Skills
      • Anger Management
      • Anxiety Management
      • Attitude Development
      • Coaching and Mentoring
      • Emotional Intelligence
      • Stress Management
      • Positive Thinking
    • Communication Skills
      • Conversation Skills
      • Cross Culture Competence
      • English Vocabulary
      • Listening Skills
      • Public Speaking Skills
      • Questioning Skills
    • Soft Skills
      • Assertive Skills
      • Influence Skills
      • Leadership Skills
      • Memory Skills
      • People Skills
      • Presentation Skills
    • Finding a Job
      • Etiquette Tips
      • Group Discussions
      • HR Interviews
      • Interview Notes
      • Job Search Tips
      • Resume Tips
      • Sample Resumes
 

What is White Box Testing

By Chandra Vennapoosa | on February 22, 2012 |
Software Testing Types

White box testing is a significant security testing method that testers use to ascertain whether the codes follow the intended or planned design. This test also validates implemented security functionalities and discovers existing vulnerabilities in the system.

Topics

  • White Box Testing Advantages
  • Unlocking White Box Testing Secrets
  • White Box Testing Steps
  • White Box Testing Coverage

This article will help you know what exactly white box testing is and how testers can perform this test by using tools and techniques designed for the test. This test combines principles from two different areas of testing: traditional white box testing techniques and security testing.

The main goal of any software testing is to ensure usefulness of a system against malicious hacker attacks or regular software problems. The base knowledge of how the application is implemented forms the basis for white box testing. White box testing includes features like flow control, flow of information, data flow analysis, and handling of error within the system, to test the intended and unintended software behavior.

You can also conduct this test affirm or validate whether the implementation of codes is following the planned designs. It will also help the tester to check the security functionalities and find out exploitable vulnerabilities. To conduct a faultless white box test, you will need to have the complete set of source codes at your disposal. Generally, white box testing work well when you perform it along with the unit phase.

This test demands you knowing things that make a software application safe or insecure, the way to think and act like a hacker. The first basic step is to understand and evaluate available design documentation, set of source codes and other artifacts. Second, you must think like an attacker or hacker who knows how to exploit a software application. Third, you will also need to know the tools and techniques available for white box testing.

The main difference between white box testing and other methods is that you will get a complete access to the internals of the applications apart from the logical aspects of the application with its architecture. With this test, you can create cases where the paths of the modules will also undergo testing. In addition, testing of true and false logic of the application will also come under the domain of testing.

This test also helps you validate to check if the data structures of the application are working in a proper manner or not. In essence, white box testing uses six different types of testing, namely, beta, regression, unit, acceptance, function or system, and integration.

White Box Testing Advantages

You can derive several significant advantages from white box testing. This test can uncover errors and weaknesses of the application right during the developmental phase. Therefore, software developers can get a chance to improve the program that can be both stable and robust.

White box testing helps you know and understand the internal working patterns of the application. This will also assist you in correcting or setting right any problem that might occur in the developmental phase.

In nutshell, white box testing is a comprehensive test that leads to the development of a standard, fail-proof and complete software application.

Unlocking White Box Testing Secrets

White box testing has offshoots of many other testing procedures that will compliment the main test with their wonderful features. In essence, white box testing uses six different types of testing, namely, beta, regression, unit, acceptance, function or system, and integration. Here are some details about how these tests work in combination with the white box testing.

Unit testing – This test is perhaps the most significant test that help you to make the application better. In essence, units are the components that are difficult to break into two or more components. It is quite important to conduct unit testing to ensure that individual units of hardware and software are tested before the particular unit is integrated with other components.

Once the unit is already integrated, it is very difficult to find out where the error is coming from, and thus, the software engineers need to look into every single unit that are within the code base. More than 65% of all errors are found during unit testing.

Integration testing – This test will be helpful to check how different units of both the hardware and software interact and converse with each other and whether any errors occur during this conversation. In this case, the test cases used are specifically designed to test whether the interfaces of each unit are working together properly.

Regression testing – This test simply repeats similar tests that had already been conducted in the past. Nevertheless, this is a very important process, because it is used to validate whether the components are still working. In addition, regression testing will also uncover loopholes and vulnerabilities in the system, so you can ensure that the components are still complying with the standards those were set by the developers.

White Box Testing Steps

Initially, you will start working with the system drivers. To do this, you will need to run a code with an input that has the ability to test if it will produce the expected output. The main theory behind testing through drivers is that this type of test can provide you with the necessary information such as the test input, the control execution, and the test results. On the other hand, if a driver is not developed, then you may use a stub as a substitute. In fact, stubs are the dummy components because they can simulate the actions of the driver.

The second step is to test with cases. Test cases form the major reasons why white box testing is so effective. You may need to work very hard if you want to design a test case that will effectively detect bugs and errors within the software. Therefore, you may need to design a systematic and complete design that can test if the software works and if it is working properly without any bugs. You will need to develop two processes to have a complete test case. One is designing a basis path test. Basis path testing can ensure that all the individual paths within the code modules have already been tested previously.

However, basis path testing will not complete the test at this point, simply because you have to consider the equivalence portioning. This means that you need to have a boundary value analysis to devise a strategy that can work effectively. In the process, you may also need to consider another process to test the application. Control flow is an important portion of the test.

The fourth important step is the data flow testing. You will fill the flow graph with necessary details about the program variables. The last important step is the failure testing. The failure testing means that the software engineer will need to be creative in thinking of ways to destroy and spoil the software. Hackers may attempt to destroy a program by using malicious codes and Trojans. Therefore, this step is very critical to stop such an eventuality when end users are using the applications on their system.

You can observe control flow in a flow graph. You will need to have an accurate and complete flow graph to be able to come up with a control flow test that is comprehensive, useful and result oriented. The metrics by which the comprehensiveness of the test case is qualified is known as the coverage.

White Box Testing Coverage

Method coverage – It measures the percentage of metrics used in the test. You may need to ensure 100% coverage to ensure inclusion of all necessary aspects of the application. The statement coverage also measures the percentage of program statement when the program is running. You will also need to have a hundred percent coverage for this type. You should also know cyclomatic number to determine the number of tests you will need to conduct in the future.

Decision or branch coverage – This will measure the amount of Boolean expressions that had been previously evaluated by the tester. This will test and evaluate the program in the true or false type of logic mode. The main objective of the decision coverage is to achieve a hundred percent coverage, but in reality, only around seventy five to eighty percent is practical.

Condition coverage – This coverage will decide the outcome of each of the Boolean sub expressions. This will also ensure that every single one of the sub expressions will undergo individual testing for false logic.

All testing methods can help you reveal likely software risks and potential exploits. White box testing has the ability to identify more bugs in the software. White box testing is time consuming, expensive and skill oriented. However, it offers a number of benefits that are not available with other testing methods.

« « What is Usability Testing
Introduction to Goal Setting » »

Author Description

Chandra Vennapoosa

Chandra Vennapoosa, B.S Arch Graduate, Managing Director - Exforsys Inc, Founder of exforsys.com and geekinterview.com. Chandra's mission is "to provide quality career coaching and interview advice for aspiring candidates". She is an avid writer and is also very passionate to help others become professional freelancers. In addition to several online trainings, she has authored the popular book "How to Become a Successful Freelancer"

Free Training

RSSSubscribe 391 Followers
  • Popular
  • Recent
  • What is Mutation Testing

    December 21, 2011 - 0 Comment
  • What is Data Recovery Testing

    January 9, 2012 - 0 Comment
  • What is Exploratory Testing

    September 12, 2011 - 0 Comment
  • What is Negative Testing

    December 27, 2011 - 0 Comment
  • What is Alpha Testing

    May 13, 2011 - 0 Comment
  • What is Performance Testing

    January 1, 2012 - 0 Comment
  • What is Acceptance Testing

    May 10, 2011 - 0 Comment
  • What is Regression Testing

    January 11, 2012 - 0 Comment
  • What is End-to-End Testing

    August 2, 2011 - 0 Comment
  • What is Sanity Testing

    January 23, 2012 - 0 Comment
  • What is Usability Testing

    February 16, 2012 - 0 Comment
  • What is Stress Testing

    February 15, 2012 - 0 Comment
  • What is Static Testing

    February 10, 2012 - 0 Comment
  • What is Smoke Testing

    February 6, 2012 - 0 Comment
  • What is Security Testing

    January 27, 2012 - 0 Comment
  • What is Sanity Testing

    January 23, 2012 - 0 Comment
  • What is Regression Testing

    January 11, 2012 - 0 Comment
  • What is Data Recovery Testing

    January 9, 2012 - 0 Comment
  • What is Performance Testing

    January 1, 2012 - 0 Comment
  • What is Negative Testing

    December 27, 2011 - 0 Comment

Exforsys e-Newsletter

ebook
 

Related Articles

  • What is Usability Testing
  • What is Stress Testing
  • What is Static Testing
  • What is Smoke Testing
  • What is Security Testing

Latest Articles

  • Project Management Techniques
  • Product Development Best Practices
  • Importance of Quality Data Management
  • How to Maximize Quality Assurance
  • Utilizing Effective Quality Assurance Strategies
  • Sitemap
  • Privacy Policy
  • DMCA
  • Trademark Information
  • Contact Us
© 2023. All Rights Reserved.IT Training and Consulting
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.AcceptReject Read More
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT