As with many different aspects in programming, testing
disciplines have their own unique vocabulary. However, because of the number of
terms, the barrier to entry is high and can scare new developers. This section
is intended to get the reader up to speed on some common terms that will be
used throughout the remainder of this book. The terms shown next are only
intended to be a brief explanation.
· Test. A test is a systematic procedure to ensure that a particular unit of an application is
working correctly.
· Pass. A pass indicates
that everything is working correctly. When represented on a report or user
interface (UI), it is represented as green.
· Fail. In the case of a fail,
the functionality being tested has changed and as a result no longer works as
expected. When represented on a report, this is represented as red.
· xUnit. xUnit refers
to the various testing frameworks which were originally ported from sUnit.
Tools such as jUnit, qUnit, and nUnit fall into the xUnit family.
· Test Fixture. Test fixtures refer
to the state a test must be in before the test can be run. Test fixtures
prepare any objects that need to be in place before the test is run. Fixtures
ensure a known, repeatable state for the tests to be run in.
· Test Driven
Development (TDD). Test Driven Development is an Agile Software Development process
where a test for a procedure is created before the code is created.
· Behavior Driven
Development (BDD). Building on top of the fundamentals of TDD, BDD aims to take
more advantage of the design and documentation aspects of TDD to provide more
value to the customer and business.
· Test Double. When we cannot, or
choose not, to use a real component in unit tests, the object that is
substituted for the real component is called atest double.
· Stub. A test stub is
a specific type of test double. A stub is used when you need to replicate an
object and control the output, but without verifying any interactions with the
stub object for correctness. Many types of stubs exist, such as the responder,
saboteur, temporary, procedural, and entity chain.
· Mock. Mock objects
are also a form of test double and work in a similar fashion to stub objects. Mocks
are used to simulate the behavior of a complex object. Any interactions made
with the mock object are verified for correctness, unlike stub objects..
· Fake. Fake objects
are yet another type of test doubles. Fake objects are similar to test stubs,
but replace parts of the functionality with their own implementation to enable
testing to be easier for the method.
· Dummy Objects. Dummy objects
are used when methods require an object as part of their method or constructor.
However, in this case the object is never used by the code under test. As such,
a common dummy object is null.
· Unit Test. A unit
test is a method used to verify that a small unit of source code is
working properly. Unit tests should be independent of external resources such
as databases and files. A unit is generally considered a method.
· Developer Test. This is another
term for a unit test.
· Integration
Test. This is similar to a unit test; however, instead of being an
isolation unit, these test cross-application and system boundaries.
· Functional Test. Functional tests group units of
work together to test an external requirement. Testing disciplines such as
graphical user interface testing and performance testing are considered
functional tests.
· GUI Test. GUI tests test the
graphical user interface. GUI tests are considered functional tests.
Applications are used to simulate users interacting with the system such as
entering text into a field or clicking a button. Verifications are then made
based on the response from the UI or system.
·
Customer Test. This is another term
for an acceptance test.
· System Test. The term system
test is a term to indicate an “End To End” test of the system. System
tests include unit testing, security testing, GUI testing, functional testing,
acceptance testing, and accessibility testing.
· Load Test. A large amount
of connections are made to the website to determine if it will scale correctly.
This type of testing is to ensure that the website can handle the peak load
expected when the website is used in production without any errors or failures.
Or
A load test is usually conducted to
understand the behavior of the system under a specific expected load. This load
can be the expected concurrent number of users on the application performing a
specific number of transactions within the set duration.
· Stress Test. This kind of
test is done to determine the system's robustness in terms of extreme load.
· Endurance Testing. (Soak Testing).
During this type testing, memory utilization is monitored to detect potential
leaks.
· Spike Testing.
Spike testing is
done by suddenly increasing the number of users by a very large amount or load
generated by users and observing the behavior of the system.
· Performance
Test. Performance testing measures the response of a system in normal use and when
it’s placed under load. A common metric for Web Applications is Time To First
Byte (TTFB) and Requests Per Second (RPS).
· Acceptance Test. This is a formal test
to indicate if a function of a software project conforms to the specification
the customer expects.
· Black Box Test. A black box
test is a test created without knowing the internal workings of the
feature being tested. The only information you have to base your tests on is
the requirements.
· White Box Test. A white box
test is a test created with knowledge of the inner workings of the
code being tested. By using your internal knowledge of the system you can adapt
the inputs you use to ensure high test coverage and correctness of the system.
·
Regression Test. A regression
test is a test created to ensure that existing functionality was
working correctly previously and is still working as expected
No comments:
Post a Comment