You are on page 1of 17

What are the levels of testing?

A level of software testing is a process where every unit or component


of a software/system is tested. The main goal of system testing is to
evaluate the system's compliance with the specified needs.

There are many different testing levels which help to check behavior
and performance for software testing. These testing levels are designed
to recognize missing areas and reconciliation between the development
lifecycle states. In SDLC models there are characterized phases such
as requirement gathering, analysis, design, coding or execution, testing,
and deployment.

All these phases go through the process of software testing levels.


There are mainly four testing levels are:

1. Unit Testing
2. Integration Testing
3. System Testing
4. Acceptance Testing

1) Unit testing:

A Unit is a smallest testable portion of system or application which can


be compiled, liked, loaded, and executed. This kind of testing helps to
test each module separately.

The aim is to test each part of the software by separating it. It checks
that component are fulfilling functionalities or not. This kind of testing is
performed by developers.
2) Integration testing:

Integration means combining. For Example, In this testing phase,


different software modules are combined and tested as a group to make
sure that integrated system is ready for system testing.

Integrating testing checks the data flow from one module to other
modules. This kind of testing is performed by testers.

3) System testing:

System testing is performed on a complete, integrated system. It allows


checking system's compliance as per the requirements. It tests the
overall interaction of components. It involves load, performance,
reliability and security testing.

System testing most often the final test to verify that the system meets
the specification. It evaluates both functional and non-functional need
for the testing.

4) Acceptance testing:

Acceptance testing is a test conducted to find if the requirements of a


specification or contract are met as per its delivery. Acceptance testing
is basically done by the user or customer. However, other stockholders
can be involved in this process.

Conclusion:

 A level of software testing is a process where every unit or


component of a software/system is tested.
 The primary goal of system testing is to evaluate the system's
compliance with the specified needs.
 In Software Engineering, four main levels of testing are Unit
Testing, Integration Testing, System Testing and Acceptance
Testing.

Functional Testing Vs Non-Functional Testing: What’s the Difference?

What is Functional Testing?

Functional testing is a type of testing which verifies that


each function of the software application operates in conformance with
the requirement specification. This testing mainly involves black box
testing, and it is not concerned about the source code of the application.
Every functionality of the system is tested by providing appropriate
input, verifying the output and comparing the actual results with the
expected results. This testing involves checking of User Interface, APIs,
Database, security, client/ server applications and functionality of the
Application Under Test. The testing can be done either manually or
using automation

What is Non-Functional Testing?

Non-functional testing is a type of testing to check non-functional


aspects (performance, usability, reliability, etc.) of a software
application. It is explicitly designed to test the readiness of a system as
per nonfunctional parameters which are never addressed by functional
testing.

A good example of non-functional test would be to check how many


people can simultaneously login into a software.

Non-functional testing is equally important as functional testing and


affects client satisfaction.

Functional Vs. Non-Functional Testing

Parameters Functional Non-functional testing


Execution It is performed before non-functional It is performed after the functional
testing. testing.
Focus area It is based on customer's It focusses on customer's
requirements. expectation.
Requirement It is easy to define functional It is difficult to define the
requirements. requirements for non-functional
testing.
Usage Helps to validate the behavior of the Helps to validate the performance of
application. the application.
Objective Carried out to validate software It is done to validate the performance
actions. of the software.
Requirements Functional testing is carried out using This kind of testing is carried out by
the functional specification. performance specifications
Manual testing Functional testing is easy to execute It's very hard to perform non-
Parameters Functional Non-functional testing
by manual testing. functional testing manually.
Functionality It describes what the product does. It describes how the product works.
Example Test Check login functionality. The dashboard should load in 2
Case seconds.
Testing Types Examples of Functional Testing Types Examples of Non-functional Testing
Types
 Unit testing
 Smoke testing  Performance Testing
 User Acceptance  Volume Testing
 Integration Testing  Scalability
 Regression testing  Usability Testing
 Localization  Load Testing
 Globalization  Stress Testing
 Interoperability  Compliance Testing
 Portability Testing
 Disaster Recover Testing

Black Box Testing Vs. White Box Testing: Key Differences

What is Black Box testing?

In Black-box testing, a tester doesn't have any information about the


internal working of the software system. Black box testing is a high level
of testing that focuses on the behavior of the software. It involves
testing from an external or end-user perspective. Black box testing can
be applied to virtually every level of software testing: unit, integration,
system, and acceptance.

What is White Box testing?

White-box testing is a testing technique which checks the internal


functioning of the system. In this method, testing is based on coverage
of code statements, branches, paths or conditions. White-Box testing is
considered as low-level testing. It is also called glass box, transparent
box, clear box or code base testing. The white-box Testing method
assumes that the path of the logic in a unit or program is known.

Difference between Black Box testing and White Box testing:


Parameter Black Box testing White Box testing

Definition It is a testing approach which is used to test It is a testing approach in which


the software without the knowledge of the internal structure is known to the
internal structure of program or application. tester.

Alias It also knowns as data-driven, box testing, It is also called structural testing,
data-, and functional testing. clear box testing, code-based
testing, or glass box testing.

Base of Testing Testing is based on external expectations; Internal working is known, and
internal behavior of the application is the tester can test accordingly.
unknown.

Usage This type of testing is ideal for higher levels of Testing is best suited for a lower
testing like System Testing, Acceptance testing. level of testing like Unit Testing,
Integration testing.

Programming knowledge Programming knowledge is not needed to Programming knowledge is


perform Black Box testing. required to perform White Box
testing.

Implementation Implementation knowledge is not requiring Complete understanding needs to


knowledge doing Black Box testing. implement WhiteBox testing.

Automation Test and programmer are dependent on each White Box testing is easy to
other, so it is tough to automate. automate.

Objective The main objective of this testing is to check The main objective of White Box
what functionality of the system under test. testing is done to check the
quality of the code.

Basis for test cases Testing can start after preparing requirement Testing can start after preparing
specification document. for Detail design document.

Tested by Performed by the end user, developer, and Usually done by tester and
tester. developers.

Granularity Granularity is low. Granularity is high.

Testing method It is based on trial and error method. Data domain and internal
boundaries can be tested.

Time It is less exhaustive and time-consuming. Exhaustive and time-consuming


method.

Algorithm test Not the best method for algorithm testing. Best suited for algorithm testing.
Parameter Black Box testing White Box testing

Code Access Code access is not required for Black Box White box testing requires code
Testing. access. Thereby, the code could
be stolen if testing is outsourced.

Benefit Well suited and efficient for large code It allows removing the extra lines
segments. of code, which can bring in
hidden defects.

Skill level Low skilled testers can test the application with Need an expert tester with vast
no knowledge of the implementation of experience to perform white box
programming language or operating system. testing.

Techniques Equivalence partitioning is Black box testing Statement Coverage, Branch


technique is used for Blackbox testing. coverage, and Path coverage are
White Box testing technique.
Equivalence partitioning divides input values
into valid and invalid partitions and selecting Statement Coverage validates
corresponding values from each partition of whether every line of the code is
the test data.  executed at least once. 

Boundary value analysis  Branch coverage validates


whether each branch is executed
checks boundaries for input values. at least once 

Path coverage method tests all


the paths of the program.

Drawbacks Update to automation test script is essential if Automated test cases can
you to modify application frequently. become useless if the code base is
rapidly changing.

What is Quality Assurance(QA)? Process, Methods, Examples

Before we learn Quality Assurance, let's understand-

What is Quality?
Quality is extremely hard to define, and it is simply stated: "Fit for use or
purpose." It is all about meeting the needs and expectations of
customers with respect to functionality, design, reliability, durability, &
price of the product.

What is Assurance?

Assurance is nothing but a positive declaration on a product or service,


which gives confidence. It is certainty of a product or a service, which it
will work well. It provides a guarantee that the product will work without
any problems as per the expectations or requirements.

What is Quality Assurance?

Quality Assurance is popularly known as QA Testing, is defined as an


activity to ensure that an organization is providing the best possible
product or service to customers. QA focuses on improving the
processes to deliver Quality Products to the customer. An organization
has to ensure, that processes are efficient and effective as per the
quality standards defined for software products.

How to do Quality Assurance: Complete


Process
Quality assurance has a defined cycle called PDCA cycle or Deming
cycle. The phases of this cycle are:

 Plan
 Do
 Check
 Act
These above steps are repeated to ensure that processes followed in
the organization are evaluated and improved on a periodic basis.
Let's look into the above steps in detail -

 Plan - Organization should plan and establish the process


related objectives and determine the processes that are
required to deliver a high-Quality end product.
 Do - Development and testing of Processes and also "do"
changes in the processes
 Check - Monitoring of processes, modify the processes, and
check whether it meets the predetermined objectives
 Act - Implement actions that are necessary to achieve
improvements in the processes

An organization must use Quality Assurance to ensure that the


product is designed and implemented with correct procedures. This
helps reduce problems and errors, in the final product.

What is Quality Control?

Quality control popularly abbreviated as QC. It is a Software


Engineering process used to ensure quality in a product or a service.
It does not deal with the processes used to create a product; rather it
examines the quality of the "end products" and the final outcome.

The main aim of Quality control is to check whether the products


meet the specifications and requirements of the customer. If an issue
or problem is identified, it needs to be fixed before delivery to the
customer.

