Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Untitled

Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

1.

Black Box Testing is a software testing method in which the internal


structure/design/implementation of the item being tested is not known to the
tester. Only the external design and structure are tested.

2. White Box Testing is a software testing method in which the internal


structure/design/implementation of the item being tested is known to the
tester. Implementation and impact of the code are tested.
Differences between Black Box Testing vs White Box Testing:
S.
No. Black Box Testing White Box Testing

It is a way of testing the software in which


It is a way of software testing in which the the tester has knowledge about the internal
internal structure or the program or the code structure or the code or the program of the
1. is hidden and nothing is known about it. software.

Implementation of code is not needed for Code implementation is necessary for white
2. black box testing. box testing.

3. It is mostly done by software testers. It is mostly done by software developers.

4. No knowledge of implementation is needed. Knowledge of implementation is required.

It can be referred to as outer or external


5. software testing. It is the inner or the internal software testing.

6. It is a functional test of the software. It is a structural test of the software.

This testing can be initiated based on the This type of testing of software is started after
7. requirement specifications document. a detail design document.

It is mandatory to have knowledge of


8. No knowledge of programming is required. programming.

9. It is the behavior testing of the software. It is the logic testing of the software.

It is applicable to the higher levels of testing It is generally applicable to the lower levels
10. of software. of software testing.

11. It is also called closed testing. It is also called as clear box testing.

12. It is least time consuming. It is most time consuming.

It is not suitable or preferred for algorithm


13. testing. It is suitable for algorithm testing.
S.
No. Black Box Testing White Box Testing

Can be done by trial and error ways and Data domains along with inner or internal
14. methods. boundaries can be better tested.

Example: Search something on google by


15. using keywords Example: By input to check and verify loops

Black-box test design techniques-


• Decision table testing White-box test design techniques-
• All-pairs testing • Control flow testing
• Equivalence partitioning • Data flow testing
16. • Error guessing • Branch testing

Types of Black Box Testing: Types of White Box Testing:


• Functional Testing • Path Testing
• Non-functional testing • Loop Testing
17. • Regression Testing • Condition testing

It is less exhaustive as compared to white It is comparatively more exhaustive than


18. box testing. black box testing.

Validation testing
Validation testing is testing where tester performed functional and non-functional testing. Here functional
testing includes Unit Testing (UT), Integration Testing (IT) and System Testing (ST), and non-
functional testing includes User acceptance testing (UAT).
Stages of Validation testing Process:

• Validation Planning – To plan all the activities that need to be included while testing.
• Define Requirements – To set goals and define the requirements for testing.
• Selecting a Team – To select a skilled and knowledgeable development team (the third
party included).
• Developing Documents – To develop a user specification document describing the
operating conditions.
• Estimation/Evaluation – To evaluate the software as per the specifications and submit a
validation report.
• Fixing bugs or Incorporating Changes – To change the software so as to remove any
errors found during evaluation.

What are the Types of Validation Testing?


• Validation testing types a V-shaped testing pattern, which includes its variations
and all the activities that it consists of are:
• Unit Testing – It is an important type of validation testing. The point of the unit
testing is to search for bugs in the product segment. Simultaneously, it
additionally confirms crafted modules and articles which can be tried
independently.
• Integration testing -This is a significant piece of the validation model wherein
the interaction between, where the association between the various interfaces of
the pertaining component is tried. Alongside the communication between the
various pieces of the framework, the connection of the framework with the PC
working framework, document framework, equipment, and some other
programming framework it may cooperate with, is likewise tried.
• System testing – System testing is done when the whole programming
framework is prepared. The principal worry of framework testing is to confirm the
framework against the predefined necessities. While doing the tests, the tester
isn’t worried about the internals of the framework however checks if the
framework acts according to desires.
• User acceptance testing – During this testing, the tester actually needs to think
like the customer and test the product concerning client needs, prerequisites, and
business forms and decide if the product can be given over to the customer or
not.

What is System Testing?


System Testing is a level of testing that validates the complete and fully integrated software
product. The purpose of a system test is to evaluate the end-to-end system specifications.
Usually, the software is only one element of a larger computer-based system. Ultimately, the
software is interfaced with other software/hardware systems. System Testing is defined as a
series of different tests whose sole purpose is to exercise the full computer-based system

System Testing is Blackbox


Two Category of Software Testing

• Black Box Testing


• White Box Testing

System test falls under the black box testing category of software testing.

White box testing is the testing of the internal workings or code of a software application.

What do you verify in System Testing?


• Testing the fully integrated applications including external peripherals in order to
check how components interact with one another and with the system as a whole.
This is also called End to End testing scenario.
• Verify thorough testing of every input in the application to check for desired outputs.
• Testing of the user’s experience with the application.
Software Testing Hierarchy

