MAY 19 th 2016 Jovan Poljački

Slides:



Advertisements
Similar presentations
Software Testing. Quality is Hard to Pin Down Concise, clear definition is elusive Not easily quantifiable Many things to many people You'll know it when.
Advertisements

Test process essentials Riitta Viitamäki,
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
System Integration Verification and Validation
Testing and Quality Assurance
Alternate Software Development Methodologies
Basic Concepts Snejina Lazarova Senior QA Engineer, Team Lead CRMTeam Dimo Mitev Senior QA Engineer, Team Lead SystemIntegrationTeam Telerik QA Academy.
Verification and Validation: A Quick Introduction 1-2 Lectures.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
SE 555 – Software Requirements & Specifications Introduction
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Project Documentation and its use in Testing JTALKS.
Software Testing Prasad G.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
Introduction to Software Testing
Types and Techniques of Software Testing
Software Testing & Strategies
Test Design Techniques
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Lecture 6 Software Testing and jUnit CS140 Dick Steflik.
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Chapter 1: Introduction to Software Testing Software Testing
Agile Web Development C. Daniel Chase University of Colorado at Boulder.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
Planning and Tracking Software Quality.  What Is Software Quality?  Causes of Software Defects  What is Quality Assurance?  Improving the Software.
CPIS 357 Software Quality & Testing
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
Basic of Software Testing Presented by The Smartpath Information System An ISO 9001:2008 Certified Organization
Software testing Main issues: There are a great many testing techniques Often, only the final code is tested.
This chapter is extracted from Sommerville’s slides. Textbook chapter
About Quality Pre paired By: Muhammad Azhar. Scope What is Quality Quality Attributes Conclusion on software Quality Quality Concepts Quality Costs.
1 SOFTWARE TESTING Presented By Abhilash.S  What is Software Testing?  Fundamentals of software Testing Error/Mistake? Defect/Bug/Fault? Failure? 2.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
LOGO TESTING Team 8: 1.Nguyễn Hoàng Khánh 2.Dương Quốc Việt 3.Trang Thế Vinh.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
Software Testing Mehwish Shafiq. Testing Testing is carried out to validate and verify the piece developed in order to give user a confidence to use reliable.
Putting Experience to the test
Software Quality Assurance and Testing Fazal Rehman Shamil.
This chapter is extracted from Sommerville’s slides. Textbook chapter 22 1 Chapter 8 Validation and Verification 1.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Chapter 3- BASIC CONCEPTS OF TESTING Why software can never be perfect The terms commonly used by software testers.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Week # 4 Quality Assurance Software Quality Engineering 1.
Introduction to Software Testing Maili Markvardt.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
Software Quality Assurance Chip Ene, February 14, 2015.
Software Testing By Souvik Roy. What is Software Testing? Executing software in a simulated or real environment, using inputs selected somehow.
CS223: Software Engineering Lecture 25: Software Testing.
Syndicate Members: 1. GC Muhammad Uzair 2. GC Umer Naveed Malik.
 System Requirement Specification and System Planning.
ISQB Software Testing Section Meeting 10 Dec 2012.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Module A Fundamentals of Testing
Software Engineering (CSI 321)
Software Quality Assurance
Software Verification and Validation
Fundamentals of Software Testing
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
Johanna Rothman Create Technical Excellence Chapter 9
Introduction to Software Testing
Baisc Of Software Testing
Welcome to Corporate Training -1
Presentation transcript:

MAY 19 th 2016 Jovan Poljački

How it looks like? What is Software Testing? Why it is important? What is Software Quality? Why should I care? When and where it starts? Topics What to look for?

Software Development 1.Creating software products or providing software services 2.Delivering them to customers 3.Striving to stay in the business and make a progress

Software Quality From customers point of view, more needs and expectations product meets, better quality it has One of many formal definitions: “Capability of a software product to satisfy stated and implied needs when used under specified conditions” (ISO/IEC 25000:2014 Systems and software Engineering - Systems and software product Quality Requirements and Evaluation (SQuaRE) - Guide to SQuaRE, 4.51) “Quality is value to some person (who matters).” (Gerald Weinberg & James Bach)

Software Quality Management Quality Management enables us to achieve quality and make it consistent Set of activities that organization implement, and includes: Quality Assurance – How to accomplish quality? Quality Control – What level of quality has been accomplished?

