Blog Details

img
Software Testing

Latest Manual Testing Theory Notes 2024

Administration / 8 Mar, 2024

Verification & validation of software is called as testing:


-->  Verification means whether the software is correctly implemented or not. 

-->Validation means the implemented software meets the customer requirements or not. 

 

-->Software testing will help to deliver reliable application to the customer and also it will reduce maintenance cost for a project. 

 

-->The objective of Software testing is to identify defects. When those are resolved the software quality improves. 

 

Defect: 


It is a deviation between expected result and actual results in AUT (Application under Test). 

Defect can also call as Issue/Incident/Fault. 

 

Bug: 


When developers are accepted defects then those are called bugs. 

 

Failure: 


When defects are reached end users then those are called failures. 

Note: In general defects may present in application due to human mistakes while developing application like syntax errors and logical errors. 

 

Software Quality: 


From producer point of view when application full filled with all the user requirements and from end user point of view when application fit 

for use the it is consider as quality application. 


In general Software Quality depends on following factors: 


1) Budget/cost 

2) In time Release 

3) Reliability 

4) Meet client requirements in terms of functionalities. 

5) Meet client expectations in terms of performance, compatibility, user friendliness…etc. 

 

Some of the activities: 


Coding: {SDLC} 

 

Writing programs using programming or scripting languages in order to develop the application. It is performed by developers or programmers. 

 

Testing: {STLC} 


In general every organization will maintain separate testing team. After successfully application developed that will be delivered to separate testing team. 

Validating application based on client requirements and expectations is called testing. 


Following are members in testing team. 


-->Test Manager 

-->Test Lead 

-->Sr.Test Engineer 

-->Test Engineer/Trainee 

 

Defect Reporting: {BLC} 


Notifying about the defects to the developers is called as defect reporting. It is performed by test engineer. 

 

Debugging: 


Analyze source code of the application in order to identify root cause for a defect. It is performed by developers. 

 

Bug Fixing: 


Modifying source code of application in order to solve the defects is called as bug fixing/bug resolving. 

 

Skill set required for a functionality test engineer: 


1) Knowledge on manual testing concepts. 

2) Knowledge on any one of functionality testing tool like Selenium, QTP. 

3) Knowledge on defect reporting tool like QC, Bugzilla, Jira. 

4) Some portion of knowledge on data base like Sql-Server, Oracle. 

 

Software Testing Methods: 


In general every organization uses 2-types of testing’s to test an application. 

1) Manual Testing 

2) Automation Testing. 

 

Manual Testing: 


1) It is the process of testing an application manually without using any automation tool. 

2) In manual testing Test engineer derived & executes the test cases & generate the reports manually. 

3) In manual testing there are 2-types of approaches. 

I) Static Testing 

II) Dynamic Testing 

 

Static Testing: 


1) Without executing application identify the defects is called as static testing (Verification). 

2) It includes checking of requirement documents, design docs etc... 

3) We can perform static testing by using peer reviews, walkthroughs, and inspections. 

 

Eg: Verify the spelling mistakes in buttons, labels is a static. 

 

Dynamic Testing: 


1) Perform the testing with execution of application is called as dynamic testing. 

2) It includes checking of every feature of total application. 

3) We can perform dynamic testing by using following methods. 

1) WBT 

2) BBT 

3) GBT 

4) Unit Testing 

5) System Testing 

6) Integration Testing 

7) UAT (User Acceptance Testing).........etc 

 

Eg: Validate Sign in button is correctly working or not in Google.com is a dynamic testing. 

 

Automation Testing: 


1) Automating human activities with the programming language or any 3rd party tool is known as automation. 

2) The process of converting manual test cases into test scripts by using some tool is also known as automation. 

3) Performing testing activities by using some automation tool is known as automation testing. 

 

4) The following are the various automation testing tools: 


1) QTP /UFT (Quick Test Professional / Unified Functional Testing Tool 

2) Selenium 

3) Lisa 

4) Tosca 

5) Win runner 

6) Test complete 

 

5) In automation testing automation engineer is responsible to develop and exectues the test scripts. 

Note: 

-->Test case is related manual testing and can be developed with the help of excel files. 

