Software Quality Assurance

Slides:



Advertisements
Similar presentations
 What is Software Testing  Terminologies used in Software testing  Types of Testing  What is Manual Testing  Types of Manual Testing  Process that.
Advertisements

Software Quality Assurance QA Engineering, Testing, Bug Tracking, Test Automation Software University Technical Trainers SoftUni Team.
Project Tracking Tools Trello, Asana, Basecamp, GitHub Issue Tracker, TRAC SoftUni Team Technical Trainers Software University
Software Testing Lifecycle Exit Criteria Evaluation, Continuous Integration Ivan Yonkov Technical Trainer Software University.
Svetlin Nakov Technical Trainer Software University
Project Tracking Tools Trello, Asana, Basecamp, GitHub Issue Tracker, TRAC Angel Georgiev Part-time Trainer Software University
Test-Driven Development Learn the "Test First" Approach to Coding SoftUni Team Technical Trainers Software University
Jekyll Static Site Generator Template-Based Site Generation Svetlin Nakov Technical Trainer Software University
Web Fundamentals (HTML and CSS) Course Introduction Svetlin Nakov Technical Trainer Software University
Forms Overview, Query string, Submitting arrays, PHP & HTML, Input types, Redirecting the user Mario Peshev Technical Trainer Software.
High-Quality Code: Course Introduction Course Introduction SoftUni Team Technical Trainers Software University
Mocking with Moq Mocking tools for easier unit testing Svetlin Nakov Technical Trainer Software University
Test-Driven Development Learn the "Test First" Approach to Coding Svetlin Nakov Technical Trainer Software University
High-Quality Code: Course Introduction Course Introduction SoftUni Team Technical Trainers Software University
XML Processing SoftUni Team Database Applications Technical Trainers
Version Control Systems
Static Members and Namespaces
Introduction to Entity framework
Databases basics Course Introduction SoftUni Team Databases basics
Interface Segregation / Dependency Inversion
Data Structures Course Overview SoftUni Team Data Structures
Web API - Introduction AJAX, Spring Data REST SoftUni Team Web API
Introduction to MVC SoftUni Team Introduction to MVC
Deploying Web Application
PHP MVC Frameworks Course Introduction SoftUni Team Technical Trainers
PHP Fundamentals Course Introduction SoftUni Team Technical Trainers
Reflection SoftUni Team Technical Trainers Java OOP Advanced
C# Database Fundamentals with Microsoft SQL Server
JavaScript Applications
ASP.NET Integration Testing
ASP.NET Unit Testing Unit Testing Web API SoftUni Team ASP.NET
Classes, Properties, Constructors, Objects, Namespaces
Mocking tools for easier unit testing
State Management Cookies, Sessions SoftUni Team State Management
EF Code First (Advanced)
PHP MVC Frameworks MVC Fundamentals SoftUni Team Technical Trainers
C# Databases Advanced with Microsoft SQL Server
Entity Framework: Code First
Parsing XML XDocument and LINQ
Repeating Code Multiple Times
Databases advanced Course Introduction SoftUni Team Databases advanced
Install and configure theme
Debugging and Troubleshooting Code
Front-End Framework for Responsive Web Sites
Entity Framework: Relations
Caching Data in ASP.NET MVC
Functional Programming
The Right Way Control Flow
MVC Architecture, Symfony Framework for PHP Web Apps
AJAX and jQuery AJAX AJAX Concepts, XMLHttpRequest, jQuery AJAX: $.ajax(), $.get(), $.post() jQuery AJAX XMLHttpRequest SoftUni Team Technical Trainers.
C# Advanced Course Introduction SoftUni Team C# Technical Trainers
Databases Advanced Course Introduction SoftUni Team Databases Advanced
Data Definition and Data Types
Multidimensional Arrays, Sets, Dictionaries
Extending functionality using Collections
ASP.NET REST Services SoftUni Team ASP.NET REST Services
Making big SPA applications
Functional Programming
ASP.NET Razor Engine SoftUni Team ASP.NET MVC Introduction
C# Advanced Course Introduction SoftUni Team C# Technical Trainers
Exporting and Importing Data
CSS Transitions and Animations
Train the Trainers Course
Version Control Systems
JavaScript Frameworks & AngularJS
Polymorphism, Interfaces, Abstract Classes
/^Hel{2}o\s*World\n$/
Lean .NET stack for building modern web apps
CSS Transitions and Animations
HTTP, RESTful Web Services, HTTP and REST Tools: Postman, Fiddler
Presentation transcript:

Software Quality Assurance QA Engineering, Testing, Bug Tracking, Test Automation Svetlin Nakov Technical Trainer www.nakov.com Software University http://softuni.bg

Table of Contents Software Quality Assurance – Overview Software Testing, Test Scenarios, Test Cases Defect Reporting and Tracking Defect Lifecycle Defect Tracking Systems Test Automation Web Testing, Service Testing, Load Testing, UI Testing

Software Quality Assurance * 8/30/201807/16/96 Software Quality Assurance (c) 2007 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*

