Presentation is loading. Please wait.

Presentation is loading. Please wait.

MAY 19 th 2016 Jovan Poljački

Similar presentations


Presentation on theme: "MAY 19 th 2016 Jovan Poljački"— Presentation transcript:

1 MAY 19 th 2016 Jovan Poljački jovan.poljacki@gmail.com jovan.poljacki@gmail.com

2 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?

3 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

4 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)

5 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?

6 Software Quality Models Models of quality define basic quality characteristics with appropriate quality attributes that can be evaluated and measured ISO/IEC 25010 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)

7 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))

8 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

9 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

10 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

11 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)

12 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)

13 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)

14 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

15 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))

16 (Brian Marick, 2003)

17 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?

18 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?

19 Where to get more Info? International Software Qualifications Board (ISTQB) http://www.istqb.org/ “Software testing”, Brian Hambling (2010) Martin Fowler’s blog http://martinfowler.com/tags/testing.html “Agile Testing: A Practical Guide for Testers and Agile Teams” (2009) “xUnit Test Patterns: Refactoring Test Code” (2007) http://xunitpatterns.com/ Black Box Software Testing http://testingeducation.org/BBST/

20 Please Rate Me

21 geekstone.org/conf2015 Thank you geekstone.org


Download ppt "MAY 19 th 2016 Jovan Poljački"

Similar presentations


Ads by Google