= Ad Hoc testing help = == What is ad hoc 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 getting a real person to do it. However you have to either give the computer or a person (who you hired to be your bug tester) lengthy step by step instructions on what they need to check and how to do it. ''Ad hoc'' is a [https://en.wiktionary.org/wiki/ad_hoc Latin term meaning] impromptu, spontaneous or 'on the spot' behaviour and action; therefore [https://en.wikipedia.org/wiki/Ad_hoc_testing ad hoc testing] means that there is no formal plan, that the tester creates their own plan and simply records the bugs they found and how they found them. However there is a downside to ad hoc testing, it is pointless if the bug tester does not give instructions on how to reproduce bugs they find, otherwise developers would not be able to study them further. Plus if testers don't report what features they have tested, then developers don't know if a features is working or if it was just not tested by the bug tester. == Generic questions to help find bugs== * Do all the buttons do what they are expected to do? * Do the menu bar items work as intended? * Is any of text in the application partially obscured or hard to read? * What happens when you change the system font size? * Does the software have a modern icon or does it have an old 90s style BeOS icon? * Does it have a Haikuports recipe file? * What happens if you try to open clearly non-supported files, like say trying to open a video in a image viewer? * Does the documentation link to the right website and bug tracker? * Does the Haikuports recipe file link to the right website and bug tracker? * Does the application have localisation support? (Can you change the language used by the application?) * What happens if you resize the application to be really small or really large? * Can you drag and drop files onto the application in order to open them? == How to brainstorm ideas for enhancements == 1. You first need to ask your self, 'what type of application is this?' and 'what is the purpose of this application?'. 1. Once you have done this, then you should try to work out if you have used any similar applications on Windows, Mac or Linux. 1. What features or functions did that application have that maybe this one does not have yet ? 1. Check Wikipedia for other applications in this category. They will often have lists of similar software (i.e. [https://en.wikipedia.org/wiki/List_of_debuggers List of debuggers]) and sometimes even a feature comparison of the different software (i.e. [https://en.wikipedia.org/wiki/Comparison_of_debuggers Comparison of debuggers]) 1. Try look on [http://alternativeto.net AlternativeTo] for alternative software on other operating systems. 1. Have a look at the blurb and the sales pitch of other software to see what features they list. 1. Download one or two of the more popular applications on the operating system that you normally use and test their features out. 1. Try ask users on [https://discuss.haiku-os.org/c/Development/application our forums] what type of features that would want from that type of application.