-->Test scripts is related to automation testing and can be developed by using some programming languages like Java, ruby, puthon, C# etc. 

 

Difference between Manual Testing & Automation Testing:


Manual Testing 

Automation Testing 

1) Manual testing can required Human 

Interaction to execute the Test cases. 

1) Automation testing uses tools to develop 

and execute the Test Scripts. 

2) Manual testing will required Skilled 

Resources long time will be high cost. 

2) Automation testing save the time, 

cost & man power. 

3) Any type of application can be tested 

manually. Conducting testing types ad-hoc 

testing, monkey testing can be done only 

by Manual testing. 

3) Automation testing can be recommended 

only for stable applications and it is mostly 

used for regression testing. 

 

4) Manual testing can be boring and 

 

repetitive. 

 

4) The boring part of executing Same test cases again and again Can be handled by automation Testing. 

 


Note: 


1) 100% automation testing is not possible. 

2) Every application should be tested at least manually once. 

3) Manual testing can be applicable for all the applications but automation testing may not applicable. 

 

Differences between Verification & Validation:


Verification 

Validation 

1) It is the process of verifying whether the 

application is implemented correctly or not. 

1) It is the process of validating whether the 

application meets the client requirements 

or not. 

2) It won't requires execution of the application 

2) It required execution of the application. 

3) It is also known as static testing. 

3) It is also known as dynamic testing. 

 

4) It includes checking of the requirement 

 

documents like BRS, Design, FRs etc. 

 

5) It includes testing of all thefeatures of 

 

application with execution 

 

6) We can perform verification by using the 

methods. 

à peer review 

à walkthroughs 

à Inspections 

5) We can perform validation by using the 

methods. 

à WBT 

à BBT 

à GBT 

 

7) It finds the bugs or defects early in the 

 

development life cycle which is very 

essential w.r.t cost 

 

8) It finds the bugs or defects which are not 

 

identified in verification & very costly to 

reslove. 

 

Difference between Testing & Debugging


Testing 

Debugging 

1) It is the process of verifying Whether the 

application fulfills Client requirements or not 

whether the application contains any defects 

Or not. 

1) It is the process of analyzing the source 

code of application to identify root cause for 

a defect. 

2) Testing will be performed by the Test 

Engineer

2) Debugging will be performed by the 

developers. 

3) Testing will be performed as a part of 

testing phase. 

3) Debugging will be performed 

as a part of WBT or unit testing 

 

Roles & Responsibilities of Test Engineer: 


è Review on requirements like BRS &FRS to understand application functionalities. 

è Identify test scenarios for allocated modules. 

 

Test Scenario: It describes test condition or requirement or functionality which we need to validate. 

Ex: Identify test scenarios in Gmail home page. 


TS01: Login validation. 

TS02: Stay signed in. 

TS03: Need help. 


è Prepare test cases for manual testing. 

 

Test Case: It consist set of steps or sequence of steps with user actions & subsequent response from the system. 


Ex: Identify possible test cases for “Login validation”. 

TC01: Verify login functionality with valid data. 

TC02: Verify login functionality with in valid data. 

TC03: Verify login functionality without data. 

Ex: Write test cases to verify login functionality with invalid data.

 

 

Test case 

ID/Name 

Test Case 

Description 

Step Name 

Step Description 

Expected Result 

TC01_Gmail_Login

 

This TC to verify login functionality using invalid data.

 

Step 1 

Enter invalid email valid pwd & click on “signin”. 

Email=”selenium”. 

Pwd=”selenium1”. 

Error message should popup. 

“Invalid user Id” 

Step3 

Enter invalid email in valid pwd & click on “signin”. 

Email=”selenium”. 

Pwd=”selenium”. 

Error message should popup. 

“Invalid user Id & password” 

Step3 

Enter invalid email in valid pwd & click on “signin”. 

Email=”selenium”. 

Pwd=”selenium”. 

Error message should popup. 

“Invalid user Id & password” 


è Develop automation test script. 

è Review on test cases and automation test script to check correctness and completeness. 

è Execution of test cases and automation test scripts. 

è Defect reporting & prioritize defects. 

è Performing retesting & regression testing. 

 

Software: 


Set of statements logic and related data which gives instructions to system to perform specific task based on usage. There are 2 types of Softwares. 


