Lesson 2 Understanding Software Bugs

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

Making the System Operational
Lecture 8: Testing, Verification and Validation
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
CSI 101 Elements of Computing Spring 2009 Lecture #2 Development Life Cycle of a Computer Application Monday January 26th, 2009.
16/27/2015 3:38 AM6/27/2015 3:38 AM6/27/2015 3:38 AMTesting and Debugging Testing The process of verifying the software performs to the specifications.
Systems Analysis and Design in a Changing World, 6th Edition
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Asper School of Business University of Manitoba Systems Analysis & Design Instructor: Bob Travica System implementation and deployment Updated: November.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Software Life Cycle Model
Software Development, Programming, Testing & Implementation.
Chapter 1: Introduction To Computer | SCP1103 Programming Technique C | Jumail, FSKSM, UTM, 2005 | Last Updated: July 2005 Slide 1 Introduction To Computers.
Data Structures and Programming.  John Edgar2.
Chapter 9 – Software Evolution and Maintenance
BY: GARIMA GUPTA MCA FINAL YEAR WHAT IS SOFTWARE TESTING ? SOFTWARE TESTING IS THE PROCESS OF EXECUTING PROGRAMS OR SYSTEM WITH THE INTENT.
Extreme Programming Software Development Written by Sanjay Kumar.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Software Testing. Introduction Testing is often left to the end of the project which is generally not a good idea. Testing should be conducted throughout.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Acceptance Testing Senior Design Fall 2013
Information Systems Security Computer System Life Cycle Security.
Software Testing Damian Gordon.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
Software Testing. What is Software Testing? Definition: 1.is an investigation conducted to provide stakeholders with information about the quality of.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 23 Reliability III.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Designing & Testing Information Systems Notes Information Systems Design & Development: Purpose, features functionality, users & Testing.
Software Engineering Chapter 3 CPSC Pascal Brent M. Dingle Texas A&M University.
MULTIMEDIA PRODUCTION Learning Outcome 1. List the steps in the testing process.
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
Software Defects.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Software Engineering. Acknowledgement Charles Moen Sharon White Bun Yue.
Program Development Cycle
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
Chapter 5 How are software packages developed?. What are the main steps in software project development? Writing Specifications - Analysis Phase Developing.
Requirements Engineering Requirements Management Lecture-25.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
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.
MANAGEMENT INFORMATION SYSTEM
Last Class We Covered Decision structures One-way (using if)
Introduction to Software Testing Part1 Summary & Terms
Testing the System.
User-centred system design process
Testing More In CS430.
Chapter 18 Maintaining Information Systems
Different Types of Testing
Why Is Software Testing Important For Modern Businesses?
Important Software Performance Testing That Ensure High Quality Solutions.
Introduction to Software Testing
Lecture 09:Software Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
Unit 6: Application Development
Software Engineering Lecture #14.
Chapter 9 – Software Evolution and Maintenance
Software Testing & Quality Management
Lesson 1 Understanding Software Quality Assurance
Welcome to Corporate Training -1
Chapter 8 Software Evolution.
Unit 1 Programming - Assignment 3
Chapter 7 Software Testing.
Presentation transcript:

Lesson 2 Understanding Software Bugs

Understanding Software Bugs The objectives for this lesson are as follows: Explain what is a bug Explain where bugs come from Explain Unit testing Explain Usability testing Explain Alpha & Beta testing

Understanding Software Bugs History of a Software Bug The "first actual case of bug being found" was during the development of Harvard University’s Mark II calculator. There was something unusual found inside, computer scientist and U.S. Navy Rear Admiral Grace Hopperit discovered it was a moth and the term bug and debug was coined. At the time computers were very large so insects would find their way in and disrupt the electronics. The first ‘bugs’ were literal insects somewhere in the machine, and debugging was removing those insects. To read the full story visit the link below http://www.computerworld.com/article/2515435/app-development/moth-in-the-machine--debugging-the-origins-of--bug-.html

Understanding Software Bugs What is a Software Bug? A software bug is an error or failure in a computer program that causes it to produce incorrect or unexpected results or just stop functioning. Most bugs are caused during the development process in either the design or during the implementation phase while writing the source code. Bugs can cause an indirect effect or cause the program to freeze or crash. Serious issues can be caused by bugs even death in cases where software is controlling systems around people.

Understanding Software Bugs Notorious Software Bugs Throughout the years there have been serious failures causing billions of dollars and the lives of people because of a software malfunction due to a bug in the software. Lets take a look at this notorious software bug story. Epic Failures: 11 infamous software bugs by Matt Lake http://www.computerworld.com/article/2515435/app-development/moth-in-the-machine--debugging-the-origins-of--bug-.html

Understanding Software Bugs Software Testing Now that you see the severity that poor planning causes, lets look at how developers avoid such disasters with software testing. Lets recap the testing phase from lesson 1. A series of testing follows implementation to ensure all requirements and specifications have been met and the product solves the need or problem established in the planning phase. Software Testing Considerations The initial stage of testing begins with running components of the software with the intent of finding a software bug. While running these components testers assess properties of concern such as: Does the software meet the specifications outlined in the planning and design phase? Does the software behave accurately to different kinds of input? Is the software user-friendly? Is there any issues with the installation process? Does the software achieve the intended result outlined by the shareholders?

Understanding Software Bugs Types of Software Testing There are a number of tests performed by testers to target specific outcomes. The results is used to collect data about the quality of the software including risks or possible failures. Unit Testing Unit testing is the process of testing small units of the source code in various cases. It requires setting up specific requirements for what values are acceptable at certain points in the code using what are called ‘assertions’. The ‘assert’ keyword is used in various programming languages to test assertions. They are like if statements that are only used for testing. Usability Testing Usability testing involves assessing the software’s user interface and design based on the experience of the users. This method of testing gets direct input on the experience of real users. You let some potential users use your software and see if they have difficulty navigating the user interfacing or figuring out the workflow of the software.

Understanding Software Bugs α β Alpha Testing Alpha testing involves a series of tests administered internally, as in where the developers are located. It involves testing in close proximity to the developers to facility quick fixes before beta testing. Alpha testing usually last longer than Beta testing because initially there are more bugs to be found. Beta Testing Beta testing involves releasing the completed product known as a beta version to users outside of the development team (potential customers) to gather further usage data and find potential bugs.

Understanding Software Bugs The objectives for this lesson are as follows: Explain what is a bug Explain where bugs come from Explain Unit testing Explain Usability testing Explain Alpha & Beta testing

Sources “Moth in the machine: Debugging the Origins of Bugs” Computer World, http://www.computerworld.com/article/2515435/app-development/moth-in-the-machine--debugging-the-origins-of--bug-.html “Epic failures: 11 infamous software bugs” Matt Lake, Computer World, http://www.computerworld.com/article/2515435/app- development/moth-in-the-machine--debugging-the- origins-of--bug-.html “Software Testing” Wikipedia, http://en.wikipedia.org/wiki/Software_testing “Unit testing” Wikipedia, http://en.wikipedia.org/wiki/Usability_testing “Alpha Testing” Wikipedia, http://en.wikipedia.org/wiki/Software_testing#Alpha_testi ng “Beta testing” Wikipedia, http://en.wikipedia.org/wiki/Software_testing#Beta_testin g