“Software Quality Assurance and Testing”

Industry norms & practices

Asif Raihan

asifraihan21@gmail.com

@asifraihan21

Test Lead, Prochito ITS

Common Practices

Test Early Test Often

Automated Testing

Ask Questions

Test Management

QA Process

Eye on the Bigger Picture

Importance of Quality

Technical Mindset

Continuous Testing

and more.......

Test Reporting

Eye on the Bigger Picture

Get lost in the weeds of test cases and forget about the actual end user, however this is a fatal mistake.

Putting user interest first

Importance of Quality

Be aware of the importance of the quality of the software application we are going to develop as per the business perspectives.

An initial step to prevent the future programming errors or bugs.

Ask Questions

You need to have a complete understanding of a piece of software including who its users are, how they will use the software.

what problem the software should solve, how it should solve that problem, how it should look and feel.

Asking questions to make sure you know everything you need to know.

Technical Mindset

The very best testers follow up collaborating with developers by adopting a more technical mindset.

Run the tests required to catch deeper level issues and fulfill modern testing requirements faster.

Taking on a more technical mindset allows you to work even closer with developers.

QA Process

Software quality assurance is a part of the agile development process and not just a step that needs to be utilized at only a certain point.

Software testing at each iteration will help the QA team to analyze the success and failure of the code.

The input and output of our QA process need to be well planned, defined and documented as well to avoid the failure of the quality of the end product.

Test Management & Test Reporting

Practicing engaged test management and reporting is another trait that separates the all-star testers from the pack.

Bridge between developers and testers.

Provides a real scenario of overall progress of the project.

Test Early Test Often

Requirements itself consists of various errors or misconceptions of the applications compared to the real world scenario.

It becomes highly important for the QA teams to ensure the development efforts are not dumped.

Will help the QA teams to find the bugs early and often to confirm continuous delivery.

Perform testing continuously on every minor release in order to check whether each build is successful.

Test Pyramid

This concept was developed by Mike Cohn.

Testing should have many more low-level unit tests than high level end-to-end tests running through a GUI.

Test Pyramid

Automated Testing

It can really be considered as a wise recommendation to deploy automated testing in the whole of quality assurance process.

Testing software applications under specific manual test scripts will make it limited to a great extent.

QA team can define the proportion of using manual testing and automated testing as per the complexities and real-world use of the application.

What We Do

Employer's Expectation

Results in

Manual Testers Wanted!!!

Write industry standard defect reports.

Defect classification and issue severity rating.

Black box testing.

Integration, system, and regression testing.

Use case analysis and test case writing.

Creation and executions of test plans.

Agile methodologies e.g. SCRUM.

Defect management tools such as JIRA, Git Lab.

Test documentation.

Exploratory testing.

Automation SQA Engineer Wanted!!!

Real world experience with testing tools, scripts and various standards.

Good skills on Business Analysis, Automated Code Design is a plus and preferable.

Good understanding in Black box testing and SDLC.

working in an Agile/Scrum development process.

Willingness to learn and work with new technologies.

Should have strong understanding in Chrome Dev tool & Firefox Dev tool.

Very Good communication and time management skills.

Experience in Load testing.

Awkward Situations!!!

What will you do if you get in a fight with a developer?

Designer's Statement: The color isn't showing perfectly in your monitor. Throw it away.

Boss is always right.

Bug Reporting

What is a bug

What is a bug

A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected result or to behave in unintended ways.

What is a Bug report?

A bug report should explain how exactly the product is broken.

This is what we have, this is what we should have instead, so fix it.

Objectives of a bug report

A bug report should explain how exactly the product is broken.

Contains the information needed to reproduce and fix problems.

Report should be sent to the person in charge.

Efficient form of communication for both bug reporter and bug receiver.

Our Weekend

Task Management: Kanban Board

Bug Reporting

Bug reporting system is an application that keeps track of reported software bugs.

Bug reporting software allows you to report, document, store, manage, assign, close & archive bug reports.

Bug reporting tool

OTRS

Git Lab

Trac

Fossil

Bugzilla

Web Issues

Lean Testing

