Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes...

34
Software Testing Fundamental Dictionary Adam Hendra Brata

Transcript of Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes...

Page 1: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

Software TestingFundamental Dictionary

Adam Hendra Brata

Page 2: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

2

Agenda :

Type of Testing

Software Testing Keywords– Test Case

– Test Scenario

– Validation and Verification

– Software Testing Fundamental

Page 3: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

3

Type of Testing

Page 4: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

4

Testing Types

Manual Testing

– Manual testing includes testing a software manually, i.e.,

without using any automated tool or any script. In this type,

the tester takes over the role of an end-user and tests the

software to identify any unexpected behavior or bug.

Automated Testing

– Automation testing, which is also known as Test

Automation, is when the tester writes scripts and uses

another software to test the product. This process involves

automation of a manual process. Automation Testing is used

to re-run the test scenarios that were performed manually,

quickly, and repeatedly.

Page 5: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

5

Manual Testing

The key concept of Manual Testing is to ensure that the

application is error free and it is working in conformance

to the specified functional requirements.

Test Suites or cases ,are designed during the testing

phase and should have 100% test coverage.

It also makes sure that reported defects are fixed by

developers and re-testing has been performed by testers

on the fixed defects.

Basically, this testing checks the quality of the system and

delivers bug-free product to the customer.

One of the Software Testing Fundamental is "100%

Automation is not possible".

Page 6: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

6

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.

Goal of Automation is to reduce number of test

cases to be run manually and not eliminate manual

testing all together.

Page 7: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

7

Manual vs Automated

Page 8: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

8

Manual vs Automated

Page 9: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

9

Software Testing KeywordsTest Case & Test Scenario

Page 10: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

10

Test Case

Test Case

– Test case is a concept which provides detailed information

what to test, steps to be taken and expected result of the

same

– A test case is a document, which has a set of test data,

preconditions, expected results and postconditions,

developed for a particular test scenario in order to verify

compliance against a specific requirement.

– Test case acts as the starting point for the test execution,

and after applying a set of input values, the application has

a definitive outcome and leaves the system at some end

point or also known as execution postcondition.

Page 11: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

11

Test Case

Typical Test Case Parameters:

– Test Case ID

– Test Scenario

– Test Case Description

– Test Steps

– Prerequisite

– Test Data

– Expected Result

– Test Parameters

– Actual Result

– Environment Information

– Comments

Page 12: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

12

Test Case

Test Case Example

– Let us say that we need to check an input field that can

accept maximum of 10 characters.

– While developing the test cases for the above scenario, the

test cases are documented the following way. In the below

example, the first case is a pass scenario while the second

case is a FAIL.

– If the expected result doesn't match with the actual result,

then we log a defect. The defect goes through the defect life

cycle and the testers address the same after fix.

Page 13: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

13

Test Case

Scenario Test Step Expected ResultActual

Outcome

Verify that the

input field that

can accept

maximum of 10

characters

Login to

application and

key in 10

characters

Application

should be able to

accept all 10

characters.

Application

accepts all 10

characters.

Verify that the

input field that

can accept

maximum of 11

characters

Login to

application and

key in 11

characters

Application

should NOT

accept all 11

characters.

Application

accepts all 10

characters.

Page 14: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

14

Test Scenario

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.

– Scenario Testing is a variant of Software Testing where

Scenarios are Used for Testing. Scenarios help in an Easier

Way of Testing of the more complicated Systems

Page 15: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

15

Test Scenario

Why create Test Scenarios ?

– Creating Test Scenarios ensures complete Test Coverage

– Test Scenarios can be approved by various stakeholders

like Business Analyst, Developers, Customers to ensure the

Application Under Test is thoroughly tested. It ensures that

the software is working for the most common use cases.

– They serve as a quick tool to determine the testing work

effort and accordingly create a proposal for the client or

organize the workforce.

– They help determine the most important end-to-end

transactions or the real use of the software applications.

– For studying the end-to-end functioning of the program, Test

Scenario is critical.

Page 16: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

16

Test Scenario

Test Scenarios may not be created when

– The Application Under Test is complicated, unstable and

there is a time crunch in the project.

– Projects that follow Agile Methodology like Scrum, Kanban

may not create Test Scenarios.

– Test Scenario may not be created for a new bug fix or

regression testing. In such cases, Test Scenarios must be

already heavily documented in the previous test cycles. This

is especially true for Maintenance projects.

Page 17: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

17

Test Scenario

As a tester, you can follow these five steps to create Test Scenarios

