Software testing provides stakeholders with information about the quality of a product or service. It employs various techniques with the intent to identify failures during, before, and after software deployment.
As in mathematics, it might become necessary to test the logic of a program to make sure it is producing the correct results. For example, if I write a program that takes four variables (Integer One, Integer two, Integer three, and integer four) and calculates an output variable (resultOut), using the formula: resultOut=integerOne+ (IntegerTwo*IntegerThree)-integerFour. Assuming I input the values 2, 3, 4, and 5, and the value out computes to 9, instead of 15, then it means there is a logic error in my program. I will need to test the logic of my program. In other words, I will need to prove why the answer should be 15, not 9. Proofs are not only useful in mathematics but also in computer science. Their application in computer science includes error-checking programs, demonstrating that the operating system is secured, and making sure specifications are followed (Rosen, K. H., 2011). An example of a proof method is proof by induction. Proof by induction consists of steps that must be justified. It is used to show that all elements in an infinite set have a certain property. For example, to prove that 1+2+3+…..+p=p (p+1)/2, we need to take two steps, the first step is the basis and the second step is the inductive step. Similarly, in software testing, we need to test individual parts of the software. When we take a random piece of code, it should match a required test case. All units have to be tested based on individual models to make sure each functionality is working properly.
(1)This is a post discussion, and i need response to it?
In this weeks’ discussion we were tasked with choosing from the various types of proofs were learned about this week and explain how we might apply that said proof to a piece of software to ensure that it meets the desired specifications. To start for my software example, I decided to choose a software that would help with grading students work on a “bell curve” grading scale. This is a scale that takes a students average score and grades the other students in relations to that score and the number of students in the class for accuracy. This concept is based of what’s called the “Gaussian distribution” developed by Carl Friedrich Gauss in 1809.
The proof that I would use in order to ensure that the software met requirements would be a proof by using cases. The reason for this is due to the fact that the possibilities are vast this would be the most reasonable validator. In our reading of “Discrete Mathematics and its applications (7th ed.)” by Rosen, K.H. (2011) it says in section 1.8 pg. 94 “when it is not possible to consider of cases of a proof at the same time, a proof by cases should be considered.” In this particular situation the proof by cases would range from: How to grade the other students based on certain averages from the low results where the particular average is not possible to start from based on the number of “x” students where everyone would pass, the same for the maximum average where a certain percentage of students would fail or all fail, and also the fluctuation of the number of students which could drastically change the results and what is the minimum and maximum number of students allowed in order to get results without bias.
When figuring out these proofs to determine that your software is meeting requirements in regard to a development strategy would end up being the “Requirement Analysis” step or phase of development. This is because we are still trying to find out the feasible parameters for the software to work before we begin implementation.
(2)These another Post that i will need a response to?
the response should just be 1 paragraph.