We have discussed in the previous article that System Testing focuses on 4 main aspects.
Let’s understand more about these aspects.
1)GUI : Graphical User Interface
What is GUI?
There are 2 types of interfaces in a computer application.
CLI: Command Line Interface.
This is where we type text and computer responds to the commands, we have seen this in the DBMS article
GUI: Graphical user Interface.
This is where we interact with the computer using images rather than text.
*GUI involves checking the screens with the controls like Menus,Buttons,Icons and Tool bar,Menu bar,Dialog boxes and Windows etc.,
*During GUI testing, test engineers validates user interface of the application in following aspects
1)Look & Feel.
2)Easy to use.
3)Navigation & Shortcut Keys.
GUI Objects :
This includes Windows,Dialogue box, Push button,Radio button,Radio group,Tool bar,Edit box,Text box,Check box, Drop down box,Combo box,Tab,Tree view,Progress bar,Table,Scroll bar etc.,
GUI Check List:
*This checks if all the basic elements are available in the page along with spelling and alignment of the objects.
*It also checks content display and mandatory fields along with background color and color font type.
2)Usability Testing
This checks how easily the end user is able to understand and operate the application.
3)Functional Testing:
This includes:
1)Unit Testing
2)Integration Testing
3)System Testing
4)Sanity Testing
5)Smoke Testing
6)Graphical User Interface
7)Regression Testing
8)Beta/Acceptance Testing
Lets check on the above listed Functions testings:
We have seen about Unit,Integration,System,User Acceptance testing,Graphical User Interface test techniques in the previous article.
4)Sanity testing:This is a type of software testing which is conducted after receiving a software build, with minor changes in the code, or functionality. The aim is to make sure that the bugs have been fixed and to confirm that there are no further issues introduced due to the new changes.
5)Smoke testing:This is a type of software testing which is usually performed on initial software builds to make sure that the critical functionalities of the program are working absolutely fine.
Note:
A software build is a process by which source code is converted to a stand-alone form that can be run on any system. It is often referred to as a code build.
7)Regression Testing : More specifically, the purpose of regression testing is to verify that modifications in the software or the environment have not caused unintended adverse side effects and that the system still meets it requirements.
*Regression tests are executed whenever the software changes, either as a result of fault fixes or new or changed functionality.It is also a good idea to execute them when some aspect of the environment changes, for example when a new version of a database management system is introduced or a new version of a source code compiler is used.
8)Beta Testing: Beta Testing is a formal type of Software Testing which is carried out by the customer. It is performed in the Real Environment before releasing the product to the market for the actual end-users.
This Testing is carried out to ensure that there are no major failures in the software or product and it satisfies the business requirements from an end-user perspective. Beta Testing is successful when the customer accepts the software.
4)Non functional Software Testing:
This includes:
1.Performance Testing
a)Load Testing
b)Stress Testing
c)Volume Testing
2.Security Testing
3.Recovery Testing
4.Compatibility Testing
5.Configuration Testing
6.Installation Testing
7.Sanitation Testing
Lets check on the above listed Non Functions testings:
1)Performance Testing: This includes load,stress and volume testing’s.
We access an application and test at what speed the application is working and with how much stress and volume we are able to access an application.
a)Load Testing : Testing speed of the system while increasing the load gradually till it meets the customer expectation.
b)Stress Testing: Testing speed of the system while increasing/reducing the load on the system to check if it is able to handle and proceed or if it is causing any breaking issue.
c)Volume Testing: To check with how much volume of data is able to handle by the system.
Why should we do the Performance testing?
Consider a web application or an internet applications on which multiple user’s work and for multiple reasons like network speed etc., the application performance will get reduced, to meet the customer requirements and to avoid these issues we need to do the performance testing.
2) Security Testing: Testing security provided by the system like:
a)Authentication
b)Access control.Authorization.
c)Encrypt/Decrypt
Example:
Every application has its own security system.
In a banking application we have admin department,customer department,accounts etc.,when we develop an application we will have different modules in this application.
Authentication :In this a valid user should be able to login and invalid user should be restricted.
Access Control: can be tested for valid user.
The accounts department person should not be able to access the information of other departments. Similarly a customer should be able to access his own details not other customer or department details. Admin should be able to access all dept details.
*We need to test the above cases while using access control or authorization.
Encryption/Decryption: We have a server and client machine.
1)Users interact from client end like sending and receiving the data which is done through network, there are chances to hack the data by 3rd party networks to avoid these 2 algorithms are maintained those are encryption and decryption.
2)Data is converted to some binary or non understandable language for security reasons this conversion is called Encryption.
This conversion is done while the data is sent from source to destination.
Once this data reaches the destination the data will be Decrypted for further processing.
3)Recovery Testing: Testing recovery provided by the system.
This is not supported by all the applications.
Example:
While writing an email if the browser is closed due to some reason and when we re open the browser the email will be saved in drafts that is called as the recovery mechanism.
4)Compatibility Testing & Configuration Testing:This is done on :
a) Operating systems.
b)Hardware(configuration)
c)Browser
d)Forward and Backward compatibility.
6)Installation Testing: In this type of testing we test on the following aspects:
1) Installation steps,
2)Navigation.
3)Memory Allocation
4)Uninstall.
7)Sanitation Testing/Garbage Testing: In this type of testing we test the application if it is providing any extra/additional features beyond the customer requirements or expectation.
Apart from these software testing techniques we have few more software testing techniques in the next article.
Example:
If a customer is having an application with 5 requirements and if we are providing 6 features then it is a defect to avoid these things, sanitation or garbage testing is done.
That is all about Different Types of System Testing.In the next article we will see different types of software testing, Test Case Design Techniques,Defect Management Process and Bug Life Cycle Status.