Task-3
Published: 2023-10-21 15:59:27

software testing can be divided in two part one is Functional testing and the other one is Non-Functional testing
Functional testing:
functional testing verifies the each functions/Feature of the software
goal is to validate the software actions
it is based on customer's requirements
most of the functional testing are Unit testing, Integration Testing, Interface Testing, Regression testing and User Acceptance testing 



Non-Functional testing:
Non-Functional testing verifies like performance testing, reliability, security, documentation and installation
Goal is to validate the software performance
Non Functional testing are documentation testing, Installation testing, Performance testing, Reliability testing and security testing

we will check the Functional and Non-Functional testing with an example
lets take WhatsApp as an example

Unit testing:
let check the chatting (messaging) functionality, If I send the WhatsApp message or shared documents to someone they should get my message or documents clearly 
the message or document should be not corrupted also If I send a group message then every member should receive the message

Integration Testing:
Integration Testing I will check the WhatsApp calls together with messages, in case If I call/Video call to someone they should receive my call they should talk with me
very clearly also they should see me on the video call without any interruption plus I can able to send a message while I am on the call

Interface Testing:
Interface Testing is also called system testing, we should check full WhatsApp functionality like chatting, calling, status, group creating, sharing stories and etc.
everything should work correctly, the all WhatsApp functionality should work according to the specification

Regression testing:
Regression testing should be performed, if there are serval bug fix or if there are new features implemented, we have to check again the chatting, calling and etc. all functionality 
should work as before the new software update

User Acceptance testing:
this is the final testing before the software deployed on the customer side or productive system, we should do End to End testing such as the WhatsApp working according to 
the customer expectation, and all functionality are well implemented

lets go to Non-Functional testing:
documentation testing:
check the documentation of WhatsApp is created correctly and the WhatsApp is working according to user manuals, requirements and design documents and the WhatsApp user manuals is very easy for the customers and etc..

the documentation testing is performed throughout the software development lifecycle

Installation testing:
Installation testing is performed before deploying software to end-users
here we should check that the WhatsApp new installation and configuration is working without any issues and WhatsApp uninstallation is also working fine
we should also check the WhatsApp that after the installation working correctly


Performance testing:
we have to check the performance of WhatsApp, like speed, response, stability and scalability of WhatsApp during calling and messaging
specially if we are making group calls with several people the application should be not crashed and everyone should listing the conversation clearly
performance test is also include load testing and stress testing
performance test is can be done during or  after the development


reliability testing:
reliability testing has been performed during the final stages of the development or before the major software release
reliability testing assesses the software's ability to Perform consistently and accurately over time and there should be no crashes
lets check the reliability on WhatsApp, you can use WhatsApp on your mobile phone and also you can use the WhatsApp on the Notebook or Desktop 
the messaging should be same as on the mobile phone and PC

security testing:
Security testing aims to identify vulnerabilities in the software that could be exploited by malicious actors
security testing should be integrated through the software development process but it is especially crucial before the software is deployed
it is used to ensure that the software is secure against potential threats

lets check this on WhatsApp, there should be no hackers attack on WhatsApp, the hackers should not take the WhatsApp data