Neringa Sipavičienė IFM-2/4

Slides:



Advertisements
Similar presentations
More and Better Test Ideas Rikard Edgren TIBCO Spotfire EuroSTAR share one-liner test ideas.
Advertisements

Database Planning, Design, and Administration
Chapter 2 – Software Processes
System Analysis (Part 1)
Chapter 17 I.Omaima Al-Matrafi
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
1 Pertemuan 14 Perencanaan, Desain dan Administrasi Databases Matakuliah: >/ > Tahun: > Versi: >
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Maintenance = Software Evolution Any changes after the client has accepted the product is considered maintenance. n Any Changes? n What might these be?
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Standardization. Introduction A standard is a document. It is a set of rules that control how people should develop and manage materials, products, services,
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Quality of Information systems. Quality Quality is the degree on which a product satifies the requirements Quality management requires that : that requirements.
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
CSE 303 – Software Design and Architecture
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem Darwish.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Software Project Management Lecture # 10. Outline Quality Management (chapter 26)  What is quality?  Meaning of Quality in Various Context  Some quality.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Database Planning, Design, and Administration Transparencies
Database System Development Lifecycle 1.  Main components of the Infn System  What is Database System Development Life Cycle (DSDLC)  Phases of the.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
The Traditional System Development Life Cycle There are a number of important steps in the creation of a system, regardless of which approach you use.
What is Software Engineering? The discipline of designing, creating, and maintaining software by applying technologies and practices from computer science,
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
Herriman High Computer Programming 1A Software Development Cycle Things to Know.
Object-Oriented Software Engineering Chapter 1 Software and Software Engineering.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Chapter 1: Software and Software Engineering The Nature of Software... Software is intangible  Hard to understand development effort Software.
A Method for Improving Code Reuse System Prasanthi.S.
Mantas Radzevičius ifm-2/2
Programų testuojamumas
Information Systems Development
Modern Systems Analysis and Design Third Edition
Chapter 10 Software Quality Assurance& Test Plan Software Testing
Chapter 18 Maintaining Information Systems
Object-oriented software testing
Software Testing An Introduction.
The Systems Engineering Context
SYSTEM ANALYSIS AND DESIGN
Unified Process Source & Courtesy: Jing Zou.
Software Testing and Quality Assurance
DEFECT PREDICTION : USING MACHINE LEARNING
LEVEL OF TESTING J.ALFRED DANIEL, AP/CSE.
CHAPTER 2 Testing Throughout the Software Life Cycle
Software Project Planning &
Requirements and the Software Lifecycle
Script-less Automation: An Approach to Shift-Left.
Modern Systems Analysis and Design Third Edition
Software life cycle models
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Modern Systems Analysis and Design Third Edition
Capability Maturity Model
Software Test Automation Louisiana Tech University
Chapter 8 Software Evolution.
Chapter # 8 Quality Management Standards
Chapter 1: Software and Software Engineering
Capability Maturity Model
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Software Verification and Validation
Chapter 1: Software and Software Engineering
Presentation transcript:

Neringa Sipavičienė IFM-2/4 Software testability Neringa Sipavičienė IFM-2/4 The time you save in testing is the time you gain for testing.

What is testability? Testability - The capability of the software product to enable modified software to be tested. [ISO 9126]. Software testability is the degree to which a software artifact (i.e. a software system, software module, requirements or design document) supports testing in a given test context. SOFTWARE TESTABILITY is an external attribute of the software that evaluates the complexity and the effort required for software testing. Software testability

Abstract A software component's testability or application's testability is regarded as a measure of the difficulty incurred when testing a component or application. If testing is considered as not being difficult, then the testability of the software is considered as being high. If testing is considered as being a difficult process to perform, testability is considered as being lower. The reason for seeking testability ratings is to determine early in the software development life cycle how many testing resources will be needed in order to complete the testing process. Software testability

Software Testability Software testability is a key aspect to allow the detection of difficult to uncover defects in software. Software testability supports the testing process and facilitates the creation of better quality software. Testing and testability are complimentary: testing can reveal faults (testability cannot) but testability can suggest locations where faults can hide from testing (something testing cannot do alone). Software testability must be designed into the software as it is developed. Therefore, it is an attribute of the software that requires close development cooperation with test. Software testability

Heuristics of software testability Controllability - The better we can control it, the more the testing can be automated and optimized. Visibility - What you see is what can be tested. Availability - To test it, we have to get at it. Simplicity - The simpler it is, the less there is to test. Stability - The fewer the changes, the fewer the disruptions to testing. Information - The more information we have, the smarter we will test. James Bach Software testability

Testability of Requirements Requirements need to fulfill the following criteria in order to be testable: Consistent; Complete; Unambiguous; Quantitative (a requirement like "fast response time" can not be verified); Verifiable in practice (a test is feasible not only in theory but also in practice with limited resources). Software testability

Testability myths Myth: Testability is expensive. Testability doesn't have to be expensive. A small investment throughout the project phase can give us a major improvement in fault detection. Myth: Testability can be a plug-in. Testability is a way of ensuring quality. Just like quality cannot be added in a product as a separate ingredient, testability follows the same trend. It has to be gradually built into the product over time. Myth: Low budget applications cannot afford testability. Low budget applications will normally have large volumes of sales with large number of user licenses. This will increase the cost of maintenance if the application is not maintainable. Thus a modest investment right at the start can save a lot of hassles and maintenance costs after the sale and implementation of the software. Software testability

Questions What is testability? Why is software testability important? Name 3 heuristics of software testability? What criteria requirements need to fullfil in order to be testable? What are testability myths? Software testability

Thank you! Software testability

references ISTQB Glossary http://www.test-soft.com/cms/index.php?option=com_content&view=article&id=56:the-benefit- of-software-testability&catid=31:general http://onlinelibrary.wiley.com/doi/10.1002/0471028959.sof357/abstract http://www.stickyminds.com/article/testing-testability?page=0%2c0 Software testability