functional testing |
Testare de tip black box canalizata pe verificarea
cerintelor functionale ale aplicatiei; acest tip de testare
trebuie facut de testeri. Asta nu inseamna ca programatorii
nu ar trebui sa isi verifice codul (asta fireste se aplica
oricarui stadiu al testarii) |
Black box testing |
Nu se bazeaza pe cunoasterea interna a design-ului
sau a codului . Testele sunt bazate pe cerinte si functionalitate |
White box testing |
Se bazeaza pe cunoasterea logicii interne
a codului aplicatiei. Testele sunt bazate pe acoperirea sintaxei
de cod, ramuri, cai, conditii. |
Testarea
Functionala |
unit
testing |
Prima treapta a testarii ; se testeaza functiile
sau module de cod . De obicei sunt facute de programatori
deoarece presupun cunostinte avansate a design-ului intern
al aplicatiei si codului. Nu intotdeauna sunt usor de executat
daca aplicatia nu are o arhitectura bine pusa la punct; poate
presupune dezvoltarea de drivere sau stub-uri |
integration
testing |
Testarea combinata a diferitelor parti dintr-o aplicatie
pentru a vedea daca functioneaza corect. Aceste "parti"
pot fi module de cod, aplicatii individuale, aplicatii client-server
intr-o retea etc. |
system testing |
testare de tip black-box bazata pe specificatii
care acopera toate partile sistemului. |
user
acceptance testing |
determina daca software-ul este satisfacator
pentru un end-user sau client. |
usability testing
|
Testarea daca un software este "user-friendly".
Evident aceasta testare este subiectiva si va depinde de utilizatorul
sau clientul vizat. Interviuri cu utilizatorii, survey-uri,
monitorizarea sesiunilor utilizatorilor sunt metode care pot
fi folosite. Programatorii si testerii nu sunt cei mai indicati
pentru acest tip de testare. |
install/uninstall
testing |
testarea partiala sau integrala a procesului
de instalare sau upgrade. |
end-to-end testing
|
similar cu system testing; este testare
de nivel 'macro' ; presupune testarea aplicatiei in mediul
in care va fi folosita. |
sanity testing or
smoke testing |
typically an initial testing effort to determine
if a new software version is performing well enough to accept
it for a major testing effort. For example, if the new software
is crashing systems every 5 minutes, bogging down systems
to a crawl, or corrupting databases, the software may not
be in a 'sane' enough condition to warrant further testing
in its current state |
regression testing
|
re-testing after fixes or modifications of
the software or its environment. It can be difficult to determine
how much re-testing is needed, especially near the end of
the development cycle. Automated testing tools can be especially
useful for this type of testing. |
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. |
compatability testing
|
testing how well software performs
in a particular hardware/software/operating system/network/etc.
environment |
NonFunctional
Testing |
performance testing
|
term often used interchangeably with
'stress' and 'load' testing. Ideally 'performance' testing
(and any other 'type' of testing) is defined in requirements
documentation or QA or Test Plans |
stress testing |
term often used interchangeably with 'load'
and 'performance' testing. Also used to describe such tests
as system functional testing while under unusually heavy loads,
heavy repetition of certain actions or inputs, input of large
numerical values, large complex queries to a database system,
etc. |
load testing |
testing an application under heavy loads,
such as testing of a web site under a range of loads to determine
at what point the system's response time degrades or fails.
|
recovery testing |
testing how well a system recovers from crashes,
hardware failures, or other catastrophic problems |
failover testing |
- typically used interchangeably with 'recovery
testing' |
security testing |
- testing how well the system protects against
unauthorized internal or external access, willful damage,
etc; may require sophisticated testing techniques. |
Other
Testing Methods |
exploratory testing |
often taken to mean a creative, informal
software test that is not based on formal test plans or test
cases; testers may be learning the software as they test it.
|
ad-hoc testing |
similar to exploratory testing, but often
taken to mean that the testers have significant understanding
of the software before testing it. |
context-driven testing |
• - testing driven by an understanding
of the environment, culture, and intended use of software.
For example, the testing approach for life-critical medical
equipment software would be completely different than that
for a low-cost computer game. |
comparison testing |
comparing software weaknesses and strengths
to competing products. |
alpha testing |
testing of an application when development
is nearing completion; minor design changes may still be made
as a result of such testing. Typically done by end-users or
others, not by programmers or testers. |
beta testing |
testing when development and testing are
essentially completed and final bugs and problems need to
be found before final release. Typically done by end-users
or others, not by programmers or testers |
mutation testing |
a method for determining if a set of test
data or test cases is useful, by deliberately introducing
various code changes ('bugs') and retesting with the original
test data/cases to determine if the 'bugs' are detected. Proper
implementation requires large computational resources. |