As with almost any software engineering process, software testing has a prescribed order in
which things should be done. The following is a list of software testing categories arranged in
chronological order. These are the steps taken to fully test new software in preparation for
marketing it:

• Unit testing performed on each module or block of code during development. Unit
Testing is normally done by the programmer who writes the code.
• Integration testing done before, during and after integration of a new module into the
main software package. This involves testing of each individual code module. One
piece of software can contain several modules which are often created by several
different programmers. It is crucial to test each module’s effect on the entire program
model.
• System testing done by a professional testing agent on the completed software
product before it is introduced to the market.
• Acceptance testing – beta testing of the product done by the actual end users.

Debugging
In the development process of any software, the software program is religiously tested, troubleshot,
and maintained for the sake of delivering bug-free products. There is nothing that is error-free in the
first go.

So, it's an obvious thing to which everyone will relate that as when the software is created, it contains
a lot of errors; the reason being nobody is perfect and getting error in the code is not an issue, but
avoiding it or not preventing it, is an issue!

All those errors and bugs are discarded regularly, so we can conclude that debugging is nothing but a
process of eradicating or fixing the errors contained in a software program.

Debugging works stepwise, starting from identifying the errors, analyzing followed by removing the
errors. Whenever a software fails to deliver the result, we need the software tester to test the
application and solve it.

Why do we need Debugging?


Following are the benefits of Debugging:
o Debugging can immediately report an error condition whenever it occurs. It prevents hampering
the result by detecting the bugs in the earlier stage, making software development stress-free
and smooth.
o It offers relevant information related to the data structures that further helps in easier
interpretation.
o Debugging assist the developer in reducing impractical and disrupting information.
o With debugging, the developer can easily avoid complex one-use testing code to save time and
energy in software development

Steps involved in Debugging


1. Identify the Error: Identifying an error in a wrong may result in the wastage of time. It is very
obvious that the production errors reported by users are hard to interpret, and sometimes the
information we receive is misleading. Thus, it is mandatory to identify the actual error.
2. Find the Error Location: Once the error is correctly discovered, you will be required to
thoroughly review the code repeatedly to locate the position of the error. In general, this step
focuses on finding the error rather than perceiving it.
3. Analyze the Error: The third step comprises error analysis, a bottom-up approach that starts
from the location of the error followed by analyzing the code. This step makes it easier to
comprehend the errors. Mainly error analysis has two significant goals, i.e., evaluation of errors
all over again to find existing bugs and postulating the uncertainty of incoming collateral damage
in a fix.
4. Prove the Analysis: After analyzing the primary bugs, it is necessary to look for some extra
errors that may show up on the application. By incorporating the test framework, the fourth step
is used to write automated tests for such areas.
5. Cover Lateral Damage: The fifth phase is about accumulating all of the unit tests for the code
that requires modification. As when you run these unit tests, they must pass.
6. Fix & Validate: The last stage is the fix and validation that emphasizes fixing the bugs followed
by running all the test scripts to check whether they pass.

Debugging Tools
o Radare2
o WinDbg
o Valgrind

Software Quality
Software quality engineering is the practice of integrating quality checks
throughout the development cycle of software tools and applications. Its
purpose is to ensure the software development team is efficiently testing for
quality throughout the product development cycle.
Traditionally, a high-quality product is outlined in terms of its fitness of purpose. That is, a
high-quality product will specifically what the users need it to try to. The fitness of
purpose is typically taken in terms of satisfaction of the wants arranged down within the
SRS document. though “fitness of purpose” could be a satisfactory definition of quality for
several merchandises like an automobile, a table fan, a grinding machine, etc.
It performs all functions as laid out in the SRS document. But, it has an associate degree
virtually unusable program. despite the fact that it should be functionally correct, we have
a tendency to cannot think about it to be a high-quality product. Another example is also
that of a product that will everything that the users need however has associate degree
virtually incomprehensible and not maintainable code. Therefore, the normal construct of
quality as “fitness of purpose” for code merchandise isn’t totally satisfactory.
The modern read of high-quality associates with software many quality factors like the
following:
• Portability:
A software is claimed to be transportable, if it may be simply created to figure in
several package environments, in several machines, with alternative code
merchandise, etc.
• Usability:
A software has smart usability if completely different classes of users (i.e. each
knowledgeable and novice users) will simply invoke the functions of the
merchandise.
• Reusability:
A software has smart reusability if completely different modules of the
merchandise will simply be reused to develop new merchandise.
• Correctness:
A software is correct if completely different needs as laid out in the SRS
document are properly enforced.
• Maintainability:
A software is reparable, if errors may be simply corrected as and once they
show up, new functions may be simply added to the merchandise, and therefore
the functionalities of the merchandise may be simply changed, etc

You might also like