Episode 008 - What is Software Testing? - The Evil Tester Show

Topic created · 1 Posts · 91 Visualizações
  • What is Software Testing?

    Hard Question. But many people want easy answers. I do provide some easy answers but I encourage you to find your own answers.

    Interview answers

    ISTQB

    ISTQB foundation syllabus says “Software testing is a way to assess the quality of the software and to reduce the risk of software failure in operation.”

    https://www.istqb.org/downloads/send/51-ctfl2018/208-ctfl-2018-syllabus.html

    ISTQB Glossary Definition

    glossary was down when I checked image

    Wikipedia - Software Testing

    https://en.wikipedia.org/wiki/Software_testing

    “Software testing is an investigation conducted to provide stakeholders with information about the quality of the software product or service under test.[1] Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation.”

    Cem Kaner

    Referenced from wikipedia

    http://www.kaner.com/pdfs/ETatQAI.pdf

    “Software testing is an empirical, technical, investigation conducted to provide stakeholders with information about the quality of the product or service under test”

    Go Meta to the question

    • who is asking the question?
    • did they ask the right question? perhaps they want to know what you do, rather than what software testing is?
    • what are they going to do with the answer?

    who is asking the question?

    • all sales pitches, are about needs, value, want, risk, fear

    Issues with Definitions

    Prescriptive

    Treat them as descriptive.

    Allow for multiple descriptions.

    Hard question

    Change.

    Identify with a role. Definition covers everything you do.

    Identify with multiple roles, or a meta role.

    My working definition

    Meta: “comparing models of the thing with the thing”

    System:

    comparing models of system with observed interactions of the system

    for the purpose of….

    evaluating the comparson and refining the model

    A few weeks ago this was:

    “ Software Testing is a process where we compare a model of the software to the software (or another model of the software) for the purposes of refining the model and identifying changes that could be made to the software. “

    Why do we care?

    • why do we care what it is? should we care more about what we achieve by testing software and how we do it?
    • make your own definition

    My own definition explored

    Software Testing is a process where we compare a model of the software to the software (or another model of the software) for the purposes of refining the model and identifying changes that could be made to the software.

    • where does model 1 “a model” come from?
      • requirements
      • stated needs/wants/documentation
      • comparison to other systems
      • exploration
    • why “another model” and not just the software?
    • how do we compare?
      • investigation
      • experimentation
      • exploration and discovery
    • what does refining the model mean?
      • expanding, because I learn more
      • amending, because the model is incorrect
    • what changes to the software?
    • why “could be made”?
    • why aren’t we doing it to ‘confirm’ the model?
      • That happens as a side-effect and is less interesting than expanding and refining the model.

    Often we talk about: bug, defect, error, failure - these are noticing comparison failures

    Diagram

    Imagine a venn diagram with two overlapping circles

    • model <-> Software

    really it is

    • model <-> Observed Behaviour Software (which is a model)

    and so becomes

    • model <-> model

    Because when we “test the software” we are really working with our observed physical model of the software, it is still a model, it is our interpretation of the software, to the degree that we can observe it and the accuracy of our observation.

    But we say software.

    Sharing your definitions

    People compare and contrast to ‘defend’ their model.

    Models are a representation of belief.

    Having multiple models, accepting multiple definitions, for different audiences.

    You are different audiences at different times.

    Keep refining your definition

    Build your own definition.

    Go meta.

    Go specific for the context you are working in.

    Go specific for the task that you are working on.

    Having THE definition, is less important than continuing to revise and expand your definition. To support your communication with others. And to aid your thinking and growth.

    https://eviltester.com/show/008-what-is-testing/