1) Product based Softwares 

2) Project based Softwares 

 

1) Product based Softwares 


Whenever Softwares developed based on standard or generic requirements and that can be selling to any customer such Softwares is called as product based Softwares. 


2) Project based Softwares 


Whenever Softwares developed based on particular client requirements and that should be deliver that a particular client only. 

Ex: HDFC bank.com, ICICI bank.com 

Based on work there are 2 types of companies in industry. 


1) Product based 

2) Service based 

 

1) Product based: Company which will focus on their own products to develop. 

2) Service based: Company which will develop projects for individual clients. 

 

Company Client/Customer & End user: 

Company: It is an organization where application will be developed. 

Client/Customer: It is an organization or individual person who will provide requirements to develop application. 

End User: Who will be use s/w at work environment with real data? 

 

Different environments in project: 

There 4 types of environments in a project. 

1) Development Environment: 

 

In this environment development team will involve to develop application based on client requirements. 

 

2) Testing Environment: 

 

After successful implementation of project that will be deployed/installed at test environment to validate application based on requirements. 

Where separate testing team involve validating application. 

 

3) UAT Environment: 

 

In this environment client team involve validating application in order to confirm project is acceptable or not. 

 

4) Production Environment: 

 

In this environment application used by end user with real data. This is also called as live environment. 

 

System Software & Application Software: 

 

1) System Software: 

 

This is also called as BIOS (Basic Input & Output System). These used to provide interface among the system components. Ex: Devise drives, OS…Etc.

 

2) Application Software: 


This is also called as front end application. These are developed based on user business needs whereas front end used to manipulate data into database. 

 

Application Softwares are: 


1) Desktop Applications 

2) Web Applications 

3) Enterprise Applications 

4) Distributed Applications 

5) Mobile Applications 

6) Embedded Applications 

 

All the applications are the combination of the environments.

 


 

1) Desktop application / Standalone app: 


The applications which are running on a single computer called as standalone application. Two types of standalone applications are there. 


1) CUI Based 

2) GUI Based 


1) CUI Based: 

 

Applications which are running through console are called as CUI base app. These apps are also called as console apps. 

Ex: Any Java Program 


2) GUI Based: 

 

Applications which are running with graphical user interface are called as GUI based .These are also called as desktop app. 

Ex: Ms-word, calc etc.

 

2) We Applications: 

 

1) The applications which can provide services over the web are called as web application. We can develop web applications by using web technologies like servlets, JSP, PHP etc. 

2) Web application will be hosted on a special computer which is known as web server. 

3) By using web client (Browser) end user will send request and web server will process the request & sent requested response to the client. Web client will display the response to the end user. 

Web Servers: Tomcat, JETTY etc..... 

Note: Every web application will be represented in a war file form. war (web archive) is compressed file which contains all the resources of the web application. 

 

3) Enterprise applications: 

 

These applications are more superior to web applications. We can develop enterprise applications by using technology like web technology, distributed technology etc. 

Ex: servelets, JSP, EJB etc..... 

Enterprise apps are banking apps, tele communication apps..... 

Note: Enterprise applications can be represented in a compressed form which is nothing but ear file. 

ear:(Enterprise archive) i.e nothing but build file. 

Note: 

1) Enterprise applications can distribute across the several machines such type of applications are called as distributed applications. 

2) The main advantages of distributed applications are scalability, No Fail-over situation. 

 

4) Mobile applications: 

 

The applications which are running on mobile device are called as mobile applications. 

Ex: BookMyShow mobile app, PayTM mobile app 

The most popular technologies to develop mobile applications are android & IOS. 

There are 2 types of mobile apps. 

1) Native apps 

2) Browser apps 

 

3 Layers in Application: 

In general Software application contains following 3 layers. 

1) Presentation Layer 

2) Business / Application Layer 

3) Data Layer 

 

1) Presentation Layer: 

§ It is also known as client layer. 

§ It is the top most layer of the application. 

§ It is the view part of the application. 

§ This is the layer which end user can see whenever using the application. 

§ The main functionality of presentation layer is collecting the information from the end user & passing to the next level. 

 

Ex: Login page of Gmail, Login page of HMS. 

 

