270 likes | 434 Views
Software Testing. Functional and Non-functional testing. Functional testing is done to check whether or not the requirements have been implemented. Non-functional testing is done to check whether or not non-functional requirements have been met, and reflects the quality of the product .
E N D
Functional and Non-functional testing Functional testing is done to check whether or not the requirements have been implemented. Non-functional testing is done to check whether or not non-functional requirements have been met, and reflects the quality of the product.
Functional Testing Examples • Smoke and Sanity Testing • Unit Testing • Integration Testing • Interface Testing • System Testing • Regression Testing
Non-Functional Testing Examples • Installation Testing • Compatibility Testing • Performance Testing • Usability Testing • Security Testing • Localization and Internationalization Testing
Destructive Testing Destructive testing is done to try to break the system or sub-systems of a software product, revealing vulnerabilities in the software that may need to be fixed or accounted for.
Destructive Testing No Yes Input number: Three Enter a number between 0 and 100: -1
Software Performance Testing • Performance Testing is done to see how fast a system performs under different workloads. Includes • Load Testing • Stress Testing • Capacity Testing
Installation Testing • Quality Assurance • Customer focus • Installation process usability • User training requirements • Training typically only for custom software.
Installation Testing • Hardware focus • Minimum hardware requirements • Results of failure to install on hardware • ie. What happens on installation crash?
Compatibility Testing • Tests interoperability of software with: • Operating Systems • MAC, Windows, Linux, etc • Hardware • Complex software won’t run the same on a Pentium 4 processor as it will on an Intel i5. • Other software • Ex. Antivirus programs rarely run side by side. • Previous versions
Compatibility Testing • Other compatibility issues • Network Bandwidth • Network speed can be a bottleneck if the software has to communicate with other systems. • I/O • Printer • Keyboard • What will added button functionality do? • Browser (web app) • http://www.youtube.com/watch?v=gPN62ywK1ww
Sanity Testing • Quick, informal test to verify the direction of development • Pros • Speed • Easy to find large deviations from development path • Cons • Won’t find all problems • Won’t find any small problems
Sanity Testing • Usually used to decide if further testing is needed before reformulating the software. • Used with a smoke test • Typically tests limited to simple input and output. • Example: Verify that when a file is saved the file is actually changed. Often trivial mistakes overlooked with other tests can be found with sanity testing.
Smoke Testing • Initial Testing used with Sanity Testing • Performed after changes made • Preliminary test before further testing and release • Check for “smoke through the cracks,” or functionality of key features after a “fix.” • Cost and time effective
Usability Testing Testing to see how user friendly the software is Asks users what they liked and disliked about the software
Accessibility Testing A formal type of testing to check if the software can be used by people with disabilities.
Security Testing This type of testing checks how secure the software is to many types of cyber-attacks. It can test the authentication process a software uses to determine how secure the program is.
Internationalization and localization • Purposes • Verify the system supports internationalization • Verify that localizing the system does not break it • Automatic testing using pseudolocalization • Manual testing of translation to human languages
Psuedolocalization • Account Settings => [!!! ÀççôûñţŠéţţîñĝš!!!] • This makes the strings readable, but includes problematic characteristics • Length, language direction, unusual characters
Problems to find Out of context translations Dynamically generated strings Non-Localized images
Development testing Reducing the risks, time, and costs of software development with synchronized application of defect prevention and detection strategies. Prevent as many defects as possible Expose defects immediately after introduction
Development testing activities Unit testing Peer code review Traceability
A/B testing • Commonly used with online traffic and advertising • Compares two variants with the goal of maximizing an “outcome of interest” • Click-rate, purchase-rate, etc
Citations http://en.wikipedia.org/wiki/Software_testinghttp://en.wikipedia.org/wiki/Development_Testinghttp://en.wikipedia.org/wiki/A/B_testing http://msdn.microsoft.com/en-us/library/bb924357.aspx http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=01652020 http://www.softwaretestingclass.com/functional-testing-vs-non-functional-testing/ http://www.softwaretestingsoftware.com/all-types-of-software-testing/