Testing and Playtesting

Slides:



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

Software Testing Technique. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves.
Unit-V testing strategies and tactics.
Software Testing Strategies
Test process essentials Riitta Viitamäki,
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.
Debugging Mohammad Zikky, M.T. 2 Debugging Introduction (1 of 2)  Debugging is methodical process for removing mistakes in a program  So important,
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
Chapter 3.5 Debugging Games
Interactive Media and Game Development Debugging.
Documentation Testing
Software Configuration Management
Nov 20, Fall 2006IAT 4101 Play Testing Software Testing Play Testing Team Structures.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Testing HCI Usability Testing. Chronological order of testing Individual program units are built and tested (white-box testing / unit testing) Units are.
SE 555 Software Requirements & Specification Requirements Validation.
Interactive Media and Game Development Debugging.
Testing an individual module
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Implementation. We we came from… Planning Analysis Design Implementation Identify Problem/Value. Feasibility Analysis. Project Management. Understand.
Introduction to Software Testing
Software Testing & Strategies
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Extreme Programming Software Development Written by Sanjay Kumar.
Software Testing. Recap Software testing – Why do we do testing? – When it is done? – Who does it? Software testing process / phases in software testing.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
TESTING.
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
SOFTWARE TESTING STRATEGIES CIS518001VA : ADVANCED SOFTWARE ENGINEERING TERM PAPER.
Prof. Mohamed Batouche Software Testing.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
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 Testing types Testing strategy Testing principles.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Testing Workflow In the Unified Process and Agile/Scrum processes.
Moving into Implementation SYSTEMS ANALYSIS AND DESIGN, 6 TH EDITION DENNIS, WIXOM, AND ROTH © 2015 JOHN WILEY & SONS. ALL RIGHTS RESERVED.Roberta M. Roth.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
March 24, Spring 2004CS44551 Play Testing Software Testing Play Testing Team Structures.
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.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Dynamic Testing.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Testing Integral part of the software development process.
GAME TESTING REQUIREMENTS AND METHODS GAME DESIGN.
Playtesting.
Software Testing Strategies for building test group
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Software Configuration Management
Software Engineering (CSI 321)
Software Engineering (CSI 321)
Software Testing An Introduction.
Lecture 09:Software Testing
Verification and Validation Unit Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Chapter 17 Software Testing Strategies.
Software Testing “If you can’t test it, you can’t design it”
Software Testing Strategies
Presented by KARRI GOVINDA RAO ,
Presentation transcript:

Testing and Playtesting CIS 487/587 Bruce R. Maxim UM-Dearborn

Testing Objectives Testing is the process of executing a program with the intent of finding errors. A good test case is one with a high probability of finding an as-yet undiscovered error. A successful test is one that discovers an as-yet-undiscovered error.

Testing Principles All tests should be traceable to customer requirements. Tests should be planned before testing begins. 80% of all errors are in 20% of the code. Testing should begin in the small and progress to the large. Exhaustive testing is not possible. Testing should be conducted by an independent third party if possible.

Software Defect Causes Specification may be wrong. Specification may be a physical impossibility. Faulty program design. Program may be incorrect.

Good Test Attributes A good test has a high probability of finding an error. A good test is not redundant. A good test should be best of breed. A good test should not be too simple or too complex.

Test Strategies Black-box or behavioral testing knowing the specified function a product is to perform and demonstrating correct operation based solely on its specification without regard for its internal logic White-box or glass-box testing knowing the internal workings of a product, tests are performed to check the workings of all possible logic paths

Strategic Approach to Testing - 1 Testing begins at the component level and works outward toward the integration of the entire computer-based system. Different testing techniques are appropriate at different points in time. The developer of the software conducts testing and may be assisted by independent test groups for large projects. The role of the independent tester is to remove the conflict of interest inherent when the builder is testing his or her own product.

Strategic Approach to Testing - 2 Testing and debugging are different activities. Debugging must be accommodated in any testing strategy. Need to consider verification issues are we building the product right? Need to Consider validation issues are we building the right product?

Strategic Testing Issues - 1 Specify product requirements in a quantifiable manner before testing starts. Specify testing objectives explicitly. Identify the user classes of the software and develop a profile for each. Develop a test plan that emphasizes rapid cycle testing.

Strategic Testing Issues - 2 Build robust software that is designed to test itself (e.g. use anti-bugging). Use effective formal reviews as a filter prior to testing. Conduct formal technical reviews to assess the test strategy and test cases.

Stages of Testing Module or unit testing. Integration testing, Function testing. Performance testing. Acceptance testing. Installation testing.

Regression Testing Check for defects propagated to other modules by changes made to existing program Representative sample of existing test cases is used to exercise all software functions. Additional test cases focusing software functions likely to be affected by the change. Tests cases that focus on the changed software components.

Testing Stages of game testing are similar to those of all software testing: Unit testing Integration testing Validation testing Usability testing System or Performance testing

Test Plans Goals and objectives Test Strategy Components to be tested Resources Schedule Work products Testing procedures (tactics) For completing including test cases for all phases of testing

The next 8 slides come from the Rabin text

The Five Step Debugging Process 1. Reproduce the problem consistently 2. Collect clues 3. Pinpoint the error 4. Repair the problem 5. Test the solution

Step 2: Collect Clues Each clue a chance to rule out a cause Each clue a chance to narrow down the list of suspects Realize that some clues can be misleading and should be ignored

Step 3: Pinpoint the Error Two main methods: 1. Propose a Hypothesis You have an idea what is causing the bug Design tests to prove or disprove your hypothesis 2. Divide and Conquer Narrow down what could be causing the bug Eliminate possibilities from the top down or Backtrack from the point of failure upward

