The generic steps followed to carry out any type of Black Box Testing.
- Initially, the requirements and specifications of the system are examined.
- The tester chooses valid inputs (positive test scenarios) to check whether SUT processes them correctly. Also, some invalid inputs (negative test scenarios) are chosen to verify that the SUT is able to detect them.
- The tester determines expected outputs for all those inputs.
- The software tester constructs test cases with the selected inputs.
- The test cases are executed.
- The software tester compares the actual outputs with the expected outputs.
- Defects if any are fixed and re-tested.
Types of Black Box Testing
- GUI Testing
- Usability Testing
- Functional Testing
- Non-Functional Testing
What is GUI?
There are two types of interfaces in a computer application.
Command Line Interface is where you type text and the computer responds to that command.
GUI stands for Graphical User Interface where you interact with the computer using images rather than text.
Graphical User Interface(GUI) testing is the process of testing the system’s GUI.
GUI testing involves checking the screens with the controls like menus, buttons, icons, and all types of bars – toolbar, menu bar, dialog boxes, windows, etc.
During the GUI Testing Test Engineers validates the user interface of the application as the following aspects:
- Look and feel
- Easy to use
- Navigation and shortcut keys
Window, Dialog Box, Push Button, Radio Button, Radio Group, Tool Bar, Edit Box, Text Box, CheckBox, List Box, Dropdown Box, Combo Box, Tab, Tree view, Progress bar, Table, Scroll bar, etc..
Checklist for GUI Testing
- It checks if all the basic elements are available on the page or not.
- It checks the spelling of the objects.
- It checks the alignment of the objects
- It checks content to display on web pages.
- It checks if the mandatory fields are highlights or not.
- It checks consistency in background color and color font type and font size etc..
During this testing validates application provided context-sensitive help or not to the user.
Checks how easily the end-users are not able to understand and operate the application is called Usability Testing
UX Testing Checklist
The primary goal of this testing is to find crucial usability problems before the product is launched. The following things have to be considered to make a testing success:
- Start the UX testing during the early stage of design and development
- It’s a good practice to conduct usability testing on your competitor’s product before you begin development.
- This will help you determine usability standards for your target audience
- Select the appropriate users to test the system(Can be experts/non-experts users/50-50 of Experts and Non-Experts users)
- Use a bandwidth shaper. For instance, your target audience has poor network connectivity, limit network bandwidth to say 56 Kbps for your usability testers.
- Testers need to concentrate on critical & frequently used functionalities of the system.
- Assign a single observer to each tester. This helps observers to accurately note tester behavior. If an observer is assigned to multiple testers, results may be compromised
- Educate Designers and Developers that this testing outcome is not a sign of failure but it’s a sign of Improvement
- Object Properties Coverage
- Input Domain Coverage(BVA, ECP)
- Database Testing/Backend Coverage
- Error Handling Coverage
- Calculations/Manipulations Coverage
- Links Existence & Links Execution
- Cookies & Sessions
Object Properties Testing
Every object has certain properties
Example: Enable, Disable, Focus, Text, etc..
During Functional Testing Test Engineers validate the properties of objects in run time.
Input Domain Testing
During Input Domain Testing Test Engineers validate data provided to the application with respect to value and length.
There are two techniques in Input Domain Techniques
- Equivalence Class Partition(ECP)
- Boundary Value Analysis(BVA)
ECP & BVA
User name field allows only lower case with min 6 max 8 letters
ECP for User Name
BVA for User Name
During Database testing, Test Engineers validate the data with respect to the database
Validates DML Operations(Insert, Update, Delete and Select)
SQL Language: DDL, DML, DCL, etc..
DDL: Data Definition Language – Create, alter drop
DML: Data Manipulation Language – Insert, Update, Select, Delete
DCL: Commit, roll back etc..
Error Handling Testing
Validate error messages thrown by the application when we provide invalid data.
The error messages should be clear and easy to understand to the user.
Validate mathematical calculations
Link existence – Links placed in the appropriate or not.
Link execution – Link is navigating to the appropriate page or not.
Types of links:
- Internal links
- External Links
- Broken Links
Cookies and Sessions
Cookie – Temporary internet files that are created at the client side when we open the websites. These files contain User Data
Session – Sessions are time slots that are allocated to the user at the server-side.
Non Functional Testing
- Performance Testing
- Load Testing
- Stress Testing
- Volume Testing
- Security Testing
- Recovery Testing
- Compatibility Testing
- Configuration Testing
- Installation Testing
- Sanitation Testing
Load – Testing speed of the system while increasing the load gradually until the customer expected number.
Stress – Testing the speed of the system while increasing/reducing the load of the system to check anywhere it is breaking
Volume – Check how much volume of data is able to handle by the system.
Testing security provided by the system
- Access Control/Authorization
Testing Recovery provided by the system. Whether the system recovering from abnormal to normal condition or not.
- Testing the Combability of the system with respect to OS, H/W, and Browsers.
- Operating System Compatibility
- Hardware Compatibility(Configuration Testing)
- Browser Compatibility
- Forward and Backward Compatibility
- Testing Installation of the application on Customer expected platforms and check installation steps, how much space is occupied in memory.
- Check Un-Installation
Check whether the application is providing any extra/additional features beyond the customer requirements.