Manual Testing

Types of Black Box

Types of Black Box

1. Functional Testing

It is a sort of software-testing that is used to check whether a software application's functionality matches the requirements. Each function is tested by providing a value, determining the output, and comparing the actual output to the expected value in functional testing. Functional testing, often known as black-box testing, is used to ensure that an application's or system's functionality operates as expected. It is carried out in order to ensure that the application works properly.

Because it focuses on application specifications rather than real code, functional testing is often known as black-box testing.

Goal of functional testing

The goal of functional testing is to verify the principal entrance function, which must be usable, as well as the flow of the screen GUI. The error message is displayed during functional testing so that the user may quickly navigate through the programme.

What is functional testing and how does it work?

In functional testing, testers follow the processes below:

  • In the software application, the tester verifies the requirement specification.
  • After analysing the requirements, the requirement specification tester will devise a strategy.
  • The tester will design the test case after preparing the tests.
  • After designing the test, the case tester will create a traceability matrix document.
  • The tester will put the test case design into action.
  • Coverage analysis to look at the application's covered testing area.
  • Defect management is responsible for defect resolution.


 

What to test in functional testing? 

The basic goal of functional testing is to ensure that the software system works properly. It focuses on the following:

  • Basic Usability: Functional Testing entails system usability testing. It determines whether a person can freely navigate around screens without trouble.
  • Accessibility: Functional testing examines the function's accessibility.
  • Mainline function: The primary function is to test the primary feature.
  • Error Condition: Functional testing is used to determine whether or not an error has occurred. It determines whether or not the error message was displayed.

The graphic below depicts the entire functional testing process:



Types of functional testing


 

Unit-testing is a sort of software-testing in which each unit or component of the software is examined separately. Unit-testing examines several aspects of the application, and functional testing is also performed as a result of unit-testing, because unit-testing guarantees that each module is functioning properly.

Unit-testing is done by the developer. Unit-testing is carried out during the application's development process.

Smoke-testing: Smoke-testing is a method of functional testing. Only the system's fundamental (feature) functioning is tested during smoke-testing. "Build Verification Testing" is the term for smoke-testing. The purpose of smoke-testing is to guarantee that the most crucial functions are operational.

Sanity testing entails ensuring that the entire high-level business scenario is functioning properly. Sanity testing is carried out to ensure that the functionality and problems have been addressed. Sanity testing is a step up from smoke-testing.

For example, login is working properly; all buttons are functioning properly; and after clicking on a button, the page navigation is complete or not.

Regression Testing: This sort of testing focuses on ensuring that code changes do not have an adverse effect on the system's existing functioning. Regression testing identifies whether a bug recurs in the system after it has been fixed. It focuses on whether all elements of the system are operating or not.

Integration-testing: Individual units were merged and assessed as a group in integration-testing. The goal of this testing is to reveal any flaws in the integrated components' interactions. It is carried out both developers and testers.

Whitebox testing: Clear box testing, code-based testing, structural testing, comprehensive testing, glass box testing, and transparent box testing are all terms used to describe white box testing. It is a software-testing method in which the tester is aware of the internal structure, design, and implementation being tested.

Whitebox testing necessitates an examination of the component's or system's interior structure.

 

Black box testing: Behavioral testing is another name for it. The internal structure, design, and implementation are unknown to the tester during this testing. Functional testing is the name for this form of testing. This sort of testing is known as black-box testing since the tester is unable to see the internal code.

For example, a tester who is unfamiliar with a website's underlying structures can test web pages by utilising a web browser to provide input and comparing the output to the desired result.

User acceptance testing: It is a type of testing carried out by the client in order to confirm the system's compliance with the requirements. Before releasing the programme to the market or in a production setting, the final phase of testing is user acceptability testing. UAT is a type of black-box testing that involves two or more end-users.

Retesting: Retesting is a type of testing that is done to ensure that test cases that failed in the final execution pass after the flaws have been repaired. When a tester discovers a bug while testing a product or a component, the bug is usually assigned. A developer is assigned to the bug, and he fixes it. The bug is assigned to a tester for verification after it has been fixed.

Database Testing examines the schema, tables, triggers, and other aspects of the database under examination. Database testing may entail writing complicated queries to load/stress test the database and ensure that it is responsive. It verifies the data's accuracy and consistency.

Ad-hoc testing is a type of informal testing in which the goal is to break the system. This is an unplanned type of software-testing. The test cases are not created according to any test design. Ad-hoc testing is done on any component of the application at any time; it does not provide any kind of systematic testing.

Recovery Testing: The purpose of recovery testing is to determine how successfully an application recovers from crashes, hardware failures, and other issues. The goal of recovery testing is to ensure that the system can recover from testing failures.

Static testing is a software-testing technique that allows us to check for faults in software without having to run it. Static testing is used to avoid errors in the early stages of development, when it is easier to detect failure. Static testing is used to detect errors that may not be detected during dynamic testing.


 

2. Non-Functional Testing

Non-functional testing is a sort of software-testing that looks at non-functional aspects of the software such reliability, load testing, performance, and accountability. The major goal of non-functional testing is to evaluate the software system's reading speed using non-functional criteria. Its parameters are never tested before functional testing.

It is just as vital as functional testing in terms of ensuring client satisfaction.

For illustration, might examine how many people can work on a piece of software at the same time.

 

Why Non-Functional Testing

For newly designed software, both functional and non-functional testing are required. Non-functional testing verifies the capacity to work in an external environment, whereas functional testing verifies the validity of internal functionalities.

It paves the way for programme installation, configuration, and use. It is used to collect and provide the measurement and metrics utilised in internal research and development.

It provides in-depth information about a product's behaviour and technologies. It aids in lowering the software's manufacturing risk and associated expenses.

Parameters to be tested under Non-Functional Testing


 

Performance-testing

Performance-testing identifies the source of the software's slow and limited performance. The software's reading speed should be as quick as possible.

A well-structured and explicit specification for expected speed must be created for Performance-testing. Otherwise, the test's outcome (success or failure) will be ambiguous.

Load testing

The system's loading capability is tested during load testing. Loading capacity refers to the number of persons who can work on the system at the same time.

Security Testing

Security testing is performed to identify software application security issues. The testing is carried out by looking at the system design as well as an attacker's mindset. Finding regions of code where an attack is most likely to occur is how test cases are carried out.

Portability Testing

The software's portability testing is used to see if it can run on a variety of operating systems without causing problems. This test also examines how software functions when the operating system is the same but the hardware is not.

Accountability Testing

The purpose of an accountability test is to see if the system is working properly. A function should produce the same result as the one for which it was written. If the system gives predictable o/p, it gets approved in the test else failed