.Net Application Testing


Published on

  • 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

.Net Application Testing

  1. 1. .Net Application Testing By Sam Nasr August 24, 2004
  2. 2. Types Of Testing  Functionality Testing 1. Unit 2. System Integration 3. Regression 4. Performance 5. Customer Acceptance  Security Testing
  3. 3. Why Test?  credibility, credibility, credibility  For every 1,000 lines of code, 8 bugs go undetected.  Improve customer relations.
  4. 4. Why Test? Phase Cost of Error Removal Definition $1 High Level Design $2 Low Level Design $5 Code $10 Unit Test $15 Integration Test $22 System Test $50 Post-Delivery $100+
  5. 5. Black Box Testing  The concept of testing where the tester knows nothing about the process being tested.
  6. 6. Unit Testing  Performed by the developer, prior to delivering code to testers.  Using unit test cases targeting the new code.
  7. 7. System Integration Testing  Used to determine how well code interfaces with other code in a given system.  Performed by testers, after unit testing.
  8. 8. Regression Testing  Ensuring new code didn’t break existing functionality.  Performed by testers, after unit testing.
  9. 9. Performance Testing  Testing for adequate reponse time under heavy traffic.  All system limitations must be defined.  Performed by testers, after unit testing.
  10. 10. Customer Acceptance Testing  Performed as a formal turnover to a customer.  Can also be considered as post- implementation testing.
  11. 11. Security Testing  Ensuring data cannot be maliciously manipulated.  Ensuring user cannot bypass critical sections of the application.  Test for parameter checking with browser JAVA Script enabled AND disabled.  Test for safeguards against hacker attacks (i.e. SQL Injection, XSS, One-Click, etc.)  Utilize services such as HackerSafe.com
  12. 12. Creating Test Plans  Use Functional Requirements as a guide.  Test for all types of data: numeric, alpha, and alpha-numeric  Test for all ranges: 0- 9, negative, decimals, etc.  If using date/time stamp, test for mid- night/time-zone cross over.  Take nothing for granted!
  13. 13. Testing Environment Testing Environment should be identical to the production environment in every way. – Hardware (memory, CPU(s), etc.); CPUs are especially important when testing a threaded process. – Software (OS, SPs, drivers, IE/IIS versions). – Application (copy of production DB, data files, etc.)
  14. 14. Testing Tips  Define Testing turnover procedures (turnover schedule, file structure, registry layout, etc.)  Define parties responsibe for approving different types of testing.  Test for memory cleanup when process is completed or aborted.
  15. 15. Testing Tips  Always test processes after implemented in production to ensure all files and settings are implemented correctly.  Create dummy data that will test the process end- end, but not interfere with production data.  Identify invalid part numbers, invoice numbers, etc and use them for testing.
  16. 16. Testing Tips  Are error messages meaningful to a developer and non-developer?  Are log files meaningful to a developer and non-developer?  Test for broken network connections, DB disconnects, and File Not Found conditions
  17. 17. Automated Test Tools  Mercury (http://www.mercury.com)  Empirix (http://www.empirix.com)  Segue Software (http://www.segue.com)
  18. 18. Automated Test Tools  N-Unit  Microsoft Application Center Test (ACT)  Custom Made Testing Tools
  19. 19. More Info…  Effective Software Testing by Elfriede Dustin  How to Break Software by James Whittaker  Northern Ohio Software Quality Assusrance Association (www.nosqaa.org)