Published on


Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. Software Reliability & Software Testing SE
  2. 2. SE What is 'Software Quality Assurance'? Software QA involves the entire software development PROCESS - monitoring and improving the process, making sure that all agreed-upon standards and procedures are followed, and ensuring that problems are found and dealt with. It is oriented to 'prevention'. What is 'Software Testing'? Testing involves operation of a system or application under controlled conditions and evaluating the results. The controlled conditions should include both normal and abnormal conditions. Testing should intentionally attempt to make things go wrong to determine if things happen when they shouldn't or things don't happen when they should. It is oriented to 'detection'. SOFTWARE TESTING
  3. 3. SE <ul><li>Testing is a process to execute a program with the intention of finding an error. </li></ul><ul><li>Testing demonstrates that software is working according to the specifications. </li></ul><ul><li>Testing improves the quality and reliability of a software. </li></ul>Why Testing ??? (Importance of testing)
  4. 4. SE Black box testing It is not based on any knowledge of internal design or code. Tests are based on requirements and functionality. White box testing It is based on the knowledge of the internal logic of an application's code. Tests are based on coverage of code statements, branches, paths, conditions. Unit testing Smallest unit (module) is tested individually to test particular functions or code modules. Typically done by the programmer and not by testers, as it requires detailed knowledge of the internal program design and code. Incremental integration testing It is used for continuous testing of an application as new functionality is added. It requires that various aspects of an application's functionality be independent enough to work separately before all parts of the program are completed; done by programmers or by testers. Types of Testing Techniques
  5. 5. SE Integration testing Testing of combined parts of an application to determine if they function together correctly. The 'parts' can be 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. Functional testing Black-box type testing geared to functional requirements of an application; this type of testing should be done by testers. This doesn't mean that the programmers shouldn't check that their code works before releasing it. System testing Black-box type testing that is based on overall requirements specifications; covers all combined parts of a system. Acceptance testing Final testing based on specifications of the end-user or customer, or based on use by end-users/customers over some limited period of time.
  6. 6. SE What is a Test case ? A test case is a document that describes an input, action or event and an expected result, to determine if a feature of an application is working correctly. <ul><li>Test cases are the set of inputs to execute the program. </li></ul><ul><li>A good test case is one that has high probability of finding an error. </li></ul><ul><li>A successful test is one that uncovers yet-undiscovered error. </li></ul>
  7. 7. SE <ul><li>It is a testing technique that requires explicit knowledge of the internal workings of the item being tested. </li></ul><ul><li>Test cases are design to test all paths, loops, logical decisions and internal data structure. </li></ul><ul><li>Major concern here is to ensure that each statement, path, loop with in the module is executable. </li></ul>White Box Testing Technique - Example <ul><li>Path Testing </li></ul><ul><li>Control Structure Testing </li></ul><ul><li>Loop Testing </li></ul><ul><li>Internal Data Structure validation </li></ul>
  8. 8. Sample Test Cases… SE Input Set Expected Output Actual Output Num_1=5, Num_2=10 Num_2 is Larger Num_1=5, Num_2=5 Numbers are Equal Num_1=10, Num_2=5 Number 1 is Larger Num_1=a, Num_2=10 Error “Incorrect Format” Num_1=5, Num_2=a Error “Incorrect Format”
  9. 9. Description <ul><li>All the paths were forced to execute by given set of inputs. </li></ul><ul><li>Result: All the paths with in the module are fully functional. (Mention if there was any problem). </li></ul><ul><li>  </li></ul>SE
  10. 10. Black Box Testing <ul><li>System is treated as a black box, that is nothing is visible from outside. </li></ul><ul><li>It doesn't explicitly use knowledge of the internal structure or programming. </li></ul><ul><li>Test cases are designed to test all functional requirements. </li></ul><ul><li>What System must do is the major concern here. </li></ul>SE
  11. 11. Black Box Testing Contd…. <ul><li>Test cases are designed to examine </li></ul><ul><ul><li>In correct or missing function </li></ul></ul><ul><ul><li>Error in interface </li></ul></ul><ul><ul><li>Error in data structure </li></ul></ul><ul><ul><li>Error in database access </li></ul></ul><ul><ul><li>Initialization and termination error. </li></ul></ul>SE
  12. 12. Incorrect Function - Example Test Case SE int user_login(String,String) Input Set Expected Output Actual Output User_Name=NULL Password=NULL Display appropriate error message User_Name=Invalid Password=Invalid Display appropriate error message User_Name=Valid Password=Invalid Display appropriate error message User_Name=Valid Password=NULL Display appropriate error message User_Name=Valid Password=Valid Display login screen. New screen opens up Description: Function User_Login(String, String) Result: Mention if there was any problem.
  13. 13. Error in Database Access <ul><li>Whether connection is created properly or not. </li></ul><ul><li>Whether records are inserted properly or not. </li></ul><ul><li>Whether records are deleted properly or not. </li></ul><ul><li>Whether query is handled properly or not. </li></ul>SE
  14. 14. Path Testing <ul><li>To ensure that all the paths with in the module have been exercised. </li></ul><ul><li>Using path testing logical complexity of a program can be derived. </li></ul><ul><li>Using the programming code a flow graph could be created. </li></ul><ul><li>Flow graph is used to determine the minimum number of paths that must be tested. </li></ul>SE