2) Business Layer / Application Layer: 

§ It is responsible to perform total business functionality. 

§ Application layer process the information provided by the presentation layer & interact with data layer & provided information to the presentation layer. 

 

Ex: whether user provides user name & password application layer is responsible to validate & provide required response with the help of data layer. 

 

3) Data Layer: 

§ The data & corresponding logic will be stored in this layer. 

§ Application layer communicates with the data layer to retrieve the data. It contains logic to interact with data base like insert, update & delete. 






Note: 


Presentation Layer : View Part of Application 

Application Layer : Processing Part of Application 

Data Layer : Data processing Part of Application


Software Architectures: 


1) It is the fundamental design of the software system. 

2) It describes the layers of the application. 

3) It helps to every memebr of the project to understand apllication structure. 

4) It is helpful for code maintainability, reusability, productivity etc. 

 

Types of Software Architectures: 


1) 1-Tier Architecture 

2) 2-Tier Architecture 

3) 3-Tier Architecture 

4) N-Tier Architecture 

5) Peer to peer Architecture 

 

1) 1-Tier Architectures: 

-->If the PL, BL & DL are available in a single machine, then it is considered as 1-tier architecture. 

-->It is also known as standalone architecture. 

 

                         

 

The Main Advantage of this Architecture is: 

-->It is very Simple. 

-->It is having high Performance 

 

The main Limitations of this Architecture are: 

-->Not suitable for large scale projects. 

-->No networking, hence we can't access from remote server. 

 

The Main Advantage of this Architecture is: 

-->It is very Simple. 

-->It is having high Performance 

 

The main Limitations of this Architecture are: 

-->Not suitable for large scale projects. 

-->No networking, hence we can't access from remote server. 

 

2) 2-Tier Architecture: 

-->The PL & BL are available in one machine & data layer is available in other system, then it is consider as 2-tier architecture. 

-->It is also known as client-server architecture. Client can communicate with server by using LAN /WAN. 

 

 

 

 

· It is most rarely used architecture. 

-->Application communicates directly with the data base which may cause security problem. 

-->It is very difficult to scaleup & difficult to maintain. 

 

3) 3-Tier Architecture: 

-->If all the 3-layers (PL, AL, DL) are available in different systems then it is consider as 3-tier architecture. 

-->It is most commonly used architecture for web applications. 

-->It supports scalability & maintainability. 

-->Enhancements will become very easy. 

-->It provides security.


 

 

 

 

4) N-Tier Architecture: 

 

-->If PL, BL, DL are divided into multiple tiers then it is considered as N-tier architecture. 

-->Based on application requirement we may distribute any layer across several machines. 


Ex: PL can be divided into multiple tiers like. 


§ One tier for we presentation layer 

§ One tier for mobile presentation layer 

§ One tier for Tablet presentation layer 


-->Ex: The data layer can be divided into multiple tiers like. 


§ One tier for oracle data layer 

§ One tier for MySQL layer etc. 


-->It is also known as distributed architecture, best suitable for enterprise applications. 

 

 

 

The main Advantages are: 

§ Scalability 

§ Maintainability 

§ Can handle Fail-over situations very easily. 

 

-->In general we can distribute business layer into multiple machines. 

 

5) Peer-To-Peer Architecture: 


-->No server concept. 

-->All the 3-layer (PL, BL, DL) are hosted in a single machine which is nothing but a node. We can maintain multiple nodes. 

-->No single point of failure, even one node fails then other node can process requests. 

-->Best suitable for small applications with high range scalability. 


 

 

 

Quality Management: 


It is a process of preventing defects in the development of application. The aim of this process is no defects in final product. 

Quality Management divided into 2-parts. 


1) Quality Assurance 

2) Quality Control 

 

1) Quality Assurance: 


-->QA team will define development process of application to prevent defects in application. QA team involve throughout life cycle

 to monitor and measure the strength of development process, if any weakness identified they will provide suggestion to improve 

the strength of development process. 

· High level management team, domain experts, technical experts are the members in QA. 

 

2) Quality Control: 

 

QC team involve after product is developed. In order to deliver in the defects and make sure those should be resolved before deliver application to the customer.

0 comments