Software Testing - Emory University
Transcript of Software Testing - Emory University
Software Testing Defined
Software testing is the process of verifying & validating that a program or application:
Meets technical specifications
Meets business requirements
Works as expected
Thursday, November 18, 2010
Verification vs. Validation
Verification: Have we built the program correctly?
Does the software match the specification?
Validation: Have we built the right program?
Does it actually do what the customer wants it to do?
Thursday, November 18, 2010
General approach to testing
Black box: no knowledge of internal implementation
White box: tester has access to the internal data structures & algorithms
Gray box: a combination of the above
Thursday, November 18, 2010
Unit level
Tests created to exercise the algorithm being developed
Performed by the developer
Finds defects as early as possible
Thursday, November 18, 2010
Integration level
Testing that verifies the interfaces between components against software design
Exposes defects in interfaces and interactions between components
Progressively larger groups of components are tested until the software works as a system
Thursday, November 18, 2010
System level
System-level testing focuses on a completely integrated system to verify that it meets requirements
Thursday, November 18, 2010
Types of testsAlpha & Beta
Regression
Usability
Security
Performance
Internationalization (I18n) & localization
Acceptance
Thursday, November 18, 2010
Alpha & Beta type
This testing focuses on how the customer uses the program
Alpha and beta releases are tested by the target customers
Purpose is to gather feedback
Thursday, November 18, 2010
Regression type
Focuses on finding defects after a major code change has occurred
Seeks to uncover software regressions (old bugs that have reappeared)
Thursday, November 18, 2010
Usability type
Designed to determine if the user interface is easy to use and understand
Thursday, November 18, 2010
Security type
Essential for software that processes confidential data to prevent system intrusion by hackers
Thursday, November 18, 2010
Performance typeLoad, stress, and endurance tests
Determine how the system performs under a particular workload
Can validate and verify other quality attributes of the system:
Scalability
Reliability
Resource usage
Thursday, November 18, 2010
Internationalization & Localization type
Determines that the application still works even after it has been:
Translated into a new language
Adapted for a new culture, different currency or time zone
Thursday, November 18, 2010
Acceptance type
Purpose is to verify issues encountered in Alpha/Beta testing have been resolved
Normally performed by the customer in their environment
Often known as user acceptance testing (UAT)
Thursday, November 18, 2010
Testing process
Tied to the development process in use:
Waterfall
Modified waterfall
Agile or Extreme
Thursday, November 18, 2010
Waterfall test process
Testing performed by an independent group AFTER all functionality is developed
DEV tosses ‘finished’ product over the wall to QA at set milestone dates
Testing is considered the last stage
Definitely ‘old school’
Thursday, November 18, 2010
Modified waterfall process
Testers are a bit more integrated with development team
Test activities begin earlier in the project
Testing is more of a continuous process
Thursday, November 18, 2010
Agile/Extreme process
Testers more fully integrated with DEV team
Unit tests are created by DEV before coding; focus is on passing unit test
DEV produces regular interim builds for integration & system-level tests
Testing is a continuous process
Thursday, November 18, 2010
General testing cycle
Requirements analysis (determine what can be tested)
Test planning (strategy, test plan, test bed)
Test development (procedures, scenarios, cases, scripts)
Test execution (following the above)
Test reporting (results and metrics)
Thursday, November 18, 2010
Testing cycle (cont.)
Test result analysis (defect analysis)
Defect retesting (after DEV has fixed)
Regression testing
Test closure (capturing results, logs, lessons learned for archive)
Repeat
Thursday, November 18, 2010
ReviewTest approach (black, white, gray box)
Levels of testing (unit, integration, system)
Types of testing (alpha & beta, regression, usability, security, performance, I18N, acceptance)
Testing process (waterfall, modified waterfall, agile/extreme)
Test cycle
Thursday, November 18, 2010