Software Quality Assurance Lecture #8 By: Faraz Ahmed.
Post on 26-Dec-2015
220 Views
Preview:
Transcript
Software Quality Assurance
Lecture #8By: Faraz Ahmed
Contents
0Course Outline0Marks Distribution0Fundamentals of Quality Assurance0Discussion0Reference
Static Testing
0 Uses a checklist to identify whether standards are being followed.
0 Code is not actually run for this testing. Skimming of code is done.
0 Can occur in Coding, integrating and deploying.
0 Walkthroughs and inspections are types of static testing
Static Testing
0 Usually done to check completeness (verification aspect)
0Cost of bugs in this phase?
0List of Static testing tools can be found in wikipedia
0TASK #1: Show me how to use any one of the tools available for static testing.
Dynamic Testing
0 Involves actually running the software
0Part of the validation aspect
0Examples include Unit tests, Integration tests, System tests and acceptance tests.
Black box testing
0Takes an external perspective of the software
0Assumes that the complexities do not exist, and just test the system using inputs and checking the outputs.
Black box testing
0Should make use of randomly generated inputs.
0An input range should be provided by the developer.
0Extreme cases should be checked.
0Outliers should be checked for robustness.
0Stress and crash testing should also be performed.
Black box testing
0Also known as functional testing
0Examples are stress testing, recovery testing and user acceptance testing.
0Divided into two types: User required and User not required.
BB where user not required!
0Functional Testing: the software is tested for the functional requirements.
0Stress Testing: The application is tested against heavy load such as complex numerical values, large number of inputs, large number of queries etc.
BB where user not required!
0Functional Testing: the software is tested for the functional requirements.
0Stress Testing: The application is tested against heavy load such as complex numerical values, large number of inputs, large number of queries etc. while depriving the system of resources.
BB where user not required!
0Load Testing : The application is tested against heavy loads (representative loads/ Maximum sustainable loads) or inputs such as testing of web sites in order to find out at what point the web-site/application fails or at what point its performance degrades.
BB where user not required!
0Ad-hoc Testing: This type of testing is done without any formal Test Plan or Test Case creation. helps testers in learning the application prior starting with any other testing.
0Usability Testing
BB where user not required!
0Smoke Testing: is done in order to check if the application is ready for further major testing and is working properly without failing up to least expected level.
0Recovery Testing: done in order to check how gracefully the application can recover against any type of crash or hardware failure etc.
BB where users required!
0User Acceptance Testing: the software is handed over to the user in order to find out if the software meets the user expectations and works as it is expected to.
BB where users required!
0Alpha Testing: the users are invited at the development center where they use the application and the developers note every particular input or action carried out by the user. Any type of abnormal behavior of the system is noted and rectified by the developers.
BB where users required!
0Beta Testing: In this type of testing, the software is distributed as a beta version to the users and users test the application at their sites. As the users explore the software, in case if any exception/defect occurs that is reported to the developers.
0How are the defects reported?
White box testing
0Knowledge of how the system is implemented.
0Analyses data flow, control flow, coding practices and exception handling.
0Focus on security testing and looking for vulnerabilities like sql injection
0A tester has to think like an attacker/hacker.
White box testing
0TASK #2: What do you understand by Gray-box testing?
0Testing techniques: 0 Data-Flow Analysis0 Code-based fault injection0 Abuse cases (utilizing known attack patterns) 0 Code Coverage Analysis (eliminate risks such as trojan
horse)
White box testing
0TASK #3: Explore a coverage analysis tool.
Unit Testing
0The goal of unit testing is to isolate each part of the program and show that the individual parts are correct
0Test driven development ?
Requirements Testing
0 If the requirements are wrong, there would be no outcome of testing the application.
0The quality gateway: as soon as we get a requirement, we outline its possible defects and try to gauge whether they would disrupt our design.
0Make the requirements measurable.
Quantifiable requirements
0Make the requirement quantifiable, so that the solution can be measured.
0Example might be the time it takes a page to load.
0Consider the question, what would it take to not meet the requirement?
Non-Quantifiable requirements
0We can convert these into quantifiables by going through what the client might mean from them.
0Consider the question, what would it take to not meet the requirement?
Regression Testing
0Regression testing : testing which seeks to uncover bugs. Regression bugs occur whenever software functionality that previously worked as desired, stops working or no longer works in the same way that was previously planned.
0Common methods of regression testing include re-running previously run tests
Regression Testing
0Local - changes introduce new bugs.
0Unmasked - changes unmask previously existing bugs.
0Remote - Changing one part breaks another part of the program
Error handling testing
0 It determines the ability of applications system to process the incorrect transactions properly
0Errors encompass all unexpected conditions.
0 In some system approx. 50% of programming effort will be devoted to handling error condition.
Manual testing
0To test the system more thoroughly
0There is no alternative to it.
Quiz
0Why doesn’t the developer do the black box testing?
top related