Вы находитесь на странице: 1из 5

Name: VISHAL SAROJ GUPTA

What is Software Testing?


Software testing is 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, history is full of such examples.

 In April 2015, Bloomberg terminal in London crashed due to software glitch affected more than
300,000 traders on financial markets. It forced the government to postpone a 3bn pound debt
sale.
 Nissan cars have to recall over 1 million cars from the market due to software failure in the
airbag sensory detectors. There has been reported two accidents due to this software failure.
 Starbucks was forced to close about 60 percent of stores in the U.S and Canada due to
software failure in its POS system. At one-point store served coffee for free as they unable
to process the transaction.
 Some of the Amazon’s third-party retailers saw their product price is reduced to 1p due to a
software glitch. They were left with heavy losses.
 Vulnerability in Window 10. This bug enables users to escape from security sandboxes through
a flaw in the win32k system.
 In 2015 fighter plane F-35 fell victim to a software bug, making it unable to detect targets
correctly.
 China Airlines Airbus A300 crashed due to a software bug on April 26, 1994, killing 264
innocents live
 In 1985, Canada's Therac-25 radiation therapy machine malfunctioned due to software bug and
delivered lethal radiation doses to patients, leaving 3 people dead and critically injuring 3
others.
 In April of 1999, a software bug caused the failure of a $1.2 billion military satellite
launch, the costliest accident in history
 In May of 1996, a software bug caused the bank accounts of 823 customers of a major U.S. bank
to be credited with 920 million US dollars.

Types of Software Testing:


Typically Testing is classified into three categories.

 Functional Testing.
 Non-Functional Testing.
 Maintenance Testing.

Testing Category Types of Testing


Functional Testing  Unit Testing
 Integration Testing
 Smoke
 UAT (User Acceptance Testing)
 Localization
 Globalization
 Interoperability

1|Page
Name: VISHAL SAROJ GUPTA

Non-Functional Testing  Performance


 Endurance
 Load
 Volume
 Scalability
 Usability

Maintenance  Regression
 Maintenance

Types of Functional Testing:

Functional testing is a software testing process used within software development in which
software is tested to ensure that it conforms to all requirements. Functional testing is a way
of checking software to ensure that it has all the required functionality that's specified
within its functional requirements.

1. Unit Testing: Unit testing of software applications is done during the development
(coding) of an application. The objective of Unit Testing is to isolate a section of
code and verify its correctness. In procedural programming a unit may be an individual
function or procedure. The goal of Unit Testing is to isolate each part of the program
and show that the individual parts are correct. Unit testing is usually performed by
the developer.
2. Integration Testing: In integration testing, individual software modules are
integrated logically and tested as a group. A typical software project consists of
multiple software modules, coded by different programmers. Integration Testing
focuses on checking data communication amongst these modules. Hence it is also termed
as 'I & T' (Integration and Testing), 'String Testing' and sometimes 'Thread Testing'.
3. Smoke Testing: SMOKE TESTING, also known as “Build Verification Testing”, is a type of
software testing that comprises of a non-exhaustive set of tests that aim at ensuring
that the most important functions work. The result of this testing is used to decide
if a build is stable enough to proceed with further testing.
4. User Acceptance Testing: In software development, user acceptance testing (UAT) - also
called beta testing, application testing, and end user testing - is a phase of
software development in which the software is tested in the "real world" by the
intended audience.
5. Localization: Localization testing is the software testing process for checking the
localized version of a product for that particular culture or locale settings. The
areas affected by localization testing are UI and content.
6. Globalization: A product is said to be globalized when that particular product can be
run independent of its geographical and cultural environment. This type of testing
technique validates whether the application can be used all over the world that
accepts all the language texts.
7. Interoperability: Interoperability testing is a type of testing to check whether
software can inter-operate with other software component, software's or systems.

Types of Non-Functional Testing:

Non-functional testing is the testing of a software application or system for its non-functional
requirements: the way a system operates, rather than specific behaviors of that system.

1. Performance Testing: Software Performance testing is type of testing perform to


determine the performance of system to major the measure, validate or verify quality

2|Page
Name: VISHAL SAROJ GUPTA

attributes of the system like responsiveness, Speed, Scalability, Stability under


variety of load conditions.
2. Endurance Testing: Endurance testing is a non-functional type of software testing. It
is a type of non-functional testing. It is also known as Soak testing. Endurance
testing involves testing a system with a significant load extended over a significant
period of time, to discover how the system behaves under sustained use.
3. Load Testing: Load testing is a type of non-functional testing. A load test is type of
software testing which is conducted to understand the behavior of the application
under a specific expected load. Load testing is performed to determine a system's
behavior under both normal and at peak conditions.
4. Volume Testing: It is a type of non-functional testing. Volume testing refers to
testing a software application or the product with a certain amount of data. E.g., if
we want to volume test our application with a specific database size, we need to
expand our database to that size and then test the application's performance on it.
5. Scalability Testing: Scalability testing is the part of non-functional testing where
a software application's performance is tested in terms of its non-functional
capability to scale up or scale down the user request load or other such performance
attributes.
6. Usability Testing: Usability Testing is a type of software testing where, a small set
of target end-users, of a software system, "use" it to expose usability defects. This
testing mainly focuses on the user's ease to use the application, flexibility in
handling controls and ability of the system to meet its objectives.