Software Quality Models Models of quality define basic quality characteristics with appropriate quality attributes that can be evaluated and measured ISO/IEC product quality model: functional suitability, reliability, performance efficiency, usability, security, compatibility, maintainability and portability Quality characteristics can be divided into two groups: External – Evaluated during software execution (e.g. functional suitability) Internal – Evaluated without software execution (e.g. maintainability)

Price of the Quality What if we don’t want to pay for quality up front? Technical Debt (Ward Cunningham, 1992) A measure of quality of work “Quality is free. It's not a gift, but it is free.” (Philip B. Crosby, “Quality is free” (1979)) “Quality is free, but only to those who are willing to pay heavily for it.” (Tom DeMarco, “Peopleware: Productive Projects and Teams” (1987))

Quality in Project Management Product quality characteristics don’t take into account additional project delivery constraints: resources and schedule We offer three kinds of service - fast, good and cheap. You can pick any two Great product is delivered on time, within budget and with acceptable quality

Software Defects Quality can’t be perfect – there will be defects! Software failures can lead to many problems, including loss of money, time, reputation, and could harm environment as well as people (injury or death) People Human beings are prone to make errors Errors Cause defects Defects May lead to failure Failure System stops delivering its service

Software Testing Testing is a set of activities conducted to evaluate software development outputs (software itself and all accompanying artifacts that are used to produce software) Testing may be performed in order to: Prevent defects Find defects Confirm that software works according to the requirements Assess software quality Meet contractual agreements, legal requirements or industry-specific standards Learn about the system

Basic Testing Principles 1.Testing shows presence of defects 2.Exhaustive testing is impossible 3.Test early 4.Test often 5.Defect clustering 6.Pesticide paradox 7.Testing is context dependent 8.Absence-of-errors fallacy "Program testing can be a very effective way to show the presence of bugs, but it is hopelessly inadequate for showing their absence.“ (Edsger Dijkstra, “The Humble Programmer” (1972) - Turing Award Lecture)

Testing Techniques and Methods Testing techniques: Dynamic – testing that requires execution of the software Static – testing without software execution Reviews – informal, walkthrough, technical review and inspection Static Analyses – tool based, automated analysis of software Testing methods: Black-box – testing based on specifications (specification-based) without any insight into the internal software design White-box – testing based on knowledge of internal structure and design of a software (structure-based)

Testing Levels Based on the main dynamic testing targets there are: Unit testing – tests the smallest software parts in isolation Integration testing – tests the interactions between components System testing – tests a behavior of complete system to verify that it meets its requirements Acceptance testing – tests a system to verify that it will function according to users expectations and business needs (acceptance criteria)

Testing Types Based on the main dynamic testing goals there are: Functional testing – tests specific features of a software What software is doing? Non-functional testing – tests other specific external quality characteristics of a software How software works? Structural testing – tests software architecture and structure Code Coverage Change-related testing – tests software after a change is made on it Confirmation testing – testing done after defects are fixed Regression testing – testing done to confirm that fix did not broke any other part of a software

Agile Testing The whole-team approach – everyone is working together Cross-functional team responsible for quality Coding and testing are integrated = development Test-first development (TDD, BDD, ATDD) Prevent defects Up-to-date design/requirements specification in executable form Regression suite (change without a fear) Use of Continuous Integration No feature is considered done until it has been integrated and tested with the system Test Early, Test Often, Test Automatically (Andrew Hunt and David Thomas, “The Pragmatic Programmer” (1999))

(Brian Marick, 2003)

Psychology of Testing Common goal Role Characteristics Conflict Deliver a system that meets requirements and customers' expectations and needs DeveloperTester “Constructive” attitude Tests “what I did” “Destructive” attitude Tests according to requirements and experience Communication issues?

Summary Software Quality Software Quality Management Software Product Quality Models & Characteristics Price & Compromise Software Testing Defects Taxonomy Basic Principles Techniques, Methods, Levels and Types Testing in Agile world If it's worth building, it's worth testing. If it's not worth testing, why are you wasting your time working on it?

Where to get more Info? International Software Qualifications Board (ISTQB) “Software testing”, Brian Hambling (2010) Martin Fowler’s blog “Agile Testing: A Practical Guide for Testers and Agile Teams” (2009) “xUnit Test Patterns: Refactoring Test Code” (2007) Black Box Software Testing

Please Rate Me

geekstone.org/conf2015 Thank you geekstone.org