Redmine

Bug Issue

QA Automation

What  it is?

The use of software and tools to perform the testing.

Why  we use??

In order to test 100's of high priority TC within a few hours we need test automation.

Manual tests are slow, expensive, for fast deployment, test automation is a must have.

Benefits of Testing Automation

Cheaper in a long run.

Repeatable.

Reliable.

Can utilize time, space and cost better, e.g.

Run test automation during after office hours.

Different types of testing

smoke

usability

unit

functional

UI

integration

regression

accessibility

load

acceptance

Ad-hoc

Testing Tools

SoapUI

REST-Assured

Cucumber

Jmeter

Citrus Framework

Selenium

Silk

HP UFT

Watir

IBM Rational

and more.......

Katalon Studio

Selenium

Selenium is a browser based open source software that is used for automation testing.

It supports rapid development of test automation for web base applications.

Works anywhere JavaScript is supported.

Hooks for many languages - Java, PHP, Ruby, Python.

Advantage of using Selenium

Open Source free of cost for companies.

Supports native testing for all major browser.

Customize according to the requirements.

Only tool support test cases language of choices-

Java, C#, Python, Ruby, JavaScript.

Web 2.0 companies such as Facebook, Twitter, LinkedIn uses Selenium.

Selenium IDE

Selenium IDE used for Selenium tests.

Capture interaction with system and replay it

It is implemented as a Firefox extension, and allows you to record, edit, and debug tests.

Example

Type amujamu in the search box

Subimt

Works Fine :)

Selenium IDE flaws

Type amujamu in the search box

Subimt

Login not found :)

Click Login

Submit

Selenium RC

Selenium Remote Control (RC) :

Selenium RC is a test tool that allows you to write automated web application UI tests in any programming language against HTTP website using any mainstream JavaScript-enabled browser.

Selenium WebDriver

Selenium 1.0 + WebDriver = Selenium 2.0

Biggest change in Selenium recently has been inclusion of WebDriver API.

Selenium Grid

To run your tests against multiple browsers, multiple versions of browser, and browsers running on different operating systems.

To reduce the time it takes for the test suite to complete a test pass.

Selenium Suite

Let's meet with the real world of Automation


public static void main(String[] args) throws Exception {
		WebDriver driver;
		System.setProperty("webdriver.gecko.driver", "G:\\geckodriver.exe");
		driver = new FirefoxDriver();
		String baseURL = "http://www.google.com";
		driver.get(baseURL);

		driver.findElement(By.id("lst-ib")).sendKeys("amujamu");
		driver.findElement(By.name("btnK")).click();
		driver.findElement(By.xpath("//*[@id='rso']/div[1]/div/div/div/div/h3/a")).click();

                driver.findElement(By.linkText("Login")).click();
		driver.findElement(By.name("_username"));
		driver.findElement(By.name("_password"));
		driver.findElement(By.name("_submit")).click();
        
        }
    }

Automation Script: Login System


public static void main(String[] args) throws Exception {
		WebDriver driver;
		System.setProperty("webdriver.gecko.driver", "G:\\geckodriver.exe");
		driver = new FirefoxDriver();
		String baseURL = "http://www.google.com";
		driver.get(baseURL);

		driver.findElement(By.id("lst-ib")).sendKeys("amujamu");
		driver.findElement(By.name("btnK")).click();
		driver.findElement(By.xpath("//*[@id='rso']/div[1]/div/div/div/div/h3/a")).click();

                driver.findElement(By.linkText("Login")).click();
		driver.findElement(By.name("_username")).senddKeys("Asif Raihan");
		driver.findElement(By.name("_password")).senddKeys("Asif Raihan");
		driver.findElement(By.name("_submit")).click();
        
        }
    }

Automation Script: Login System Cont.

Performance Testing

Load Impact

Load Runner

Load Storm

Web LOAD

Apache JMeter

Loadstorm

LoadUI NG Pro

Redmine

Begin the Journey...

“Software Quality Assurance and Testing”- Industry norms & practices

By Asif Raihan Ananta

“Software Quality Assurance and Testing”- Industry norms & practices

  • 66