exploratory testing

Download Exploratory  Testing

Post on 12-Jul-2015

576 views

Category:

Education

2 download

Embed Size (px)

TRANSCRIPT

  • Basics Models Examples Invariance Interference Error Handling Group Insights

  • Do we need this button?.. Why? Who will use it? Can I press it? What will appear in that case?

  • I saw such program before!!! And it had an interesting bug!

  • VerificationRegression

  • I dont understand diagrams. They are too difficult.

  • Dont worry. You may:

  • Pick a data item

    Trace it through the system

    Interaction with other items?

    What functions use it?

  • Often item editing or deleting may cause problems. And boundary values too!

  • Do you remember about Use cases and Soap operas?

  • No.

  • For example:Another value in text field;Start services in different way;Select another country from dropdown each time

  • Interrupt from a device related to the task; from a device unrelated to the task; from a software event;Stop Cancel the task; Cancel some other task while this task is running;

    Change Change something that this task depends on

  • Is Exploratory = Random?

  • This presentation is made under Creative Commons LicenseAll images within this presentation was either purchased or obtained via Creative Commons License 2008 EPAM SystemsThis presentation was prepared by Aliaksandr Baranouski, Software Testing Career Development Curator at EPAM Systems.aliaksandr_baranouski@epam.comOr skype: Aliaksandr_BaranouskiOr call: +375(029) 573 74 37

    Today we will talk about one more testing methodology, which is called Exploratory Testing.*Why Exploratory? Do we really need it? What is the purpose? The main thing is that the projects are different.*Some of them are well-documented and contain a lot of different information and documentation.*About other, which come for testing we can say nothing. We have no specs, docs, UIs What should we do in that case?*The answer is following: We will simultaneous learn, planning and testing. **The tester who constantly asks good questions canAvoid blind spotsQuickly think of new test casesConstantly vary our approaches and targetsDiscover holes in specifications and product descriptions

    *A more formal variation:Create a potential bugs listTesting Computer Software book (Caner)Another related type of analogy:Sample from another products test docs.

    *Sources of gossip:directly from programmers, about their own progress or about the progress;from attending code reviews;from other testers, writers, marketers, etc.Sources of predictionsnotes in specs, design documents, etc. that predict problemspredictions based on the current programmers history of certain types of defects

    *Another approach to ad hoc testing is to treat it as improvisation on a theme, not unlike jazz improvisation in the musical world. For example, testers often start with a Test Design that systematically walks through all the cases to be covered. Similarly, jazz musicians often start with a musical score or lead sheet for the tunes on which they intend to improvise. In this version of the ad hoc approach, the tester is encouraged to take off on tangents from the original Test Design whenever it seems worthwhile. In other words, the tester uses the test design but invents variations. This approach combines the strengths of both structured and unstructured testing: the feature is tested as specified in the test design, but several variations and tangents are also tested. On this basis, we expect that the improvisational approach will yield improved coverage.

    Which skills do a tester need for this method?

    *We usually think of modeling in terms of preparation for formal testing, but there is no conflict between modeling and exploration. Both types of tests start from models. The difference is that in exploratory testing, our emphasis is on execution (try it now) and learning from the results of execution rather than on documentation and preparation for later execution.

    **User owns a document.Edit user- not able to acess the document anymoreDelete userVery long user nameUser owns very many documentsHow system determines owner by default

    User roleDelete role.Change role type.Edit user after creation.

    Configured system variable: max number Workflow.Create item with something=max.Change max number to be less this value.Change workflow when items are moving through it.Delete item owner when item

    **Use cases:List the users of the systemFor each user, think through the tasks they want to doCreate test cases to reflect their simple and complex uses of the system

    **Try changes that shouldnt affect the program: Different value from the same equivalence class. It shouldnt matter, but sometimes they do.

    *Bug with OSM (Pekin place, where there are no people, Null Pointer exception).*An event reaches a process just as, just before, or just after it is timing out or just as (before / during / after) another process that communicates with it will time out listening to this process for a response. An event reaches a process just as, just before, or just after it is servicing some other event.An event reaches a process just as, just before, or just after a resource needed to accomplish servicing the event becomes available or unavailable.

    *Generate interruptsfrom a device related to the task (e.g. pull out a paper tray, perhaps one that isnt in use while the printer is printing)from a device unrelated to the task (e.g. move the mouse and click while the printer is printing)from a software eventChange something that this task depends onswap out a floppychange the contents of a file that this program is readingchange the printer that the program will print to (without signaling a new driver)change the video resolutionCancel the task (at different points during its completion)Cancel some other task while this task is runninga task that is in communication with this task (the core task being studied)a task that will eventually have to complete as a prerequisite to completion of this taska task that is totally unrelated to this task

    *Send this process another job while one is underway

    Working from 2 browsers

    View \edit record in one browserDelete it in second browserClick \save on the record in 1-st browser

    Click edit simultaneously for the same item from 2 browsers

    *The usual suspects:Make the error several times in a rowDevice-related errors: disk full, Out of menory, Db down, Network downData-input errors: corrupt file, missing data, wrong data

    *Brainstorming with a group of people is a powerful technique. Brainstorming creates new ideas, solves problems, motivates and develops teams. Statement of a problem;Ideas generating;Number of ideas is very important;Forbid on any criticism;3. Ideas grouping and evaluation.

    *Customer-focused, risk-focusedTakes advantage of each testers strengthsResponsive to changing circumstancesWell managed, it avoids duplicative analysis and testingHigh bug find rates

    *The less we know, the more we risk missing.Limited by each testers weaknessesThis is skilled work, juniors arent very good at it.

    *The tester who constantly asks good questions canAvoid blind spotsQuickly think of new test casesConstantly vary our approaches and targetsDiscover holes in specifications and product descriptions

    *