SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Quality assurance of non- functional requirements Mika Mäntylä TKK/SoberIT/SPRG.

Slides:



Advertisements
Similar presentations
Testing Workflow Purpose
Advertisements

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Alternate Software Development Methodologies
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
Software Testing and Quality Attributes Software Testing Module ( ) Dr. Samer Hanna.
1 Software Testing and Quality Assurance Lecture 33 – Software Quality Assurance.
Soft. Eng. II, Spr. 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Quality Reading: I. Sommerville, Chap: 24.
Ch2: Software: Its Nature and Qualities. 1 Introduction  Difference between a software and other engineering products.  Difference between software.
SE 555 Software Requirements & Specification Beyond Requirements Based on Weigers Chapter17.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
1 Software Testing and Quality Assurance Lecture 14 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
COMP8130 and 4130Adrian Marshall 8130 and 4130 Test Management Adrian Marshall.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Introduction to Software Testing
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Chapter 24 - Quality Management Lecture 1 1Chapter 24 Quality management.
Computer System Lifecycle Chapter 1. Introduction Computer System users, administrators, and designers are all interested in performance evaluation. Whether.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
FINAL DEMO Apollo Crew, group 3 T SW Development Project.
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Test Organization and Management
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
Architecture Business Cycle
Test Roles and Independence of Testing Telerik Software Academy Software Quality Assurance.
Instructor: Peter Clarke
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
1 Software Testing and Quality Assurance Lecture 33 – Software Quality Assurance.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Software Project Management With Usage of Metrics Candaş BOZKURT - Tekin MENTEŞ Delta Aerospace May 21, 2004.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Lecture 7: Requirements Engineering
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.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
1 Chapter 3 1.Quality Management, 2.Software Cost Estimation 3.Process Improvement.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Business Analysis. Business Analysis Concepts Enterprise Analysis ► Identify business opportunities ► Understand the business strategy ► Identify Business.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CSE 303 – Software Design and Architecture
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
SWE 513: Software Engineering
Software Engineering Lecture 8: Quality Assurance.
CS223: Software Engineering Lecture 21: Unit Testing Metric.
Introduction to Software Testing Maili Markvardt.
Design Evaluation Overview Introduction Model for Interface Design Evaluation Types of Evaluation –Conceptual Design –Usability –Learning Outcome.
 System Requirement Specification and System Planning.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Test Roles and Independence of Testing
