Skip to main content

How will you test a vending machine?

To test any software system, first you need the software requirements specification. So if you
are asked to test a system, ask for the software requirements specification first. If there is no SRS,
then you cannot test anything because you do not know what constitutes correct behavior.
Now for the Vending machine. After getting the SRS, take each requirement and expand it into test
cases.
When a quarter is inserted, the user is asked to choose an item.
When an item is chosen, the item will fall through slot.
If the item is unavailable, the user will be told so and asked for another choice.
If the user hits cancel, the money is refunded.
Correct change will be made if the user puts in more than the purchase price.
Additional change will be requested if the user puts in less than purchase price.
Then proceed to test these requirements one at a time, using multiple choices and money inputs.
The following questions may also be asked in conjunction with the original question:
How about if a person kicks the vending machine?
What if there is a power outage??
What if the machine is taken to Saudi Arabia? What changes should be done?
As the vending machine can be simulated with a finite state machine, with the states representing
different status of the machine (e.g. how much money has been inserted), we can potentially
automated testing by employing model-based testing technique (if this task needs to be performed
repetitively).

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into /opt/course/1/context_default_no_kubectl.sh , but without the use of k

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checking a shared sec