Software Quality Assurance What is software quality assurance (SQA)? Software quality assurance aims to assure that the software is bug free (behaves as expected) Defects are reported and tracked through a bug tracking system Performed by the Quality Assurance Engineers (QA engineers) Most of the QA work is software testing Manual testing (click and check the results) Automated testing (QA automation)

The Software QA Process QA planning / test planning Establish test strategy and test plan What to test, how to test it, when, test scenarios Test development Test procedures, test scenarios, test cases, test scripts Test execution and reporting Defect tracking

Software Testing Testing checks whether the developed software conforms to the requirements Testing aims to find defects (bugs) Manual and automated testing Kinds of tests Black-box and white-box tests Unit tests, integration tests, system tests, acceptance tests Stress tests, load tests, regression tests

Test Plan, Test Scenarios and Test Cases The test plan describes how tests will be performed List of QA and test activities to be performed to ensure meeting the quality requirements Features to be tested (scenarios), test cases, testing approach, test schedule, acceptance criteria Test scenarios and test cases Test scenarios – stories to be tested Test cases – tests of single function Each test scenario is covered by several test cases

Test Scenarios and Test Cases – Example Sample test scenario: Test the user registration form Test cases for this scenario: Non-existing username  success Duplicated username  error Empty username or password  error Too long username  error Invalid characters in username / password  error User Registration ••••••••••• Password: Register Maria Steward Full Name: maria Username:

Defect Reporting and Tracking, Issue Tracking Tools, Defect Lifecycle Defect Tracking Defect Reporting and Tracking, Issue Tracking Tools, Defect Lifecycle

Defect Tracking QA engineers / testers aim to find defects (bugs) Once a defect is found, it is recorded and tracked in the defect tracking system (issue tracker) until resolved Defect lifecycle: A new defect is recorded in the tracker (status "new") A developer takes a defect to work on (status "assigned") A developers fixes a defect (changes its status to "fixed") The QA verifies a defect is fixed and closes it (status "closed")

Defect Lifecycle Defect lifecycle could be complex Many ways to resolve a defect: Fixed Duplicate Won't fix Invalid Etc.

Defects – Description Each defect (bug / issue) holds the following information Title: Cannot register user "maria" Description: Registering with user "maria" and password "m1RI@" fails with message "Database connect failed…" Screenshots: Screenshots of the problem and file attachments Status: Assigned (assigned to a certain developer for investigation) Owner: Peter (the developer who currently works on this issue) Comments: People can discuss and comment the issue Priority: Critical, High, Average, Low Example: http://trac.edgewall.org/ticket/2463

Defect Tracking Systems / Issue Trackers Many issue tracking systems are available TRAC – http://trac.edgewall.org Bugzilla – http://www.bugzilla.org JIRA – https://www.atlassian.com/software/jira GitHub Issue Tracker – https://github.com/issues

Test Automation Web Testing, UI Testing, Service Testing and Load Testing Automation Tools

Test Automation Test automation means: Record test cases as scripts and execute them continuously Makes the manual testing process repeatable Needs time to record and write the tests Saves time when a test is run many times over the years Test automation: developers or QA job? Unit tests – test a single method / class, written by developers Integration tests – test more complex scenarios, written by QAs

Selenium – Web Testing Automation Web testing can be automated by many tools Selenium, CasperJS, many paid tools Selenium is a leading open-source browser automation Selenium IDE – web test recording software Selenium WebDriver – executes browser automation scripts Provides C#, Java and other APIs Selenium is open-source software: http://seleniumhq.org

Selenium IDE + Web Driver Live Demo

Sikuli – UI Testing Automation Sikuli automates testing of anything you see on the screen It can test desktop, Web and other applications written in any language (e.g. C#, Java, Python, PHP, …) Sikuli works by image matching Finds an image (e.g. the username field), clicks on it, types text, submits buttons, expect some text / image Provides Python, Ruby and Java API Sikuli is open-source software: http://www.sikuli.org

SoapUI – Web Service Testing Automation SoapUI is open-source tool for Web service test automation Tests REST services (HTTP, REST, JSON) Tests SOAP services (SOAP, WSDL, XML) http://www.soapui.org Writing SoapUI tests Define a service call: endpoint, parameters, headers, data, etc. Execute the service and get the results Check the results and compare with expected

JMeter – Performance Testing JMeter is Java-based open source tool for Load testing functional behavior and measure performance Open-source software: http://jmeter.apache.org How it works? Record test scenario (e.g. login, go to dashboard, create a report, post a new issue, logout) Replay the test scenario with 100 concurrent connections Measure the performance (average server response time)

Software Quality Assurance https://softuni.bg/courses/high-quality-code/ © Software University Foundation – http://softuni.org This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike license.

License This course (slides, examples, demos, videos, homework, etc.) is licensed under the "Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International" license Attribution: this work may contain portions from "High Quality Code" course by Telerik Academy under CC-BY-NC-SA license © Software University Foundation – http://softuni.org This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike license.

Free Trainings @ Software University Software University Foundation – softuni.org Software University – High-Quality Education, Profession and Job for Software Developers softuni.bg Software University @ Facebook facebook.com/SoftwareUniversity Software University @ YouTube youtube.com/SoftwareUniversity Software University Forums – forum.softuni.bg © Software University Foundation – http://softuni.org This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike license.