Professional Documents
Culture Documents
STE en
STE en
STE en
Testing Theory
Test Concepts
A TEST CASE is a set of conditions or variables under which a tester will determine
whether a system under test satisfies requirements or works correctly. The process of
developing test cases can also help find problems in the requirements or design of an
application.
Functional testing is a type of testing which verifies that each function of the software
application operates in conformance with the requirement specification. This testing
mainly involves black box testing, and it is not concerned about the source code of the
application.
Every functionality of the system is tested by providing appropriate input, verifying the
output and comparing the actual results with the expected results. This testing involves
checking of User Interface, APIs, Database, security, client/ server applications and
functionality of the Application Under Test. The testing can be done either manually or
using automation
A good example of non-functional test would be to check how many people can
simultaneously login into a software.
It specifies the purpose of a specific test, identifies the required inputs and expected
results, provides step-by-step procedures for executing the test, and outlines the pass/fail
criteria for determining acceptance. Test Case Specification has to be done separately for
each unit.
It contains:
SMOKE TESTING is a type of software testing that determines whether the deployed build
is stable or not. The purpose of Smoke Tests it to confirm whether the QA team can proceed
with further testing. Smoke tests are a minimal set of tests run on each build.
Regression Testing is nothing but a full or partial selection of already executed test cases
which are re-executed to ensure existing functionalities work fine.
STRESS TESTING is a type of Software Testing that verifies the stability & reliability of the
system. This test mainly measures the system on its robustness and error handling
capabilities under extremely heavy load conditions.
Stress Testing is done to make sure that the system would not crash under crunch
situations. It even tests beyond the normal operating point and evaluates how the system
works under those extreme conditions.
Verification is testing that your product meets the specifications / requirements you have
Validation tests how well you addressed the business needs that caused you to write those
requirements. It is also sometimes called acceptance or business testing. "Did I build what I
need?"
WHITE BOX TESTING is testing of a software solution's internal structure, design, and
coding. In this type of testing, the code is visible to the tester. It focuses primarily on
verifying the flow of inputs and outputs through the application, improving design and
usability, strengthening security. White box testing is also known as Clear Box testing, Open
Box testing, Structural testing, Transparent Box testing, Code-Based testing, and Glass Box
testing. It is usually performed by developers.
So these extreme ends like Start- End, Lower- Upper, Maximum-Minimum, Just
Inside-Just Outside values are called boundary values and the testing is called
"boundary testing".
The basic idea in boundary value testing is to select input variable values at their:
1. Minimum
2. Just above the minimum
3. A nominal value
4. Just below the maximum
5. Maximum
Example:
Equivalent Class Partitioning is a black box technique (code is not visible to tester) which
can be applied to all levels of testing like unit, integration, system, etc. In this technique,
you divide the set of test condition into a partition that can be considered the same.
It divides the input data of software into different equivalence data classes.
You can apply this technique, where there is a range in the input field.
1. Any Number greater than 10 entered in the Order Pizza field(let say 11) is
considered invalid.
2. Any Number less than 1 that is 0 or below, then it is considered invalid.
3. Numbers 1 to 10 are considered valid
4. Any 3 Digit Number say -100 is invalid.
We cannot test all the possible values because if done, the number of test cases will be
more than 100. To address this problem, we use equivalence partitioning hypothesis where
we divide the possible values of tickets into groups or sets as shown below where the
system behavior can be considered the same.
The divided sets are called Equivalence Partitions or Equivalence Classes. Then we pick
only one value from each partition for testing. The hypothesis behind this technique is that
if one condition/value in a partition passes all others will also pass. Likewise, if one
condition in a partition fails, all other conditions in that partition will fail.
Unit Test
Integration Test
System Test
SYSTEM TESTING is a level of testing that validates the complete and fully integrated
software product. The purpose of a system test is to evaluate the end-to-end system
specifications. Usually, the software is only one element of a larger computer-based system.
Ultimately, the software is interfaced with other software/hardware systems. System
Testing is actually a series of different tests whose sole purpose is to exercise the full
computer-based system.
Acceptance Test
Defect
The variation between the actual results and expected results is known as defect. If a
developer finds an issue and corrects it by himself in the development phase then it’s called
a defect.
Bug
If testers find any mismatch in the application/system in testing phase then they call it as
Bug.
Fault
A fault makes an application behave in a wrong manner. The problems like an invalid step,
lack of resources or inappropriate data definition could cause a fault in a program. It may
happen in software because the developer has not added the code for fault tolerance.
Error
Failure
Once the product is deployed and customers find any issues then they call the product as a
failure product. After release, if an end user finds an issue then that particular issue is
called as failure
Software Development Models
V-Cycle
V-Model is an SDLC model that has a testing phase corresponding to every development
stage in the waterfall model. The V-model is an extension of the waterfall model. V model
Testing is done in parallel to development. It is also called a Validation and Verification
Model.
But if you are working in the large project, where the systems are complex, it's easy to miss
out the key details in the requirements phase itself. In such cases, an entirely wrong
product will be delivered to the client
Agile
Development process is iterative, and the project is executed in short (2-4) weeks
iterations.
Every iteration has its own testing phase. It allows implementing regression testing every
time new functions or logic are released.
It requires close communication with developers and together analyze requirements and
planning
Programming
Primer 35
U binary:
2 na 0=1
2 na 1= 2
2 na 2=4
2na 3=8
2na4=16
2na5=32
2na6=64
Prva cifra je 1
3 podeljeno sa 16 je 0 a ostatak je 3
Druga cifra j 0
3 podeljeno sa 8 je 0 a ostatak je 3
Treca cifra je 0
3podeljeno sa 4 je 0, a ostatak je 3
Cetvrta cifra je 0
3 podeljeo sa 2 je 1 I ostatak je 1
Peta cifra je 1
1podeljeno sa 1 je 1,ostatak je 0
Sesta cifra je 1
U octal:
8 na0=1
8na1=8
8na2=64
8na 3=512
Prva cifra je 4
3podeljeno sa 1 je 3, ostatak je 0
Druga cifra je 3
16 na 0 je 1
16 na 1 je 16
16 na 2 je 256
35 podeljeno sa 16 je 2, ostatak 3
Prva cifra je 2
3 podeljeno sa 1 je 3, ostatakje 0
Druga cifra je 3
Named after the nineteenth-century mathematician George Boole, Boolean logic is a form
of algebra in which all values are reduced to either TRUE or FALSE. Boolean logic is
especially important for computer science because it fits nicely with the binary numbering
system, in which each bit has a value of either 1 or 0.
VALUE 0 1
NOT (VALUE) 1 0
VALUE1 0 0 1 1
VALUE2 0 1 0 1
OR (Boolean sum)
The OR operator accepts two Boolean variables as input and outputs their Boolean sum.
See Table L-7.
VALUE1 0 0 1 1
VALUE2 0 1 0 1
VALUE1 OR VALUE2 0 1 1 1
VALUE1 0 0 1 1
VALUE2 0 1 0 1
VALUE2 0 1 0 1
VALUE1 0 0 1 1
VALUE2 0 1 0 1
Rules of precedence
Table L-11 shows the precedence rules of the Boolean algebra operators.
1 brackets ( )
Table L-11: Boolean Algebra Operator Precedence
4 Boolean sum OR
Note Brackets have the highest precedence, i.e., everything inside brackets is evaluated
first.
5 =0 We are done.
Data types, value ranges, signed vs. unsigned
Data types
Integer.
Floating-point number.
Character.
String.
Boolean.
Value ranges
In computer programming, range refers to possible variable values or the interval that
includes the upper and lower bounds of an array.
When you are given various values, the range of those values is how big the difference is
between the largest value and the smallest value. In other words, the range is what you get
when you subtract the smallest value in the group from the largest value in the group.
Nick is 5 years old, Sam is 3 years, Sarah is 2 years, Julie is 10 years old, and Zach is 12
years old. We want to find the range of the ages of the kids.
1. Our first step is to order the ages of the kids starting from the youngest and going to the
oldest. Doing this, we have 2, 3, 5, 10, and 12. Sarah is the youngest at 2 years of age and
Zach is the oldest at 12 years of age.
2. Our next step is to take the oldest age of 12 years and subtract the youngest age of 2
years from it. So, 12-2=10 gives us our range. 10 is the range of the ages of the kids.
Signed vs unsigned
Signed variables, such as signed integers will allow you to represent numbers both in the
positive and negative ranges.
Unsigned variables, such as unsigned integers, will only allow you to represent numbers
in the positive.
Unsigned and signed variables of the same type (such as int and byte) both have the same
range (range of 65,536 and 256 numbers, respectively), but unsigned can represent a
larger magnitude number than the corresponding signed variable.
For example, an unsigned byte can represent values from 0 to 255, while signed byte can
represent -128 to 127. (Adding 128 + 127 = 255)[1]
To reiterate, the main differences between Signed & Unsigned data type or variable in java
is:
A constant is a value that cannot be altered by the program during normal execution, i.e.,
the value is constant. When associated with an identifier, a constant is said to be “named,”
although the terms “constant” and “named constant” are often used interchangeably. This is
contrasted with a variable, which is an identifier with a value that can be changed during
normal execution, i.e., the value is variable
A constant is a data item whose value cannot change during the program’s execution. Thus,
as its name implies – the value is constant.
A variable is a data item whose value can change during the program’s execution. Thus, as
its name implies – the value can vary.
1. indeterminate loops
2. determinate loops
The difference being that with a determinate loop structure, one can (normally)
predict exactly how many times the loop will repeat; whereas with an indeterminate loop
structure, this is not always the case. An indeterminate loop structure loops as long as a
condition evaluates to some certain boolean value. Indeterminate loops should be used
when the programmer does not know exactly how many times the iteration need occur.
Logically however, both indeterminant and determinate loops can be written to be
equivalent.
Pseudo-code
Pseudocode is an informal way of programming description that does not require any strict
programming language syntax or underlying technology considerations. It is used for
creating an outline or a rough draft of a program
• it enables the programmer to concentrate only on the algorithm part of the code
development.
• It cannot be compiled into an executable program. Example, Java code : if (i < 10) { i++; }
pseudocode :if i is less than 10, increment i by 1.
Example:
Print "passed"
else
Print "failed"
Electronics
Discrete components
Logical gates
Test Equipment
Multimeters
Oscilloscopes
Power supplies
Signal generators
Acquisition systems
What is a microcontroller?
Microcontrollers vs. microprocessors
General knowledge
Signal types
*Note: detailed information regarding any of the above topics can be found on the Internet