Supannika Koolmanojwong CSCI 577 Ref: Qi Li’s lectures

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Test process essentials Riitta Viitamäki,
Testing and Quality Assurance
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Software Engineering-II Sir zubair sajid. What’s the difference? Verification – Are you building the product right? – Software must conform to its specification.
1 Software Engineering Lecture 11 Software Testing.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Illinois Institute of Technology
SE 555 Software Requirements & Specification Requirements Validation.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
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.
Verification and Validation CIS 376 Bruce R. Maxim UM-Dearborn.
Verification and Validation
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
OHT 4.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Extreme Programming Software Development Written by Sanjay Kumar.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
Software Testing. What is Software Testing? Definition: 1.is an investigation conducted to provide stakeholders with information about the quality of.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Testing Testing types Testing strategy Testing principles.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Engineering Saeed Akhtar The University of Lahore.
Barry Boehm Supannika Koolmanojwong CSCI 577 Ref: Qi Li’s lectures
Software Quality Assurance and Testing Fazal Rehman Shamil.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
University of Southern California Center for Systems and Software Engineering Software Testing Supannika Koolmanojwong CSCI 577 Ref: Qi Li’s lectures 1.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
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.
Testing and Evolution CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Testing Integral part of the software development process.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
Other Types Of Testing We Would Prefer NOT to See.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Software Engineering (CSI 321)
Software Testing.
Rekayasa Perangkat Lunak Part-13
Software Verification and Validation
CSC 480 Software Engineering
Chapter 8 – Software Testing
Verification and Validation
Verification and Validation
Introduction to Software Testing
Lecture 09:Software Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
CS310 Software Engineering Dr.Doaa Sami Khafaga
Chapter 7 Software Testing.
Presentation transcript:

Supannika Koolmanojwong CSCI 577 Ref: Qi Li’s lectures Software Testing Supannika Koolmanojwong CSCI 577 Ref: Qi Li’s lectures

Continuous Integration Personas CRUD Analysis MoSCoW Software Test Automation TDD Agile Testing SW design pattern Walkthrough V&V standard Defect Tracking Tool Code Inspection “Bug” is found Software Reliability Software Metrics HCI http://www.testingreferences.com/testingtimeline/testingtimeline.jpg

Positive and Negative Testing Positive Testing Do “normal” user actions Find cases where the program does not do what it is supposed to do Test with valid input Negative Testing Do “abnormal” user actions Find cases where the program does things it is not supposed to do Test with invalid input

Outline Software Test in General Value-based Software Test

Most Common Software problems Incorrect calculation Incorrect data edits & ineffective data edits Incorrect matching and merging of data Data searches that yields incorrect results Incorrect processing of data relationship Incorrect coding / implementation of business rules Inadequate software performance

Confusing or misleading data Software usability by end users & Obsolete Software Inconsistent processing Unreliable results or performance Inadequate support of business needs Incorrect or inadequate interfaces with other systems Inadequate performance and security controls Incorrect file handling

Cost to fix faults 60* to 100* 1.5* to 6* 1* Cost Definition Development Post Release

Objectives of testing Executing a program with the intent of finding an error. To check if the system meets the requirements and be executed successfully in the Intended environment. To check if the system is “ Fit for purpose”. To check if the system does what it is expected to do.

A good test : A good test case is one that has a probability of finding an as yet undiscovered error. A successful test is one that uncovers a yet undiscovered error. A good test is not redundant. A good test should be “best of breed”. A good test should neither be too simple nor too complex.

Objective of a Software Tester Find bugs as early as possible and make sure they get fixed. To understand the application well. Study the functionality in detail to find where the bugs are likely to occur. Study the code to ensure that each and every line of code is tested. Create test cases in such a way that testing is done to uncover the hidden bugs and also ensure that the software is usable and reliable

How do you know you are a good tester? b. sources: Google images

How do you know you are a good tester? Signs that you are dating a tester Your love letters get returned to you marked up with red ink, highlighting your grammar and spelling mistakes. When you ask him how you look in a dress, he’ll actually tell you. He won’t help you change a broken light bulb because his job is simply to report and not to fix. He’ll keep bringing up old problems that you’ve since resolved just to make sure that they’re truly gone

Static and Dynamic Verification Software reviews, inspections and walkthroughs - Concerned with analysis of the static system representation to discover problems (static verification) Software testing with test cases - Concerned with exercising and observing product behaviour (dynamic verification) The system is executed with test data and its operational behaviour is observed

Inspection Fagan Inspection Process Planning  Overview meeting  Preparation  Inspection meeting  Rework  Follow-up Inspection roles Author, Moderator, Reader, Recorder, Inspector Inspection types Code review, peer review Inspect Req Spec, Sys Arch, Programming, Test scripts

Inspections and testing Inspections and testing are complementary and not opposing verification techniques Both should be used during the V & V process Inspections can check conformance with a specification but not conformance with the customer’s real requirements Inspections cannot check non-functional characteristics such as performance, usability, etc.

Test data and test cases Test data Inputs which have been devised to test the system Test cases Inputs to test the system and the predicted outputs from these inputs if the system operates according to its specification

Methods of testing Test to specification: Test to code: Black box Data driven Functional testing Code is ignored: only use specification document to develop test cases Test to code: Glass box/White box Logic driven testing Ignore specification and only examine the code.

