18 System Testing
18 System Testing
These lecture slides are copyright (C) Marty Stepp, 2007. They may not be rehosted,
sold, or modified without expressed permission from the author. All rights reserved.
1
Outline
extreme programming
2
eXtreme Programming
eXtreme Programming (XP): A software
development approach for small teams on risk-prone
projects with unstable requirements.
created by Kent Beck: Extreme Programming Explained
Testing is a core aspect of Extreme Programming
write unit test code first - before writing the application code
acceptance tests are preferrably automated, and are modified and
rerun for each of the frequent development iterations
QA and test personnel are an integral part of the project team
detailed requirements documentation is not used; frequent re-
scheduling, re-estimating, and re-prioritizing is expected
3
Build tests
build tests (AKA check-in tests)
as code is checked in, these tests (often unit tests) are run
helps find bug regressions
tools
BuildBot: http://buildbot.sourceforge.net/
SVNAnt: http://subclipse.tigris.org/svnant.html
Apache Harmony:
http://harmony.apache.org/subcomponents/buildtest/index.html
4
UI testing ("acceptance")
automated UI testing ("automation")
scripts and such that use your app and look for failures
a black-box system test
Selenium: http://www.openqa.org/selenium/
manual tests
human beings click through predetermined paths
need to write down the specific tests each time
ad-hoc tests
human beings are "turned loose" on the app to see if they can
break it
5
Load testing
load testing
How many hits/requests should the system be able to handle?
What should be its performance under these circumstances?
tools
JMeter: http://jakarta.apache.org/jmeter/
curl-loader: http://sourceforge.net/projects/curl-loader
Database Open-source Test Suite (DOTS):
http://ltp.sourceforge.net/
others:
http://www.opensourcetesting.org/performance.php
6
Usability testing
usability testing: making sure the user can successfully
utilize the system
usability studies
field tests
tools
ExternalTest: http://www.externaltest.com/
StillUp: http://www.stillup.co.uk/
DotCom-Monitor: http://www.dotcom-monitor.com/
Internet Vista: http://www.internetvista.com/
others:
http://www.softwareqatest.com/
qatweb1.html#MONITORING
8
Web app compatibility
testing
motivation
ensure that your web app is compatible with various browsers,
platforms, etc.
ensure that your app's HTML code complies with web standards
ensure that you have no broken links or other HTML errors
9
Testing web applications 1
Questions to ask when testing web apps:
What are the expected loads on the server (e.g., hits/time)?
as web load testing tools, other tools already in house that can be
adapted, web robot downloading tools, etc.)?
Who is the target audience? What kind of browsers will they be
using? What kind of connection speeds will they by using? Are they
intra- organization (high connection speeds and similar browsers)
or Internet-wide (thus with a wide variety of connection speeds
and browser types)?
What kind of performance is expected on the client side (e.g., how
more information:
http://en.wikipedia.org/wiki/Test_plan
13
Elements of a test plan 2
Relevant naming conventions and identifier
conventions
Overall software project organization and
personnel/contact-info/responsibilties
Test organization and
personnel/contact-info/responsibilities
Assumptions and dependencies
Project risk analysis
Testing priorities and focus
Scope and limitations of testing
Test outline - a decomposition of the test approach by
test type, feature, functionality, process, system,
module, etc. as applicable
Outline of data input equivalence classes, boundary
value analysis, error classes 14
Elements of a test plan 3
Test environment - hardware, operating systems, other
required software, data configurations, interfaces to
other systems
Test environment validity analysis - differences
between the test and production systems and their
impact on test validity.
Test environment setup and configuration issues
Software migration processes
Software CM processes
Test data setup requirements
Database setup requirements
Outline of system-logging/error-logging/other
capabilities, and tools such as screen capture software,
that will be used to help describe and report bugs
15
Elements of a test plan 4
Discussion of any specialized software or hardware
tools that will be used by testers to help track the cause
or source of bugs
Test automation - justification and overview
Test tools to be used, including versions, patches, etc.
Test script/test code maintenance processes and
version control
Problem tracking and resolution - tools and processes
Project test metrics to be used
Reporting requirements and testing deliverables
Software entrance and exit criteria
Initial sanity testing period and criteria
Test suspension and restart criteria 16
Elements of a test plan 5
Personnel allocation
Personnel pre-training needs
Test site/location
Outside test organizations to be utilized and their
purpose, responsibilties, deliverables, contact persons,
and coordination issues
Relevant proprietary, classified, security, and licensing
issues.
Open issues
Appendix - glossary, acronyms, etc.
17