"What have you all been doing for the last few years in this organization?"
Chorus: "We test for functionality of the software?"
"That's nice! Why do you think it is called /functionality/?"
"OK, what is a function?"
"No problem. Let's fix it. Where else have you heard the word /function/? Math? So we all might have studied f(x) = y and that could have been our introduction to working with functions. Later we moved on to parabolas and hyperbolas which had functions of different behavior and complexity. So what we are doing when we say /functional testing/ is, we provide inputs X to a function f(X) and monitor Y. We claim to know that f(X) should be Y and we also claim to know the range of Y. So, that forms our oracle to find bugs with functional testing. /Y/ doesn't necessarily need to be a numeric value in functional software testing".
"So, what else do you test beyond functionality?"
- "Our bug reports get rejected if we report non functional bugs so we don't test for it",
- "There is a team in US who is supposed to do it"
- "When we find a non functional bug and report it, we are asked why did we spend time deviating from the scope given to us"
- "We have enough test cases in functional testing that we don't have time for other kinds of testing"
"Let me explain. In Software Testing, you provide quality related information to help the management take better informed decisions. I think in Quality Assurance, you claim to provide confidence to the management that you have checked and tested a lot of things (not just software) and things didn't change after your checks and hence its OK to use the word /assure/ with another word /quality/."
- "I think we do a mix of both"
- "Our designation is Software Tester but we are internally called QA"
- "I don't know. I am doing my job and earning my paycheck"
- "Yikes, this is confusing"
- "I thought Testing == QA"
"I appreciate the diversity. Tying it back to our previous topic, irrespective of what you do (Functional Testing or Functional QA, the information you provide to your management is so weak as compared to what you were supposed to be doing."
"How is that?"
"Test coverage is the extent to which we have modeled and tested the system -- Michael Bolton. You appear to have modeled the system for functionality and you could model your system in more ways within and beyond the scope of functionality to learn more about the product and to be of more value to your management. Assuming you are interested to do that. Here is a list of thing that you might want to focus on:
Product Elements Coverage
- Scenario based
- Claims based
- User based
- Flow based
"That looks like a lot of thing to do and I know these are important for quality. We don't have time for functionality and how can we think about all these things?"
That's a nice thing that you realize you don't have time even for functional testing to be done. How about asking the management to re design and re think about the time that is given to you and the value you can deliver?
"I know for sure. They won't allow us to do all this"
"Interesting. Is that your assumption or a fact?"
"That's what is going to happen if we ask and we know that."
"Have you tried it?"
"No, but we know them very well."
"How much do you think they know about you and your skills?"
"They hardly know about me and my skills."
"So do you about them. If they assume you are not skilled to do other kinds of testing and also assume you heard them say /We are sure, they don't know to test beyond functionality/, how would you react to it?"
"I would show to them that I can"
"How about giving them a chance to show that they too can change?"
- Give each of your colleague a chance, explain to them your problem.
- Give yourself a chance, focus on your test coverage and explore a life beyond functionality.