Study of Reviews:
Review is a way of static testing technique done before dynamic testing. Review is manual
examination of software work product (including code) without execution of software and make
comments about it. Review is mostly a manual activity but there is some tool support also.
Review can be performed on any of the software works like requirement specification, design
specification, code, test plans, test specification, test cases, test scripts, user guides or
web pages. Typical defects that are easier to find in review than in dynamic testing are
deviation from standards, requirement defects, design defects, insufficient maintainability
and incorrect interface specifications.

Writing Test Cases:

While drafting a test case do include the following information

 The description of what requirement is being tested


 The explanation of how the system will be tested
 The test setup like: version of application under test, software, data files,
operating system, hardware, security access, physical or logical date, time of day,
prerequisites such as other tests and any other setup information pertinent to the
requirements being tested
 Inputs and outputs or actions and expected results
 Any proofs or attachments
 Use active case language
 Test Case should not be more than 15 steps
 Automated test script is commented with inputs, purpose and expected results
 Setup offers alternative to pre-requisite tests
 With other tests, it should be incorrect business scenario order

3|Page
Name: VISHAL SAROJ GUPTA

Testing Framework:
A framework is nothing but a set of protocols or rules that can be incorporated to leverage
the benefits provided by the framework. A software testing framework provides an environment
for the automation test scripts to be executed. With the use of framework, users can efficiently
work with the automation test scripts, including development, execution, and reporting.

In short, a framework is a mixture of various guidelines, protocols, concept, processes, etc.


that can be followed by a user while automating an application and take advantage of various
positive aspects. Depending on the situation, the result could be in different forms, like
scripting, modularity, scalability, maintenance, etc. These benefits could be grabbed if there
are multiple test automation frameworks to be used for different software testing strategies.

However, there are situations when there is a requirement of a standard framework for test
automation. This happens in a situation where there are multiple modules of an application and
there are many developers who have their own idea of implementing automation. A single framework
can help in avoiding any confusion arising due to multiple ideas.

 Modular Framework: Modular framework is like creation of small, independent scripts that
represents modules, sections and functions of the application under test. These small
scripts are then used in a hierarchical fashion to construct larger test for a particular
test case.
 Keyword-driven Framework: Keyword Driven Framework is a type of Functional Automation
Testing Framework which is also known as Table-Driven testing or Action Word based
testing. The basic working of the Keyword Driven Framework is to divide the Test Case
in to four different parts.
 Data-driven Framework: Data-driven is a test automation framework which stores test data
in a table or spread spreadsheet format. This allows automation engineers to have a
single test script which can execute tests for all the test data in the table. In this
framework, input values are read from data files and are stored into a variable in test
scripts. Ddt (Data Driven testing) enables building both positive and negative test
cases into a single test.
 Hybrid Framework: Hybrid Test framework is a concept where we are using the advantage
of both Keyword and Data driven framework. About Implementation of the same at the time
of creating of framework need to take care of all test objects those are not going to
be changed in application should be hardcoded and most frequently changing objects should
be taken from the data sheet.

Test Documents:

1. Test Plan: A document describing the scope, approach, resources and schedule of intended
test activities. It identifies amongst others test items, the features to be tested, the
testing tasks, who will do each task, degree of tester independence, the test
environment, the test design techniques and entry and exit criteria to be used, and the
rationale for their choice, and any risks requiring contingency planning. It is a record
of the test planning process.
A. Master test plan: A test plan that typically addresses multiple test levels.
B. Phase test plan: A test plan that typically addresses one test phase.
2. Test Scenario

A Test Scenario is any functionality that can be tested. It is also called Test Condition
or Test Possibility. As a tester, you may put yourself in the end user’s shoes and figure
out the real-world scenarios and use cases of the Application under Test.

3. Test Case

4|Page
Name: VISHAL SAROJ GUPTA

A TEST CASE is a set of conditions or variables under which a tester will determine
whether a system under test satisfies requirements or works correctly.The process of
developing test cases can also help find problems in the requirements or design of an
application.

4. Traceability Matrix

Requirement Traceability Matrix. Requirement Traceability Matrix or RTM captures all


requirements proposed by the client or development team and their traceability in a
single document delivered at the conclusion of the life-cycle. In other words, it is a
document that maps and traces user requirement with test cases

5. Test Incident Reporting

Incident report can be defined as a written description of an incident observed during


testing. To understand better, let’s start with what an ‘incident’ is. Incident in a
software testing can be defined as a variation or deviation observed in system behavior
from what is expected. It can be a deviation from a functional requirement or from the
environment setup. Very often an incident is referred as a defect or a bug, but it is
not always the case. Incident is basically any unexpected behavior or response from
software that requires investigation

6. Test Log

The test case log documents different test cases for a particular test type to be
executed during testing. It also records the results of the tests, which provides the
detailed evidence for the test log summary report and enables us to reconstruct the
test, if necessary

7. Test Summary

Test summary report is a formal document that summarizes the results of all testing
efforts for a particular testing cycle of a project / module or a sub module. Generally,
test leads or test managers prepare this document at the end of testing cycle. Some test
managers prepare it at the end of project.

5|Page

Вам также может понравиться