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