White Box Testing
• White-box testing (also known as clear box testing, glass box testing and transparent box testing)

• White-box testing is a method of testing software that tests internal structures or workings of an application, as opposed to its functionality (i.e. black-box testing).

• In white-box testing an internal perspective of the system, as well as programming skills, are used to design test cases.

• The tester chooses inputs to exercise paths through the code and determine the appropriate outputs.

• White box testing technique is used by both developers as well as testers.

• It helps them understand which line of code is actually executed and which is not.

• This may indicate that there is either missing logic or a typo, which eventually can lead into some negative consequences.

Black Box Testing
• Black box testing is a software testing techniques in which functionality of the software under test (SUT) is tested without looking at the internal code structure, implementation details and knowledge of internal paths of the software.

• This type of testing is based entirely on the software requirements and specifications.

In Black Box Testing we just focus on inputs and output of the software system without bothering about internal knowledge of the software program.

• For example: an operating system like Windows, a website like Google, a database like Oracle or even your own custom application.

• Under Black Box Testing, you can test these applications by just focusing on the inputs and outputs without knowing their internal code implementation.
-----------------------------------------------------------------------------------------------------------
Functional testing
• verifies that each function of the software application operates in conformance with the requirement specification.

• This testing mainly involves black box testing and it is not concerned about the source code of the application.

• Each and every functionality of the system is tested by providing appropriate input, verifying the output and comparing the actual results with the expected results.

• This testing involves checking of User Interface, APIs, Database, security, client/ server applications and functionality of the Application Under Test.

What do you test in Functional Testing?
• The prime objective of Functional testing is checking the functionalities of the software system.It mainly concentrates on

• Mainline functions: Testing the main functions of an application

• Basic Usability: It involves basic usability testing of the system. It checks whether an user can freely navigate through the screens without any difficulties.

• Accessibility: Checks the accessibility of the system for the user

• Error Conditions: Usage of testing techniques to check for error conditions. It checks whether suitable error messages are displayed.

Non-Functional Testing
• like performance, usability, load that are also important.

• Many times you have come across to long load time messages while accessing an application.

• To address this issue, performance testing is carried out to check & fine tune system response times.

• The goal of performance testing is to reduce response time to an acceptable level.
Likewise, you might have seen the message like "Server Busy".

• Hence, load testing is carried out to check systems performance at different loads i.e. number of users accessing the system.
--------------------------------------------------------------------------------------------------------
Testing Techniques


Alpha Testing
• Alpha testing is simulated or actual operational testing by potential users/customers or
an independent test team at the developers' site.

• Performed with in house users to ensure that the product meets its functionality or not.

Beta Testing
• Beta testing comes after alpha testing and can be considered a form of external user acceptance testing.

• Versions of the software, known as beta versions, are released to a limited audience outside of the programming team.

• The software is released to groups of people so that further testing can ensure the product has few faults or bugs. 

• Performed with real users to ensure that the product meets its functionality or not.
------------------------------------------------------------------------------------------------------------
Types of Application

Desktop application (Standalone application)
• Desktop application runs on personal computers and work stations, so when you test the desktop application you are focusing on a specific environment.

• You will test complete application broadly in categories like GUI, functionality, Load, and backend i.e. Database.

Client server application (Web based Application)
• In client server application you have two different components to test.

• Application is loaded on server machine while the application execute on every client machine.

• You will test broadly in categories like, GUI on both sides, functionality, Load, client server interaction, backend.

• This environment is mostly used in Intranet or internet networks.

• You are aware of number of clients and servers and their locations in the test scenario.

Mobile application
• A mobile application or app is a computer program or software application designed to run on a mobile device. such as a phone, tablet, or watch.

• Native applications are designed specifically for a mobile operating system, typically iOS or Android.

• Web apps are written in HTML5 or CSS and typically run through a browser.
-----------------------------------------------------------------------------------------------------------
Web Based Testing
• One of the most popular current software testing trends is web testing that focuses on the testing of web-based applications.

• This is done for 3 tier applications (developed for Internet / intranet / extranet)

• A web-application is a three-tier application.
        • webserver (manipulates data)
        • database server (stores data)
        • This has a browser (monitors data)

• Here we will be having Browser, web server and DB server.

Applications for the web server would be developed in Java, ASP, JSP, VBScript, JavaScript, Perl, Cold Fusion, PHP etc.
(All the manipulations are done on the web server with the help of these programs developed).

The DB server would be having oracle, SQL server, Sybase, MYSQL, MS Acsess etc.
 (All data is stored in the database available on the DB server)

The applications accessible in browser would be developed in HTML, DHTML, XML, JavaScript etc.

The different types of tests which can be applied on web based applications are:

1) Functionality Testing
2) Usability testing
3) Interface testing
4) Compatibility testing
5) Performance testing
6) Security testing
-----------------------------------------------------------------------------------------------------------

Download link for more detail:  Testing Techniques


Also, Join my Telegram channel with the below link

Also, join my Whatsapp group with the below link