QC also evaluates people on their quality level skill sets and imparts
training and certifications. This evaluation is required for the service
based organization and helps provide "perfect" service to the
customers.
Difference between Quality Control and
Quality Assurance?
Sometimes, QC is confused with the QA. Quality control is to
examine the product or service and check for the result. Quality
assurance is to examine the processes and make changes to the
processes which led to the end-product.

Examples of QC and QA activities are as follows:

Quality Control Activities Quality Assurance Activities

Walkthrough Quality Audit

Testing Defining Process

Inspection Tool Identification and selection

Checkpoint review Training of Quality Standards and


Processes

The above activities are concerned with QA and QC of any


product and not essentially software. With respect to software

 QA becomes SQA ( Software Quality Assurance)


 QC becomes Software Testing.
Differences between SQA and Software
Testing
Following table explains on differences between SQA and Software
Testing:

SQA Software Testing

Software Quality Assurance is about Software Testing is to test a product for


engineering process that ensures quality problems before the product goes live

Involves activities related to the Involves actives concerning verification of


implementation of processes, procedures, product Example - Review Testing
and standards. Example - Audits Training  

Process focused Product focused

Preventive technique Corrective technique

Proactive measure Reactive measure

The scope of SQA applied to all products The scope of Software Testing applies to a
that will be created by the organization particular product being tested.

Best practices for Quality Assurance:


 Create a Robust Testing Environment
 Select release criteria carefully
 Apply automated testing to high-risk areas to save money. It
helps to fasten the entire process.
 Allocate Time Appropriately for each process
 It is important to prioritize bugs fixes based on software usage
 Form dedicated security and performance testing team
 Simulate customer accounts similar to a production
environment

Quality Assurance Functions:


There are 5 primary Quality Assurance Functions:

1. Technology transfer: This function involves getting a product


design document as well as trial and error data and its
evaluation. The documents are distributed, checked and
approved
2. Validation: Here validation master plan for the entire system is
prepared. Approval of test criteria for validating product and
process is set. Resource planning for execution of a validation
plan is done.
3. Documentation: This function controls the distribution and
archiving of documents. Any change in a document is made by
adopting the proper change control procedure. Approval of all
types of documents.
4. Assuring Quality of products
5. Quality improvement plans

Conclusion:

Quality Assurance is to check whether the product developed is fit for


use. For that, Organization should have processes and standards to
be followed which need to be improved on a periodic basis. It
concentrates mainly on the quality of product/service that we are
providing to the customers during or after implementation of software.

What Does Verification Mean In Software Testing?


In software testing, the verification is a means to confirm that product
development is taking place as per the specifications and using the standard
development procedures. It comprises of the following activities.

1. Inspections
2. Reviews
3. Walk-throughs
4. Demos
What Does Validation Mean In Software Testing?
In software testing, the validation is a means to confirm that the developed
product doesn’t have any bugs and working as expected. It comprises of the
following activities.

1. Functional testing
2. Non-functional testing
What Are The Different Types Of Software Testing?
Following is the list of various testing types used by manual testers.
 Unit testing
 Integration testing
 Regression testing
 Shakeout testing
 Smoke testing
 Functional testing
 Performance testing
 Load testing
 stress testing
 Endurance testing
 White box and Black box testing
 Alpha and Beta testing
 System testing
What Do You Know About API Testing?
API is an acronym for Application Programming Interface. It gives users
access to public classes, functions, and member variables for calling them
from external applications. It lays down a model for components to being
interaction with each other.

API testing comprises of three parts:

1. Data tier (database)


2. Business logic tier (PHP/J2EE)
3. Presentation tier (UI)

What is Software Testing? Introduction, Definition, Basics


& Types
What is Software Testing?
Software testing is defined as an activity to check whether the actual
results match the expected results and to ensure that the software
system is Defect free. It involves execution of a software component
or system component to evaluate one or more properties of interest.

Software testing also helps to identify errors, gaps or missing


requirements in contrary to the actual requirements. It can be either
done manually or using automated tools. Some prefer saying
Software testing as a White Box and Black Box Testing.

Why is Software Testing Important?


Testing is important because software bugs could be expensive or
even dangerous. Software bugs can potentially cause monetary and
human loss
Types of Software Testing
Typically Testing is classified into three categories.

 Functional Testing
 Non-Functional Testing or Performance Testing
 Maintenance (Regression and Maintenance)

Testing Category Types of Testing

Functional Testing  Unit Testing

 Integration Testing

 Smoke

 UAT ( User Acceptance


Testing)

 Localization

 Globalization

 Interoperability

 So on

Non-Functional Testing  Performance

 Endurance

 Load

 Volume

 Scalability

 Usability

 So on
Maintenance  Regression

 Maintenance

What is Automation Testing?


Manual Testing is performed by a human sitting in front of a
computer carefully executing the test steps.

Automation Testing means using an automation tool to execute your


test case suite.