– Step 1: Read the Requirement Documents like BRS, SRS, FRS, of

the System Under Test (SUT). You could also refer uses cases,

books, manual, etc. of the application to be tested.

– Step 2: For each requirement, figure out possible users actions

and objectives. Determine the technical aspects of the

requirement. Ascertain possible scenarios of system abuse and

evaluate users with hacker's mindset.

– Step 3: After reading the Requirements Document and doing your

due Analysis, list out different test scenarios that verify each

feature of the software.

– Step 4: Once you have listed all possible Test Scenarios, a

Traceability Matrix is created to verify that each & every

requirement has a corresponding Test Scenario

– Step 5: The scenarios created are reviewed by your supervisor.

Later, they are also reviewed by other Stakeholders in the project.

Page 18: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

18

So, what’s the difference ?

Test Case is ‘How to be tested’ and Test Scenario is

‘What to be tested’

– A test case is a set of conditions or variables under which a

tester will determine whether an application, software

system or one of its features is working as it was originally

established for it to do.

– Scenario testing is to make sure that end to end

functionality of application under test is working as

expected. Also check if the all business flows are working

as expected. In scenario testing tester need to put his/her

foot in the end users shoes to check and perform the action

as how they are using application under test.

Page 19: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

19

So, what’s the difference ?

Simple Example (1)

Page 20: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

20

So, what’s the difference ?

Simple Example (1)

Page 21: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

21

So, what’s the difference ?

Simple Example (2)

Test Scenario

Page 22: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

22

So, what’s the difference ?

Simple Example (2)

Test Case

Page 23: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

23

Software Testing KeywordsValidation & Verification

Page 24: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

24

Validation & Verification

Still remember the first Testing Level slide ?

What’s the difference between validation and

verification ?

Page 25: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

Validation & Verification

Validation and Verification

– In other words, software verification is ensuring that the product

has been built according to the requirements and design

specifications, while software validation ensures that the product

meets the user's needs, and that the specifications were correct in

the first place. Software verification ensures that "you built it right".

Software validation ensures that "you built the right thing". Software

validation confirms that the product, as provided, will fulfill its

intended use.

Verification is testing that your product meets the specifications /

requirements you have written. “Did I build what I said I would?”.

Validation tests how well you addressed the business needs that

caused you to write those requirements. It is also sometimes called

acceptance or business testing. “Did I build what I need?”

Page 26: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

26

Validation & Verification

Simple Example

– Consider following specification

– A clickable button with name Submet

– Verification would be check the design doc and correcting

the spelling mistake.

– Otherwise development team will create button like

Page 27: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

27

Validation & Verification

Simple Example

– So new specification is

– A clickable button with name Submit

– Once the code is ready, Validation is done. A Validation test

found

– Owing to Validation testing, the development team will make

the submit button clickable

Page 28: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

28

Software Testing KeywordsSoftware Testing Fundamental

Page 29: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

29

Software Testing Fundamental

Page 30: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

30

When to Start and Stop Testing ?

When to start

– An early start to testing reduces the cost and time to rework

and produce error-free software that is delivered to the

client, read the first slide (why we do test ?)

– However in Software Development Life Cycle (SDLC),

testing can be started from the Requirements Gathering

phase and continued till the deployment of the software.

– It also depends on the development model that is being

used.

For example, in the Waterfall model, formal testing is

conducted in the testing phase; but in the incremental model,

testing is performed at the end of every increment/iteration and

the whole application is tested at the end.

Page 31: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

31

When to Start and Stop Testing ?

When to stop

– It is difficult to determine when to stop testing, as testing is a

never-ending process and no one can claim that a software

is 100% tested. The following aspects are to be considered

for stopping the testing process:

Testing Deadlines

Completion of test case execution

Completion of functional and code coverage to a certain point

Bug rate falls below a certain level and no high-priority bugs

are identified

Management decision

Page 32: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

32

Software Testing Fundamental

Page 33: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

33

Who did the Software Testing ?

Who did the testing ?

– It depends on the process and the associated stakeholders

of the project(s).

– For example in the IT industry, large companies have a

team with responsibilities to evaluate the developed

software in context of the given requirements.

– In most cases, the following professionals are involved in

testing a system within their respective capacities:

Software Tester

Software Developer

Project Lead/Manager

End User

Page 34: Software Testing Fundamental Dictionary · Testing Types Manual Testing – Manual testing includes testing a software manually, i.e., without using any automated tool or any script.

34

Thank You