“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