The automation software can also enter test data into the System
Under Test, compare expected and actual results and generate
detailed test reports. Test Automation demands considerable
investments of money and resources.

Successive development cycles will require execution of same test


suite repeatedly. Using a test automation tool, it's possible to record
this test suite and re-play it as required. Once the test suite is
automated, no human intervention is required. This improved ROI of
Test Automation. The goal of Automation is to reduce the number of
test cases to be run manually and not to eliminate Manual Testing
altogether.

Why Automated Testing?


Automated software testing is important due to the following reasons:

 Manual Testing of all workflows, all fields, all negative


scenarios is time and money consuming
 It is difficult to test for multilingual sites manually
 Automation does not require Human intervention. You can run
automated test unattended (overnight)
 Automation increases the speed of test execution
 Automation helps increase Test Coverage
 Manual Testing can become boring and hence error-prone.

Key Differences between Primary key and Foreign key


1. A primary is a set of attributes/a candidate key that distinctly
identifies a record in a relation. However, a foreign key in a
table refers to the primary key of another table.
2. No primary key attributes can contain NULL values whereas, a
foreign key attribute can accept NULL value.
3. A primary key should have unique attribute values whereas, a
foreign key may have duplicate attribute values.
4. There may be multiple foreign keys in a relation, but a
relation has only one primary key.
5. The primary key constraint can be applied to the temporary
tables. However, foreign key constraint can not be applied to
the temporary tables.
6. A primary key is by default clustered indexed whereas, a
foreign key is not cluster-indexed automatically, but it can be
done manually.
7. While inserting a value into a foreign key column, make sure
that the inserting attribute value is present in the referenced
primary key column. However, there is no restriction on
insertion in primary key column.
8. While deleting a value from primary key column make sure
that the deleted attribute value is not present in the
referencing foreign key column. However, there is no
constraint on deleting a value from a foreign key column.

A WHERE clause is used is filter records from a result.  The filter occurs
before any groupings are made.
A HAVING clause is used to filter values from a group.
Comparison Chart

BASIS FOR
WHERE HAVING
COMPARISON

Basic Implemented in row Implemented in column

operations. operations.

Applied to Single row Summarized row or groups.

Data fetching It only fetches the particular At first, complete data is

data from particular rows fetched then separated

according to the condition. according to the condition.


BASIS FOR
WHERE HAVING
COMPARISON

Aggregate Cannot appear in WHERE Can appear in HAVING

Functions clause. clause.

Used with SELECT and other statements Can't be used without a

such as UPDATE, DELETE or SELECT statement.

either one of them.

Act as Pre-filter Post-filter

GROUP BY Comes after WHERE. Comes before HAVING.

Truncate

The TRUNCATE command in SQL removes all rows from a table without
logging the individual row deletions in the transaction log. The TRUNCATE
statement has the same functionality as the DELETE statement, in that it
deletes the data from the table without modifying or deleting the structure of
the table. However, you can't use the WHERE Clause with the TRUNCATE
statement.

Delete

The DELETE command in SQL also removes rows from a table, but it logs the
individual row deletions in the transaction log. Additionally, you can use the
WHERE Clause with the DELETE statement to qualify which rows are to be
deleted.

Difference Between DDL and DML in DBMS


September 26, 2016 11 Comments

Data
Definition Language (DDL) and Data Manipulation Language (DML)
together forms a Database Language. The basic difference between
DDL and DML is that DDL (Data Definition Language) is used to
Specify the database schema database structure. On the other
hand, DML (Data Manipulation Language) is used to access, modify
or retrieve the data from the database. Let us discuss the
differences between DDL and DML, with the help of comparison
chart shown below.

DCL(Data Control Language) : DCL includes commands such as GRANT


and REVOKE which mainly deals with the rights, permissions and other
controls of the database system.
Examples of DCL commands:
 GRANT-gives user’s access privileges to database.
 REVOKE-withdraw user’s access privileges given by using the GRANT
command.

How do GROUP and ORDER BY Differ?


This is a question I’m frequently asked.  On the surface both clauses appear
to do the same thing; that is sort sort data. But this is where their similarities
end.  In fact, both serve entirely different purposes.
 The ORDER BY clause’s purpose is to sort the query result by specific

columns.

 The GROUP BY clause’s purpose is summarize unique combinations of

columns values.

Delete: The DELETE command is used to remove rows from a table. A


WHERE clause can be used to only remove some rows. If no WHERE
condition is specified, all rows will be removed. After performing a
DELETE operation you need to COMMIT or ROLLBACK the transaction
to make the change permanent or to undo it. Note that this operation
will cause all DELETE triggers on the table to fire.
Drop: The DROP command removes a table from the database. All the
tables' rows, indexes and privileges will also be removed. No DML
triggers will be fired. The operation cannot be rolled back

You might also like