= Test Running help = == What is Manual Testing? == When developing software, particularly larger pieces of software like say a whole operating system, you can often unintentionally add [https://simple.wikipedia.org/wiki/Software_bug bugs and issues] when you are adding in new features. When you break a pre-existing feature that was previously working correctly, this is called a [https://en.wikipedia.org/wiki/Software_regression regression]. You can find regressions and software bugs in general by [https://simple.wikipedia.org/wiki/Software_testing testing the software] to see what is working and what isn't. This is done by either getting the computer to do it or by doing it yourself. Because bugs and regressions can easily slip into software, it is important to test your software before releasing it. However if you don't have a predefined plan on what to test and how to go about doing it, then you might not test everything in the same way everytime, so you are bound to mess up and release software filled with regressions and crippling bugs. It becomes even more messy if you get other people to help you test your software, as they might not know about all the features of the software or how to use it. When you or someone else is doing the testing and not the computer, this is called [https://en.wikipedia.org/wiki/Manual_testing manual testing]. The combined list of instructions and other details is called the [https://en.wikipedia.org/wiki/Test_plan Test plan]. By using a Test Plan you can make the testing of your application more consistent, increasing the chances of you catching regressions before it's too late. == The Test Plan == === The anatomy of a Test Plan === A test plan is made up by a few constructs: * The ''user action'' is the feature that is being tested. * The ''precondition'' or ''prerequisite'' is what the tester needs to do before they can properly test that particular feature. * The ''steps'' are the step by step instructions on how to carry out the test correctly. * The ''expected results'' or ''expected outcome'' is what is actually ment to happen at the end of the feature test. * Together these form a ''test case'', which when grouped together is a ''test plan''. === Example test case on LeanTesting === [[Image(leantesting.jpg, 900px)]] Interacting with the Test Case: * Clicking on the arrow in the far-top-right will show or hide the details of the test case * Clicking on "Report Bug" will allow you to report something that you think is a bug or regression * Clicking on "Result" will allow to report the outcome of the test * The four lines or 'hamburger' sign shows that there multiple steps if it is highlighted in blue * Clicking on the paperclip allows you to add an attachment such as a screenshot of a test in progress * Clicking in the text box allows you to comment on the results of the test * Clicking on the "ℹMarkdown styling is allowed" teaches you [https://www.markdowntutorial.com how to use markdown] === The four results === The following are the four available results that you can choose from: * ✔ : Pass - You were able to successfully complete this test case without problems * ❌ : Fail - The outcome was different to the expected result * CNT : Could Not Test - The test itself was outdated or otherwise in error * N/A : Not Applicable - The feature or function is not available to be tested on your system