Friday, October 1, 2021

Black box tests

 

Black box testing can be performed using various approach :

  1. Test case
  2. Automation
  3. Ad-hoc
  4. Exploratory

Examples of Scenarios the applies simple Black-box testing includes:

These few examples are used to paint a vivid picture of what Black-box testing implies,

  • Same applies to a Facebook chatting interface, When the bearer of the information inputs the information into the chat box and sends, the information is processed and sent to the receiver. The receiver from his end retrieves the information and vice versa.

Types of Black-box testing:

There are many types of black-box testing used in software testing which involves many procedures during implementation, we focus on the prominent ones.

Few major types of functional testing are:

  1. Sanity testing
  2. Smoke testing
  3. Integration testing
  4. System testing
  5. Regression testing
  6. User acceptance testing

Few major types of non-functional testing:

  1. Usability testing
  2. Load testing
  3. Performance testing
  4. Compatibility testing
  5. Stress testing
  6. Scalability testing
  • System testing: in this level of software testing a fully complete software is tested to evaluate the compliance with the specified requirements proposed for the system.
  • Acceptance testing: In this level of software testing the acceptability of the system is tested. Here the software tester checks whether the system complies with the commercial requirement. The user needs and requirement are checked to know whether they are acceptable before delivery.

Techniques involved in black-box testing:

There are many approaches use in designing black-box testing the following are but a few of them:

  • Boundary value analysis: it is a software design technique where the functional tester while carrying out the testing determines boundaries for input values. After determining the boundaries selects inputs that are at the boundaries or just inside or outside the boundaries, and uses it as test data. The test data is now used for carrying out the black-box testing.
  • Cause-effect graphing: in this software design technique software testers identifies the causes (valid or invalid input conditions) and effects (output conditions). This result in the production of a cause-effect graph, and Generation of test cases accordingly.
  • Error guessing: this is an example of an experience-based testing in which the tester uses his experience about the application and functionalities to guess the error-prone areas
  • Comparison testing

Black-box Testing steps

Black-box testing involves some generic steps carried out by testers on any type of Black-box.

  • The software tester chooses both the valid inputs (the positive test scenarios) and the invalid inputs (the negative test scenarios). He tests the valid input to check whether the SUT processes them correctly then the invalid inputs to know whether they are being detected by the system.
  • The expected outputs are retrieved for all the inputs.
  • The software tester then constructs test cases with all the selected inputs.
  • The constructed test cases are executed.
  • Actual outputs from the SUT are compared with the expected outputs to determine if they comply with the expected results.
  • If there is any defect in the results they are fixed and the regression test is carried out.

Diagram showing software development life cycle for Black-box testing:

  • Requirement: This is the stage where the requirements and specifications needed by the software tester are gathered and examined.
  • Test planning and Analysis: In this stage the possible risks and mitigations associated with the project are determined.
  • Design: This stage allows scripts to be created on the basis of the software requirements.
  • Test execution: the prepared test cases are executed and if there is any deviation between the actual and expected results they are fixed and re-tested. The cycle then continues.

Advantages and Disadvantages of Black-box testing

Advantages:

  • Black-box testing is more effective for large and complex applications.
  • Defects and inconsistency in the system can be identified easily so that they can be fixed.
  • The test cannot be compromised because the designer, programmer, and tester are independent.
  • Tests are carried out as soon as the programming and specifications are completed.
  • The tester may ignore possible conditions of scenarios to be tested due to lack of programming and technical knowledge.
  • Complete coverage in cases of the large and complex project is not possible.
  • Testing every input stream is unrealistic because it would take a large amount of time; therefore, many program parts go untested.

1 comment:

L Ganesh said...

Thank you for sharing wonderful information with us to get some idea about that content.
Business Analyst Course
Business Analyst Course Online

Traceability Matrix: Ensuring Quality and Compliance in Software Testing

  Introduction In the aspect of software testing, thoroughness in that all aspects have been covered and none of the important aspects has b...