190 likes | 397 Views
.Net Application Testing. By Sam Nasr August 24, 2004. Types Of Testing. Functionality Testing 1. Unit 2. System Integration 3. Regression 4. Performance 5. Customer Acceptance Security Testing. Why Test?. credibility, credibility, credibility
E N D
.Net Application Testing By Sam Nasr August 24, 2004
Types Of Testing • Functionality Testing 1. Unit 2. System Integration 3. Regression 4. Performance 5. Customer Acceptance • Security Testing
Why Test? • credibility, credibility, credibility • For every 1,000 lines of code, 8 bugs go undetected. • Improve customer relations.
Black Box Testing • The concept of testing where the tester knows nothing about the process being tested.
Unit Testing • Performed by the developer, prior to delivering code to testers. • Using unit test cases targeting the new code.
System IntegrationTesting • Used to determine how well code interfaces with other code in a given system. • Performed by testers, after unit testing.
Regression Testing • Ensuring new code didn’t break existing functionality. • Performed by testers, after unit testing.
Performance Testing • Testing for adequate reponse time under heavy traffic. • All system limitations must be defined. • Performed by testers, after unit testing.
Customer Acceptance Testing • Performed as a formal turnover to a customer. • Can also be considered as post-implementation testing.
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
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!
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.)
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.
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.
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
Automated Test Tools • Mercury (http://www.mercury.com) • Empirix (http://www.empirix.com) • Segue Software (http://www.segue.com)
Automated Test Tools • N-Unit • Microsoft Application Center Test (ACT) • Custom Made Testing Tools
More Info… • Effective Software Testing by Elfriede Dustin • How to Break Software by James Whittaker • Northern Ohio Software Quality Assusrance Association (www.nosqaa.org)