Download presentation
Presentation is loading. Please wait.
Published byMadlyn Ramsey Modified over 9 years ago
1
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Quality assurance of non- functional requirements Mika Mäntylä TKK/SoberIT/SPRG T-76.5650 Software engineering seminar
2
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
3
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
4
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
5
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
6
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
7
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
8
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
9
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
10
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
11
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
12
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
13
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
14
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
15
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 15 Nixon B. A., 2000
16
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 9126-1) 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
17
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
18
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
19
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
20
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”
21
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)
22
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
23
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
24
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
25
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”
26
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
27
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
28
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)
29
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)
30
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 Documentation84 200 % 12 GUI7049 143 % 119 Inconsistency53 167 % 8 Missing function9896 102 % 194 Performance3941 95 % 80 Technical defect5466 82 % 120 Usability195 380 % 24 Wrong function263239 110 % 502 Total556503 111 % 1059
31
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
32
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) 14453 Team2 (statem.) 2-31235 Team3 (memory) 52144 Team4 (clarity) 43322 Team5 (output) 2-35511
33
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Mika Mäntylä 33 Practical approach FunctionalityReliabilityUsabilityEfficiencyMaintainabilityPortability Code Review 123211 Test sessions 121233 Load Tests 213133 Multi-platform build 323321 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
34
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
35
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.