John D. McGregor Session 9 Testing Vocabulary
SEVERITY & PRIORITY RELATIONSHIP
Chapter 18 Maintaining Information Systems
CSE 403 Software Engineering
Introduction to Software Testing
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Chapter 8 Software Evolution.
Think about your view of QA
Presentation transcript:

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Quality assurance of non- functional requirements Mika Mäntylä TKK/SoberIT/SPRG T Software engineering seminar

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 2 Outline  Introduction  QA of performance and usability (short)  QA of evolvability (long)  How are qualities effected by  code review,  pair-programming  exploratory testing  Practical approach

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 3 QA of … Reliability Interoperability Performance Usability Scalability Security Availability Maintainability Modifiability Testability Safety Survivability Confidentiality Portability Dependability Timeliness Integrity Fault-tolerance

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 4 … with TDD Module Testing Load testing Exploratory testing Bounce checker Test case based testing Code review Load tester Pair- programming GUI robot Unit testing Functional testing Acceptance testing External beta- testers Usability testing Static analysis Iteration Demo Structural testing

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 5 TDD Module Testing Load testing Exploratory testing Test case based testing Code review Load tester Pair- programming Unit testing Functional testing Acceptance testing External beta- testers Usability testing Static analysis Iteration Demo Structural testing Reliability Interoperability Performance UsabilityScalability Security Availability Maintainability Modifiability TestabilitySafety Survivability Confidentiality Portability Dependability Timeliness Integrity Fault-tolerance QualitiesMethods

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 6 TDD Module Testing Load testing Exploratory testing Test case based testing Code review Load tester Pair- programming Unit testing Functional testing Acceptance testing External beta- testers Usability testing Static analysis Iteration Demo Structural testing Reliability Interoperability Performance UsabilityScalability Security Availability Maintainability Modifiability TestabilitySafety Survivability Confidentiality Portability Dependability Timeliness Integrity Fault-tolerance

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 7 TDD Module Testing Load testing Exploratory testing Test case based testing Code review Load tester Pair- programming Unit testing Functional testing Acceptance testing External beta- testers Usability testing Static analysis Iteration Demo Structural testing Reliability Interoperability Performance UsabilityScalability Security Availability Maintainability Modifiability TestabilitySafety Survivability Confidentiality Portability Dependability Timeliness Integrity Fault-tolerance

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 8 TDD Module Testing Load testing Exploratory testing Test case based testing Code review Load tester Pair- programming Unit testing Functional testing Acceptance testing External beta- testers Usability testing Static analysis Iteration Demo Structural testing Reliability Interoperability Performance UsabilityScalability Security Availability Maintainability Modifiability TestabilitySafety Survivability Confidentiality Portability Dependability Timeliness Integrity Fault-tolerance Qualities and methods have many to many relationship

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 9 TDD Module Testing Load testing Exploratory testing Test case based testing Code review Load tester Pair- programming Unit testing Functional testing Acceptance testing External beta- testers Usability testing Static analysis Iteration Demo Structural testing Reliability Interoperability Performance UsabilityScalability Security Availability Maintainability Modifiability TestabilitySafety Survivability Confidentiality Portability Dependability Timeliness Integrity Fault-tolerance Relationships between qualities and methods are poorly understood

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 10 TDD Module Testing Load testing Exploratory testing Test case based testing Code review Load tester Pair- programming Unit testing Functional testing Acceptance testing External beta- testers Usability testing Static analysis Iteration Demo Structural testing Reliability Interoperability Performance UsabilityScalability Security Availability Maintainability Modifiability TestabilitySafety Survivability Confidentiality Portability Dependability Timeliness Integrity Fault-tolerance Method may not be the most important factor affecting a quality

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 11 TDD Module Testing Load testing Exploratory testing Test case based testing Code review Load tester Pair- programming Unit testing Functional testing Acceptance testing External beta- testers Usability testing Static analysis Iteration Demo Structural testing Reliability Interoperability Performance UsabilityScalability Security Availability Maintainability Modifiability TestabilitySafety Survivability Confidentiality Portability Dependability Timeliness Integrity Fault-tolerance Specific methods for specific qualities

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 12 Summary  Qualities and methods have many to many relationship  Often relationships between qualities and methods are poorly understood  Method may not be the key factor when assuring particular quality  Code review’s effect on security  Largely dependent on the reviewer’s instructions  Specific methods exist for some qualities  Usability testing  Load testing

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 13 Outline  Introduction  QA of performance and usability (short)  QA of evolvability (long)  How are qualities effected by  code review,  pair-programming  exploratory testing  Practical approach

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 14 QA of performance  Requirements analysis  Estimate data volumes and user volume & behavior  Peak usage vs. Regular usage  Realistic data volumes  Acceptable response time  Hardware restrictions  With clustered server you can always buy more servers with mobile phone you cannot  Design & Code  Testability of the application with load testing tools  Design solutions  Bottlenecks, key algorithms, clustering  Testing  Data gathered in RA is crucial  Automate and parameterizes scripts  Measure  Use profiler to identify bottlenecks

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 15 Nixon B. A., 2000

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 16 QA of Usability  Usability – Quality in Use  The capability of the software to be understood learned used and liked by the user under specified conditions (ISO )  Understand context and users  Design for Usability  Field observation, interviews, prototypes  Usability reviews, e.g.  Heuristic evaluation  Cognitive walkthrough with task scenarios  Usability testing, e.g.  Thinking aloud protocol in usability lab  Co-discovery (Pair usability testing)  Surveys and questionnaires

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 17 Outline  Introduction  QA of performance and usability (short)  QA of evolvability (long)  How are qualities effected by  code review,  pair-programming  exploratory testing  Practical approach

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 18 Quality assurance of evolvability  Design  Company Standards / Coding conventions  Code inspections  Assessing software evolvability with tools  Improving software evolvability  Knowledge of the system  Environment support

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 19 Method 1 for evolvability: Design  Design for maintainable software  Principles  Low and loose coupling  System level, E.g.  No database specific functionality  Subsystem level, E.g.  Clear separation of responsibilities  Interaction through Interfaces  High cohesion  Information hiding  Most probable change scenarios should be evaluated  Different software component have, e.g. GUI vs. Encryption  different lifetimes  different modification rates  Collaborative design  Design review

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 20 Method 2 for evolvability: Coding conventions  Program layout has great impact to program comprehension  Documentation  Naming of code elements  Should reflect their intent  Naming standard  Commenting  Studies have shown that too much comments are also harmful !  Use when naming does not clearly state the intent  e.g. “Check needed because of bug in Java virtual machine”  Structure – Rules for acceptable structure  Explicit metrics  “Do not write methods over 100 lines”  Or heuristics  “Make sure all methods perform single explicit task”

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 21 Method 3 for evolvability: Code review  Spreads knowledge of the system  Increases evolvability inderectly  Distribution of CR issue (performance under functionality)

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 22 Method 4 for evolvability: Tools  Code metrics  E.g. Lines of code, number of coupling, execution paths  Quantify the vague concept of evolvability  Predict future development effort  Also industrial adoption  Reverse-engineering  i.e. identify the system's components and their interrelationships, e.g. code - > UML  Analyze whether the design matches the actual source  Metrics  Pro’s  Provides objective numbers  Does not require in depth understanding of the system  Con’s  Does not say anything about the correctness (quality)  e.g. Does the class have the correct associations  Reverse-engineering  Pro’s  Provides higher level view of the source code  Can be compared with the intended design  Con’s  Requires in depth understanding of the system

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 23 Method 5 for evolvability: Improve  Terms  Refactoring - Controlled way to improve the software’s structure without changing its observable behavior  Re-engineering - Examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation of the new form  Re-writing – Recreate the product starting with clean slate  All of the above can come handy during software evolution  Refactoring - continuous activity performed by all software developers  Re-engineering - when current system structure is no longer usable  Rewriting  When re-engineering is not enough  When moving to different new technology/language

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 24 Method 6 for evolvability: Knowledge distribution  Further development is harder, if expertise is lost  Expertise = solutions and locations to domain problems, domain knowledge, software architecture, design decisions  Good HRM policy can help maintain knowledge  Regardless there is risk of losing the people with knowledge  Retirement, moving to area, dying, changing career etc.  Strategies to keep vital knowledge of the system  Documenting  Spreading knowledge to several people

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 25 Method 7 for evolvability: Environment support  Good unit test harness increases evolvability  Increases courage to  improve software structure  add new features  Reduces developers test efforts  Other environment support can have similar effect  “We don't need unit test as we have excessive number of testers”

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 26 Quality assurance of evolvability  Design  Company Standards / Coding conventions  Code inspections  Assessing software evolvability with tools  Improving software evolvability  Knowledge of the system  Environment support

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 27 Outline  Introduction  QA of performance and usability (short)  QA of evolvability (long)  How are qualities effected by  code review,  pair-programming  exploratory testing  Practical approach

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 28 Code review’s effect to qualities  Spreads knowledge of the system  Increases evolvability inderectly  Distribution of CR issue (performance under functionality)

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 29 Pair programming’s effect to qualities  Increases understandability  Makes design better (evolvability)

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 30 Exploratory testing’s effect to qualaties  Single study: Exploratory testing (ET) vs Test Case Testing (TCT)  ET found more usability and GUI issues  TCT found more performance issues TypeETTCT ET/TCT (%) Total Documentation % 12 GUI % 119 Inconsistency % 8 Missing function % 194 Performance % 80 Technical defect % 120 Usability % 24 Wrong function % 502 Total % 1059

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 31 Outline  Introduction  QA of performance and usability (short)  QA of evolvability (long)  How are qualities effected by  code review,  pair-programming  exploratory testing  Practical approach

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 32 Teams with different goals Rank effort Rank statem. Rank memory Rank clarity Rank output Team1 (effort) Team2 (statem.) Team3 (memory) Team4 (clarity) Team5 (output)

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 33 Practical approach FunctionalityReliabilityUsabilityEfficiencyMaintainabilityPortability Code Review Test sessions Load Tests Multi-platform build Company specific list of practices Company specific list of quality attributes, e.g.: Only developing Windows application get rid of Portability Developing crypto library remove Usability take in Security

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 34 Summary  Many quality attributes and many quality assurance methods exist  Lecture series instead of single lecture?  Plenty of research on assuring certain qualities  Usability, Security, Evolvability (=Maintainability)  Lack of research on qa methods effects on qualities  Effects of pair-programming, exploratory testing to qualities  Exists specific methods for specific qualities  Usability testing

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 35 Topics  Consulting plan for a company  How to test Unit tests effect to quality X