2. Software Testing Software Testing is the process of analyzing a software item to detect differences between existing and required conditions(that is bugs) and to evaluate features of software items. Software Testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. No software can be 100% bug free. The aim of software testing is to give the best product to users/customers with minimum number of bugs/defects. Vikash Mishra(vikashmishra001@gmail.com)
3. Need of Testing To demonstrate software does what it is supposed to do and does not do something which it is not supposed to do. To find defects as early as possible and get them fixed. To meet compliance with contractual or legal requirements Testing should provide sufficient information to the stake holders for decision making regarding release of the software/ system , for the next development step or handover to customers. Vikash Mishra(vikashmishra001@gmail.com)
4. Test Plan Test plan is a document that describes how testing will be accomplished. It is similar to Project Plan. Five key characteristics defined in a Test Plan: Scope & Objectives: Defining what will be covered in a project Resource: What type and number of resources to be used to accomplish the objectives Schedule: Tasks and their schedules. Quality: Standards to be used and/or customized. Risk: Defines in advance what may happen to drive the plan off course, and what will be done to recover the situation. Vikash Mishra(vikashmishra001@gmail.com)
5. Need for Test Plan Discuss issues early. Enables to decide in advance: How a project’s objectives will be met. What resources are available and what resources are required.. Time scales required. Quality desired. Controlling risk. Vikash Mishra(vikashmishra001@gmail.com)
6. Functional Testing and Non-Functional Testing Functional Testing: Functional Testing refers to testing very specific action or function of the code. Functional testing tends to answer the question: CAN WE DO THIS? DOES THIS PARTICULAR FEATURE WORK? Functional Test – white box Tests at micro level of the programs that test each and every implemented functional task, ensuring that all code options are exercised. Requires knowledge of the internal code Functional Test – black box Testing that focuses solely on the outputs generated in response to selected inputs and execution conditions. Requirements are the only test basis and knowledge of the internal code is not required. Vikash Mishra(vikashmishra001@gmail.com)
7. Functional Testing and Non-Functional Testing Non-Functional Testing: Non-Functional Testing refers to that aspect of software that may not relate to specific function or user action such as scalability or security. Non-Functional testing tends to answer the question: HOW MANY PEOPLE CAN LOG IN IT AT ONCE? HOW EASY IT IS TO HACK THE SOFTWARE? Testing that concentrates on the performance of the system like the response time, speed of execution, usability, availability etc. First check for “Functionality” and then for “Performance” Vikash Mishra(vikashmishra001@gmail.com)
8. Four levels of Testing done in any Testing Project Unit Testing:Testing of individual software components or modules. Typically done by the programmer and not by testers, as it requires detailed knowledge of the internal program design and code. May require developing test driver modules or test harnesses. Unit testing is a software verification and validation method in which a programmer tests if individual units of source code are fit for use. A unit is the smallest testable part of an application. Integration Testing:In this type of testing both software component and hardware components are combined together and tested. Testing of integrated modules to verify combined functionality after integration. Modules are typically code modules, individual applications, client and server applications on a network, etc. This type of testing is especially relevant to client/server and distributed systems. Vikash Mishra(vikashmishra001@gmail.com)
9. Four levels of Testing done in any Testing Project System Testing: System testing involves putting the new program in many different environments to ensure program works in typical customer environment. System testing is conducted on complete, integrated system to evaluate the system compliance with its specified requirements. The entire system is tested as per requirements. Acceptance Testing:Performed by customers or user representative. Supposed to be final level of testing and verifies whether product meets the agreed upon product acceptance criteria. Vikash Mishra(vikashmishra001@gmail.com)
10. Black Box Testing Black Box Testing treats system as black box, so it does not use knowledge of internal structure or code. Black-box techniques (also called specification-based techniques) are a way to derive and select test conditions or test cases based on an analysis of the test basis documentation, whether functional or non-functional, for a component or system without reference to its internal structure. Main focus in black box testing is on the functionality of system as whole. Behavioural testing is also used for black box testing. Black-box techniques is also called specification-based techniques. Vikash Mishra(vikashmishra001@gmail.com)
11. Black Box Testing Advantages of Black Box Testing: Tester can be non-technical. Used to verify contradictions in actual system and the specifications. Test cases can be designed as soon as the functional specifications are complete Disadvantages of Black Box Testing: The test inputs needs to be from large sample space. It is difficult to identify all possible inputs in limited testing time. So writing test cases is slow and difficult. Chances of having unidentified paths during this testing. Vikash Mishra(vikashmishra001@gmail.com)
12. White Box Testing White box testing (WBT) is also called Structural or Glass box testing. White box testing involves looking at the structure of the code. When you know the internal structure of a product, tests can be conducted to ensure that the internal operations performed according to the specification. And all internal components have been adequately exercised. White Box Testing is coverage of the specification in the code. Vikash Mishra(vikashmishra001@gmail.com)
13. White Box Testing Need of White Box Testing? To discover the following types of bugs: Logical error tend to creep into our work when we design and implement functions, conditions or controls that are out of the program. The design errors due to difference between logical flow of the program and the actual implementation. Typographical errors and syntax checking. Limitations of White Box Testing: Not possible for testing each and every path of the loops in program. This means exhaustive testing is impossible for large systems. This does not mean that WBT is not effective. By selecting important logical paths and data structure for testing is practically possible and effective. Vikash Mishra(vikashmishra001@gmail.com)
14. Defect Variance of actual result from expected result. The difference between actual behaviour and the desired behaviour as stipulated by the requirements specifications A Defect that causes an error or negatively impacts a user/ customer is categorised as Failure Software does not do something which it is supposed to do. Does something which it is not supposed to do. Vikash Mishra(vikashmishra001@gmail.com)
15. Defect Life Cycle New Opened Review Deferred Assign Duplicate Reopened Fixed Not a defect Retested Closed Vikash Mishra(vikashmishra001@gmail.com)
16. Severity and Priority Severity indicates how bad the bug is and reflects its impact on the product and its users. Priority determines the order in which the product is to fixed. PRIORITY>> SEVERITY Vikash Mishra(vikashmishra001@gmail.com)
17. Software Verification and Validation Verification: Process of evaluating a system or a component whether the products of a given development phase satisfy the conditions imposed on the start of phase. HAVE WE BUILD THE RIGHT SOFTWARE? DOES IT MATCH THE SPECIFICATIONS? Validation: Process of evaluating system or component during or at the end of development process to see whether it satisfies the specific requirements. HAVE WE BUILT THE RIGHT SOFTWARE? IS THIS WHAT CUSTOMER WANTS? Vikash Mishra(vikashmishra001@gmail.com)
18. Retesting and Regression Testing Retest is the act of repeating a test to verify that the found defect has been correctly fixed. Regression Testing is the act of repeating other tests in the parallel area to ensure that the applied fix or change of the code has not introduced other errors or unexpected behaviour. Vikash Mishra(vikashmishra001@gmail.com)
19. Inspection Review and Walkthrough Inspection: It is a technique in which the work product is examined for its compliance to specific standards and also checked against a history of common errors. Review: It is a technique in which the work product is discussed upon by a group of two or more persons and re-examined or revaluated for possible corrections. Walkthrough: It is a technique mostly done on the code developed, where the code is traced manually to monitor the state of the program variables as a way of analyzing the logic. This is Verification portion of Verification and Validation. Vikash Mishra(vikashmishra001@gmail.com)
20. Difference between QA,QC and Testing Quality Assurance: A set of activities designed to ensure that the development and/or maintenance process is adequate to ensure a system will meet its objectives. QA is process oriented. As a QA, you question the ambiguous requirements and prepare proper documentation for the projects. All these practices help in preventing bugs/defects from an early stage. Quality Assurance makes sure you are doing the right things, the right way. Vikash Mishra(vikashmishra001@gmail.com)
21. Difference between QA,QC and Testing Quality Control:A set of activities designed to evaluate a developed work product. QC is product oriented. QC implements the process developed by QA team. QC activities focus on finding defects in specific deliverables - e.g., are the defined requirements the right requirements. Quality Control makes sure the results of what you've done are what you expected. Vikash Mishra(vikashmishra001@gmail.com)
22. Difference between QA,QC and Testing Testing: The process of executing a system with the intent of finding defect. Testing is product oriented and thus is in the QC domain. Testing for quality isn't assuring quality, it's controlling it. Vikash Mishra(vikashmishra001@gmail.com)
23. Thank You VikashMishra Email: vikashmishra001@gmail.com Twitter: http://twitter.com/MishraVikash VikashMishra(vikashmishra001@gmail.com)