Types of Testing – (Jokes) Aggression Testing: If this doesn’t work, I’m gonna kill somebody. Compression Testing: [] Confession Testing: Okay, Okay, I did program that bug. Congressional Testing:Are you now, or have you ever been a bug? Depression Testing:If this doesn’t work, I’m gonna kill myself. Egression Testing: Uh-oh, a bug… I’m outta here. Digression Testing: Well, it works, but can I tell you about my truck… Expression Testing: #@%^&*!!!, a bug. Obsession Testing: I’ll find this bug if it’s the last thing I do. Oppression Testing: Test this now! Poission Testing: Alors! Regardez le poission! Repression Testing: It’s not a bug, it’s a feature. Secession Testing: The bug is dead! Long lives the bug! Suggestion Testing: Well, it works but wouldn’t it be better if… Ref: netfunny.com

Testing Levels Unit testing Integration testing System testing Acceptance testing

Unit testing The most ‘micro’ scale of testing. Tests done on particular functions or code modules. Requires knowledge of the internal program design and code. Done by Programmers (not by testers). Unit testing tool http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks

Integration Testing Types of Integration Testing Testing of combined parts of an application to determine their functional correctness. ‘Parts’ can be code modules individual applications client/server applications on a network. Types of Integration Testing Top-down Bottom-up Sandwich Big-bang

Top-down Integration Testing http://www.site.uottawa.ca/~ssome/Cours/CSI5118/Integration.pdf

http://www.site.uottawa.ca/~ssome/Cours/CSI5118/Integration.pdf

http://www.site.uottawa.ca/~ssome/Cours/CSI5118/Integration.pdf

http://www.site.uottawa.ca/~ssome/Cours/CSI5118/Integration.pdf

Systems Testing To test the co-existence of products and applications that are required to perform together in the production-like operational environment (hardware, software, network) To ensure that the system functions together with all the components of its environment as a total system To ensure that the system releases can be deployed in the current environment

Acceptance Testing Objectives To verify that the system meets the user requirements When After System Testing Input Business Needs & Detailed Requirements Master Test Plan User Acceptance Test Plan Output User Acceptance Test report

Testing an application under heavy loads. Load testing Testing an application under heavy loads. Eg. Testing of a web site under a range of loads to determine, when the system response time degraded or fails.

Stress Testing Testing under unusually heavy loads, heavy repetition of certain actions or inputs, input of large numerical values, large complex queries to a database etc. Term often used interchangeably with ‘load’ and ‘performance’ testing. Performance testing Testing how well an application complies to performance requirements.

Alpha testing Beta-testing Testing done when development is nearing completion; minor design changes may still be made as a result of such testing. Beta-testing Testing when development and testing are essentially completed and final bugs and problems need to be found before release.

Good Test Plans (1/2) Developed and Reviewed early. Clear, Complete and Specific Specifies tangible deliverables that can be inspected. Staff knows what to expect and when to expect it.

Good Test Plans (2/2) Realistic quality levels for goals Includes time for planning Can be monitored and updated Includes user responsibilities Based on past experience Recognizes learning curves

Test Cases Test plan reference id Test case Test condition Contents Test plan reference id Test case Test condition Expected behavior

Good Test Cases Find Defects Have high probability of finding a new defect. Unambiguous tangible result that can be inspected. Repeatable and predictable.

Good Test Cases Traceable to requirements or design documents Push systems to its limits Execution and tracking can be automated Do not mislead Feasible

Bugs prioritization

Outline Software Test in General Value-based Software Test

Tester’s Attitude and Mindset “The job of tests, and the people that develop and run tests, is to prevent defects, not to find them.” - Mary Poppendieck

Pareto 80-20 distribution of test case value [Bullock, 2000] Actual business value 100 100 80 80 % of % of 60 60 Value Value Automated test Automated test for for generation tool generation tool Correct Correct 40 40 - - all tests have equal value* Customer Customer Billing Billing 20 20 5 5 10 10 15 15 Customer Type Customer Type *Usual SwE assumption for all requirements, objects, defects, …

Business Case for Value-Based Testing

How can we compare the value of test cases ? How to prioritize test cases ? How to measure the value of test cases?

Value-based Software Testing Framework- Feature Prioritization

How much test is enough? Li, Q., Yang, Y., Li, M., Wang, Q., Boehm, B. W. and Hu, C., Improving software testing process: feature prioritization to make winners of success-critical stakeholders. Journal of Software Maintenance and Evolution: Research and Practice, n/a. doi: 10.1002/smr.512

Value-based Test Case Prioritization

Value-based Test Order Logic Value First: Test the one with the highest value. Dependency Second: If the test case with the highest value is not “Ready-to-Test”, which means at least one of the test cases in its Dependencies Set is “Not-Tested-Yet”. In such situation, prioritize the “Not-Tested-Yet” test cases according to “Value First” in this Dependencies Set and start to test until all test cases in the Dependencies Set are “Passed”. Then the test case with the highest value is “Ready-to-Test”. Shrink the prioritization set ASAP: Exclude the tested one out of the prioritization set.

Value-based Test Order Logic

Test Case Dependency Tree

Accumulated Cost-Effectiveness (ACE) of Test

Testing in 577 EP-17 EP-18 EP-19 EP-20 Value-Based Testing Process Value-Based Software Testing Guideline EP-19 Test Plan and Cases Template EP-20 VB Test Procedure and Result Template

Test Plan What, when, where, how, by whom? Traceability Matrix Type of testing Timeline Developers’ machine / server Tools, HW, SW Responsible person Traceability Matrix

Test Cases

Test Procedure

Found bugs, then what? http://softwaretestingandqa.blogspot.com/

Developer: There is no I in TEAM Tester: We cannot spell BUGS without U