Black Box Testing PPT Sources: Code Complete, 2nd Ed., Steve McConnell

Slides:



Advertisements
Similar presentations
Black Box Testing Sources: Code Complete, 2 nd Ed., Steve McConnell Software Engineering, 5 th Ed., Roger Pressman Testing Computer Software, 2 nd Ed.,
Advertisements

1/1/ / faculty of Electrical Engineering eindhoven university of technology Introduction Part 3: Input/output and co-processors dr.ir. A.C. Verschueren.
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
MSF Testing Introduction Functional Testing Performance Testing.
Black Box Testing Sources: Code Complete, 2nd Ed., Steve McConnell
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
Web Based Applications
TESTING STRATEGY Requires a focus because there are many possible test areas and different types of testing available for each one of those areas. Because.
Samuvel Johnson nd MCA B. Contents  Introduction to Real-time systems  Two main types of system  Testing real-time software  Difficulties.
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.
Designing For Testability. Incorporate design features that facilitate testing Include features to: –Support test automation at all levels (unit, integration,
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.
Nonbehavioral Specifications Non-behavioral Characteristics Portability Portability Reliability Reliability Efficiency Efficiency Human Engineering.
PRESENTER PRIYANKA GUPTA.  Testing the complete system with respect to requirements.  In System testing, the functionalities of the system are tested.
Performance Testing Test Complete. Performance testing and its sub categories Performance testing is performed, to determine how fast some aspect of a.
Introduction to Performance Testing Performance testing is the process of determining the speed or effectiveness of a computer, network, software program.
WEB TESTING
Topic 2: Hardware and Software
Introduction to Software Quality Assurance & Testing
Introduction to Software Testing Part1 Summary & Terms
CS240: Advanced Programming Concepts
Software Testing Strategies for building test group
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
14 Compilers, Interpreters and Debuggers
Chapter Objectives In this chapter, you will learn:
Lecture 1: Operating System Services
Testing the System.
Integration Testing.
2. OPERATING SYSTEM 2.1 Operating System Function
Software Architecture in Practice
Introduction to Visual Basic 2008 Programming
Black Box Testing PPT Sources: Code Complete, 2nd Ed., Steve McConnell
Computer Software.
Crash Dump Analysis - Santosh Kumar Singh.
Software testing
Designing For Testability
Chapter 8 – Software Testing
Operating Systems Overview
Black Box Testing Testing software against a specification of its external behavior without knowledge of internal implementation details Can be applied.
Some Simple Definitions for Testing
Chapter 13 & 14 Software Testing Strategies and Techniques
IS442 Information Systems Engineering
TESTING IN THE SOFTWARE LIFE CYCLE &TEST LEVELS Chapter 2 1/11/
סיכונים בבדיקות אוריאלה כהן מאי 2012 נובמבר 18 אוריאלה כהן.
Introduction to Software Testing
CS240: Advanced Programming Concepts
Lecture 09:Software Testing
Section 14.1 Section 14.2 Identify the technical needs of a Web server
Verification and Validation Unit Testing
Fault Tolerance Distributed Web-based Systems
What is Concurrent Programming?
BIC 10503: COMPUTER ARCHITECTURE
Chapter 10 – Software Testing
Performance And Scalability In Oracle9i And SQL Server 2000
Software System Testing
Software Verification, Validation, and Acceptance Testing
System Testing.
Performance And Scalability In Oracle9i And SQL Server 2000
Lecture 34: Testing II April 24, 2017 Selenium testing script 7/7/2019
Introduction to Software Quality Assurance & Testing
Performance/Load/Stress Testing
Software Testing Strategies
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Types of Software Testing Course. CONTENT  Black-box testing course  White-box software testing course  Automated software testing course  Regression.
Presentation transcript:

Black Box Testing PPT Sources: Code Complete, 2nd Ed., Steve McConnell Software Engineering, 5th Ed., Roger Pressman Testing Computer Software, 2nd Ed., Cem Kaner, et. Al.

Ad Hoc Exploratory Testing (Error Guessing) Based on intuition, guess what kinds of inputs might cause the program to fail Create some test cases based on your guesses Intuition will often lead you toward boundary cases, but not always

Ad Hoc Exploratory Testing (Error Guessing) Some special cases aren't boundary values, but are mishandled by many programs Try exiting the program while it's still starting up Try loading a corrupted file Try strange but legal URLs: hTtP://Www.bYu.EDU/

Comparison Testing Also called Back-to-Back testing If you have multiple implementations of the same functionality, you can run test inputs through both implementations, and compare the results for equality Inputs may be randomly generated or designed manually EX: Nvidia graphics chips specified with software simulation. Real chip compared back-to-back with simulation to verify implementation. EX: Database drivers EX: Web Crawler in 240

Comparison Testing Why would you have access to multiple implementations? Safety-critical systems sometimes use multiple, independent implementations of critical modules to ensure the accuracy of results You might use a competitor's product, or an earlier version of your own, as the second implementation You might write a software simulation of a new chip that serves as the specification to the hardware designers. After building the chip, you could compare the results computed by the chip hardware with the results computed by the software simulator EX: Nvidia graphics chips specified with software simulation. Real chip compared back-to-back with simulation to verify implementation. EX: Database drivers EX: Web Crawler in 240

Testing for race conditions and other timing dependencies Many systems perform multiple concurrent activities Operating systems manage concurrent programs, interrupts, etc. Servers service many clients simultaneously Applications let users perform multiple concurrent actions Test a variety of different concurrency scenarios, focusing on activities that are likely to share resources (and therefore conflict)

Testing for race conditions and other timing dependencies "Race conditions" are bugs that occur only when concurrent activities interleave in particular ways, thus making them difficult to reproduce Test on hardware of various speeds to ensure that your system works well on both slower and faster machines

Performance Testing Measure the system's performance Running times of various tasks Memory usage, including memory leaks Network usage (Does it consume too much bandwidth? Does it open too many connections?) Disk usage (Is the disk footprint reasonable? Does it clean up temporary files properly?) Process/thread priorities (Does it play well with other applications, or does it hog the whole machine?)

Limit Testing Test the system at the limits of normal use Test every limit on the program's behavior defined in the requirements Maximum number of concurrent users or connections Maximum number of open files Maximum request size Maximum file size What happens when you go slightly beyond the specified limits? Does the system's performance degrade dramatically, or gracefully?

Stress Testing Test the system under extreme conditions (i.e., beyond the limits of normal use) Create test cases that demand resources in abnormal quantity, frequency, or volume Low memory conditions Disk faults (read/write failures, full disk, file corruption, etc.) Network faults Unusually high number of requests Unusually large requests or files Unusually high data rates (what happens if the network suddenly becomes ten times faster?) Even if the system doesn't need to work in such extreme conditions, stress testing is an excellent way to find bugs

Random Testing Randomly generate test inputs Could be based on some statistical model How do you tell if the test case succeeded? Where do the expected results come from? Some type of “oracle” is needed

Random Testing Expected results could be calculated manually Possible, but lots of work Automated oracles can often be created to measure characteristics of the system Performance (memory usage, bandwidth, running times, etc.) Did the system crash? Maximum and average user response time under simulated user load

Security Testing Any system that manages sensitive information or performs sensitive functions may become a target for intrusion (i.e., hackers) How feasible is it to break into the system? Learn the techniques used by hackers

Security Testing Try whatever attacks you can think of Hire a security expert to break into the system If somebody broke in, what damage could they do? If an authorized user became disgruntled, what damage could they do?

Usability Testing Is the user interface intuitive, easy to use, organized, logical? Does it frustrate users? Are common tasks simple to do? Does it conform to platform-specific conventions? Get real users to sit down and use the software to perform some tasks

Usability Testing Watch them performing the tasks, noting things that seem to give them trouble Get their feedback on the user interface and any suggested improvements Report bugs for any problems encountered

Recovery Testing Try turning the power off or otherwise crashing the program at arbitrary points during its execution Does the program come back up correctly when you restart it? Was the program’s persistent data corrupted (files, databases, etc.)? Was the extent of user data loss within acceptable limits? Can the program recover if its configuration files have been corrupted or deleted? What about hardware failures? Does the system need to keep working when its hardware fails? If so, verify that it does so.

Configuration Testing Test on all required hardware configurations CPU, memory, disk, graphics card, network card, etc. Test on all required operating systems and versions thereof Virtualization technologies such as VMWare and Virtual PC are very helpful for this Test as many Hardware/OS combinations as you can Test installation programs and procedures on all relevant configurations

Compatibility Testing Test to make sure the program is compatible with other programs it is supposed to work with Ex: Can Word 12.0 load files created with Word 11.0? Ex: "Save As… Word, Word Perfect, PDF, HTML, Plain Text" Ex: "This program is compatible with Internet Explorer and Firefox" Test all compatibility requirements

Documentation Testing Test all instructions given in the documentation to ensure their completeness and accuracy For example, “How To ...” instructions are sometimes not updated to reflect changes in the user interface Test user documentation on real users to ensure it is clear and complete

Thanks….