Step 4: Repair the Problem Propose solution Consider implications at point in project Programmer who wrote the code should ideally fix the problem (or at least be consulted) Explore other ways the bug could occur Ensure underlying problem fixed and not just a symptom of the problem

Expert Debugging Tips Question assumptions Minimize interactions and interference Minimize randomness Break complex calculations into steps Check boundary conditions Disrupt parallel computations Exploit tools in the debugger Check code that has recently changed Explain the bug to someone else Debug with a partner Take a break from the problem Get outside help

Tough Debugging Scenarios Bug exists in Release but not Debug Uninitialized data or optimization issue Bug exists on final hardware, not dev-kit Find out how they differ – usually memory size or disc emulation Bug disappears when changing something innocuous Timing or memory overwrite problem Intermittent problems Record as much info when it does happen Unexplainable behavior Retry, Rebuild, Reboot, Reinstall Internal compiler errors Full rebuild, divide and conquer, try other machines Suspect it’s not your code Check for patches, updates, or reported bugs Contact console maker, library maker, or compiler maker

Adding Infrastructure to Assist in Debugging Alter game variables during gameplay Visual AI diagnostics Logging capability Recording and playback capability Track memory allocation Print as much information as possible on a crash Educate your entire team testers, artists, designers, producers

Prevention of Bugs Set compiler to highest warning level Set compiler warnings to be errors Compiler on multiple compilers Write your own memory manager Use asserts to verify assumptions Initialize variables when they are declared Bracket loops and if statements Use cognitively different variable names Avoid identical code in multiple places Avoid magic (hardcoded) numbers Verify code coverage when testing

Game Test Cycles - 1 Alpha test cycles Can be applied when game product has a least one playable logic path Basic user interface should be complete Game should run on minimum hardware configuration Test multiplayer functions if called for Game installer should work and draft manual should exist

Game Test Cycles - 1 Alpha test cycle objectives Test all modules for current product version Create a defect database and test plan Record known defects and performance test results

Game Test Cycles - 2 Beta test cycles Applied after all game features and options have been implemented Game allows testers to navigate all logic paths to allow removal of most game termination defects Final game interface, artwork, and audio should be present Final game installer and manual exist

Game Test Cycles - 2 Beta test cycle objectives Isolate significant defects and performance problems Complete testing, defect removal, and performance testing Complete compatibility testing

Game Test Cycles - 3 Gold release candidates Applied after senior management has reviewed product and defect database All program features will be present Performance is appropriate for release Online documentation is complete All major defects removed Game runs on all supported platforms

Game Test Cycles - 2 Gold release candidate objectives Successful playtesting will occur Similar to acceptance testing, except that publisher determines criteria not end users End product will be potentially shippable Gold release candidate will be classified as a baseline work product (therefore changes are quite risky and must be approved by all stakeholders)

Acceptance Testing Purpose of acceptance testing is to have customers work with software in their own environment Determine that software that requirements have been met Largely a highly scripted affair, since it determines whether developers will get paid or not

Playtesting Game testers play the game and try to user game features in the same way as end users Use game manual and see if game installs according to written directions See if game plays according to game manual instructions Playtesting needs to take place without coaching

Playtesting Goals Playtesting follows software testing Is the game fun? Are there problems with game mechanics? Software Testing + More Tuning game play Tuning game flow experience Does the player the point of the game?

Pragmatics Playtesting is not the same as debugging (which is very code oriented) Better to have a game that plays well and crashes occasionally, than a game that runs great and has a boring ending Testers must feel that developers are reacting to their feedback and criticism in an egoless manner

Who is the right playtester? Need a person who can explain the reasons behind his or her likes and dislikes General impressions (e.g it was fun) are not very helpful It is helpful to involve first time users since they can often spot usability problems and poor game play quickly

Possible Testers Development team members and test team members may not be the best play testers (if they don’t match intended game audience profile) They are motivated to improve the product and know what needs to be tested

Team Structure Fundamental issue create willful blindness Have testing team members be different from your coders is vital Separate software testing team Separate playtesting team Separate SQA group(?)

Playtesting Team Internal team External team Manages playtesting people Does own playtests Recruits outside testers External team Representative sample target players Varying skills Unfamiliar with product Not in love with your product! Not yet bored with the product

External Testers Do they like the game? They may lie to you Politeness effect If they can’t say why they like a game feature, you have a problem When/where do they get frustrated? What common areas? Often skill-based Internal team judges player’s skill, also

Focus Groups Representative sample of target audience for game product Need to determine what feedback is needed back from target audience Can provide feedback on key screen displays, storyboards, interface prototypes early in the design process Early feedback on gameplay can shape direction of final product with less rework

Guided or Unguided Unguided Guided Testers play game without restrictions Better used later in the development process Guided Testers given specific tasks to accomplish Used early in development or during regression testing

Outcomes When play testers can not progress in game the designer should try to figure out the reason If the game is too hard, it needs to be simplified If play testers are doing unexpected things and the results are entertaining the new features should be added to the game

Case study from C.D. Shaw

External Testers: Half-Life People near Valve’s offices who sent in registration cards Designers sit quietly while player struggles Designer takes notes Typical 2-hour session 100 action items First 20-30 sessions absolutely vital Learn what was fun 200 sessions total

Half-Life: Fine tuning Add instrumentation Player position, time, health, weapons Activities: Game save, dying, being hurt, solving a puzzle, fighting a monster… Graph series of sessions together Spot too long with no encounters Spot long periods of too much health Spot long periods of too little health

Half-Life Most important playtesting outcome: Clearly identified good and bad ideas Playtesting provides the evidence needed to abandon bad ideas

Advice Don’t get defensive! Testers: Stick to your findings! The tester opinion is important Testers: Stick to your findings! Respectfully point out problems Mix up the hardware Be honest about the specs on the box Don’t let bad decisions live forever!