Слайд 3LEVELS OF TESTING
1. UNIT TESTING
2. INTEGRATION TESTING
3. SYSTEM TESTING
4.
OPERATION AND RELEASE TESTING
5. ACCEPTANCE TESTING
Слайд 41. UNIT TESTING
THIS TYPE OF TESTING IS PERFORMED BY DEVELOPERS BEFORE THE
SETUP IS HANDED OVER TO THE TESTING TEAM TO FORMALLY EXECUTE THE TEST CASES. UNIT TESTING IS PERFORMED BY THE RESPECTIVE DEVELOPERS ON THE INDIVIDUAL UNITS OF SOURCE CODE ASSIGNED AREAS.
THE GOAL OF UNIT TESTING IS TO ISOLATE EACH PART OF THE PROGRAM AND SHOW THAT INDIVIDUAL PARTS ARE CORRECT IN TERMS OF REQUIREMENTS AND FUNCTIONALITY.
(DEVELOPERS)
Слайд 5LIMITATIONS OF UNIT TESTING
TESTING CANNOT CATCH EACH AND EVERY BUG IN AN
APPLICATION. IT IS IMPOSSIBLE TO EVALUATE EVERY EXECUTION PATH IN EVERY SOFTWARE APPLICATION. THE SAME IS THE CASE WITH UNIT TESTING.
THERE IS A LIMIT TO THE NUMBER OF SCENARIOS AND TEST DATA THAT A DEVELOPER CAN USE TO VERIFY A SOURCE CODE.
AFTER HAVING EXHAUSTED ALL THE OPTIONS, THERE IS NO CHOICE BUT TO STOP UNIT TESTING AND MERGE THE CODE SEGMENT WITH OTHER UNITS.
Слайд 62. INTEGRATION TESTING
INTEGRATION TESTING IS DEFINED AS THE TESTING OF COMBINED
PARTS OF AN APPLICATION TO DETERMINE IF THEY FUNCTION CORRECTLY.
(DEVELOPERS AND TESTERS)
Слайд 73. SYSTEM TESTING
SYSTEM TESTING TESTS THE SYSTEM AS A WHOLE. THIS TYPE
OF TESTING IS PERFORMED BY A SPECIALIZED TESTING TEAM.
SYSTEM TESTING IS IMPORTANT BECAUSE OF THE FOLLOWING REASONS:
SYSTEM TESTING IS THE FIRST STEP IN THE SOFTWARE DEVELOPMENT LIFE CYCLE, WHERE THE APPLICATION IS TESTED AS A WHOLE.
THE APPLICATION IS TESTED THOROUGHLY TO VERIFY THAT IT MEETS THE FUNCTIONAL AND TECHNICAL SPECIFICATIONS.
THE APPLICATION IS TESTED IN AN ENVIRONMENT THAT IS VERY CLOSE TO THE PRODUCTION ENVIRONMENT WHERE THE APPLICATION WILL BE DEPLOYED.
SYSTEM TESTING ENABLES US TO TEST, VERIFY, AND VALIDATE BOTH THE BUSINESS REQUIREMENTS AS WELL AS THE APPLICATION ARCHITECTURE.
(TESTERS)
Слайд 94. RELEASE TESTING
A SEPARATE TEAM THAT HAS NOT BEEN INVOLVED IN THE
SYSTEM DEVELOPMENT SHOULD BE RESPONSIBLE FOR RELEASE TESTING.
SYSTEM TESTING BY THE DEVELOPMENT TEAM SHOULD FOCUS ON DISCOVERING BUGS IN THE SYSTEM (DEFECT TESTING). THE OBJECTIVE OF RELEASE TESTING IS TO CHECK THAT THE SYSTEM MEETS ITS REQUIREMENTS AND IS GOOD ENOUGH FOR EXTERNAL USE (VALIDATION TESTING).
(TESTERS AND USERS)
Слайд 105. ACCEPTANCE TESTING
THE MAIN QUESTION IS – DOES THE CLIENT OR A
FUTURE USER NEED THIS FUNCTIONALITY
EXAMPLE:
LET’S SAY, FACEBOOK LAUNCHES A NEW FEATURE, ALLOWING FACEBOOK USERS TO SEND POSTCARDS TO FAMILY & FRIENDS. TECHNICALLY THE IMPLEMENTED SOLUTION WORKS. TESTERS ALSO CAN USE IT – HOWEVER DUE TO LACK OF INTEREST AND NEED, NO ONE WILL WANT TO SEND PRINTED POSTCARDS. FUNCTIONAL TESTS WOULD GO WELL, USABILITY TESTS WOULD GO FINE TOO, BUT THE USER ACCEPTANCE TEST WOULD PROBABLY FAIL AS FACEBOOK USERS DO NOT DEMAND TO SEND POSTCARDS WITHIN FACEBOOK.
(TESTER, BETA-TESTERS AND USERS)
Слайд 13TYPES OF TESTING
ACCORDING TO IT’S GOALS TESTING CAN BE:
FUNCTIONAL AND NON-FUNCTIONAL
FUNCTIONAL
TYPES:
FUNCTIONS TESTING (TESTING THE APP’S/PROGRAM’S FUNCTIONALITY ACCORDING TO SPECIFICATIONS AND USERS’ NEEDS)
SECURITY AND ACCESS CONTROL TESTING (TESTING SYSTEMS LEVEL OF SECURITY, HOW IT IS READY TO FACE HACKER’S ATTACKS, MONEY/DATA STEELING ATTEMPTS, VIRUSES, UNAUTHORIZED ACCESS TO PRIVATE DATA ETC.)
INTEROPERABILITY (CHECKS HOW THE SYSTEM IS FUNCTIONING TOGETHER WITH OTHER SYSTEMS)
Слайд 14TYPES OF TESTING
NON- FUNCTIONAL TYPES:
ALL TYPES OF PERFORMANCE TESTING:
PERFORMANCE AND LOAD
TESTING
STRESS TESTING
STABILITY/RELIABILITY TESTING
VOLUME TESTING
AND OTHERS:
• INSTALLATION TESTING
• USABILITY TESTING
• FAILOVER AND RECOVERY TESTING
• CONFIGURATION TESTING
Слайд 15PERFORMANCE TESTING
LOAD TESTING — AUTOMATED TESTING IMITATING THE WORK OF SOME (NORMAL, EXTREME
OR PEAK) QUANTITY OF USERS
STRESS TESTING – HELPS CHECK HOW THE SYSTEM REACTS TO STRESS SITUATIONS. FOR EXAMPLE, IT MAY INCLUDE TAKING AWAY SOME RESOURCES OR APPLYING A LOAD BEYOND THE ACTUAL LOAD LIMIT.
STABILITY / RELIABILITY TESTING USING THE SYSTEM FOR A LONG TIME WITH NORMAL LOAD
VOLUME TESTING - CHECKING HOW THE SYSTEM WORKS WITH LARGE AMOUNTS OF DATA IN THE DATABASE
Слайд 16INSTALLATION TESTING ARE INSTALLATION/DEINSTALLATION/RE-INSTALLATION AND UPDATE GOING SUCCESSFULLY
USABILITY TESTING — UX AND UI
TESTING. IS USING THE APP COMFORTABLE FOR USERS
FAILOVER AND RECOVERY TESTING HOW THE SYSTEM IS RECOVERING AFTER CRASHES (LIKE POWER BREAKS OR SERVER/DATABASE FAILURES
CONFIGURATION TESTING — HOW THE SYSTEM WORKS UNDER DIFFERENT CONFIGURATIONS OF HARDWARE AND SOFTWARE (OPERATION SYSTEM, BROWSER, SCREEN RESOLUTION…)
Слайд 172. ACCORDING TO CHANGES TESTING CAN BE:
• SMOKE TESTING
• REGRESSION TESTING
• RE-TESTING
•
SANITY TESTING
Слайд 18SMOKE TESTING SHORT SET OF TESTS THAT IS DESIGNED TO VERIFY THAT
AFTER COMPILING A BUILT (FIRST VERSION OR UPDATE) SYSTEM STARTS AND FULFILLS BASIC TASKS. ONLY AFTER SMOKE TESTS ALL OTHERS CAN BE STARTED.
REGRESSION TESTING — WHENEVER A CHANGE IN A SOFTWARE APPLICATION IS MADE, IT IS QUITE POSSIBLE THAT OTHER AREAS WITHIN THE APPLICATION HAVE BEEN AFFECTED BY THIS CHANGE. REGRESSION TESTING IS PERFORMED TO VERIFY THAT A FIXED BUG HASN'T RESULTED IN ANOTHER FUNCTIONALITY OR BUSINESS RULE VIOLATION. THE INTENT OF REGRESSION TESTING IS TO ENSURE THAT A CHANGE, SUCH AS A BUG FIX SHOULD NOT RESULT IN ANOTHER FAULT BEING UNCOVERED IN THE APPLICATION.
RE-TESTING — CHECKING THAT THE FIXED MISTAKES ARE REALLY FIXED AS REPORTED
SANITY TESTING — SANITY TESTING IS USUALLY PERFORMED WHEN ANY MINOR BUG IS FIXED OR WHEN THERE IS A SMALL CHANGE IN THE FUNCTIONALITY. IT IS A KIND OF SOFTWARE TESTING WHICH IS DONE BY THE TESTERS TO ENSURE THAT THE FUNCTIONALITY IS WORKING AS EXPECTED. SANITY TESTING IS NARROW AND DEEP. UNLIKE SMOKE TESTING, SANITY TESTING IS FOCUSED ON ONE OR TWO FUNCTIONALITIES WHEREAS SMOKE TESTING IS DONE TO ENSURE THAT ALL THE MAJOR FEATURES OF THE PROJECT IS WORKING FINE.
*WHAT’S THE DIFFERENCE BETWEEN REGRESSION TESTING, SANITY AND RE-TESTING?
RE-TESTING — BUG FIXING IS CHECKED
SANITY TESTING — CHECKING THAT NEW BUGS WERE NOT PRODUCED DURING BUG FIXESREGRESSION TESTING – CHECKING THAT OLD FUNCTIONALITY WORKS CORRECTLY AFTER ADDING NEW FUNCTIONS
Слайд 203. ACCORDING TO CODE RUNNING:
STATIC AND DYNAMIC
STATIC TESTING: NO CODE IS
RUNNING (CODE REVIEW, DOCUMENTATION TESTING)
DYNAMIC TESTING: CODE IS RUNNING (THE SYSTEM WORKS WHILE TEST ARE EXECUTED)
Слайд 214. ACCORDING TO SCENARIO: POSITIVE AND NEGATIVE TESTING
POSITIVE TESTS CHECK CORRECT SCENARIOS
WITH VALID DATA
WE WANT TO MAKE SURE THAT THE SYSTEM DOES THE THINGS IT WAS DESIGNED FOR
POSITIVE SCENARIO – DOESN’T MEAN THE ONLY. QUANTITY OF TESTS DEPENDS ON TESTER’S QUALIFICATION
*REMEMBER THE EXAMPLE WITH THE NAME FIELD
Слайд 22NEGATIVE TESTING – THE OPPOSITE TO POSITIVE (SURPRISE☺).
IS USED TO MAKE SURE
THAT THE SYSTEM DOES NOT DO THE THINGS, IT WAS NOT DESIGNED FOR.
INVALID DATA, VALUES BEYOND THE LIMITATIONS, UNAUTHORIZED ACCESS ATTEMPTS ETC.
NOT ONLY MAKE SURE THAT THE SYSTEM DOESN’T ACCEPT INCORRECT INPUTS BUT ALSO THAT IT REACTS ADEQUATELY: SENDS MESSAGES, ALERTS ETC.
Слайд 23EXAMPLES OF NEGATIVE TESTS:
LEAVE REQUIRED FIELD EMPTY
USE LETTERS TO FILL NUMERIC FIELDS
WRONG
INPUT INTO “CONFIRM PASSWORD” FIELD
*GIVE YOUR EXAMPLES
Слайд 24GOLDEN RULE
POSITIVE TESTS BEFORE NEGATIVE
Слайд 255.ACCORDING TO TEST-DOCUMENTATION:
EXPLORATORY VS. SCENARIO
EXPLORATORY AND AD HOC TESTING:
TEST DESIGN
AND TEST- EXECUTION AT THE SAME TIME.
NO TEST-CASES!
IMPROVISATION
Слайд 26MONKEY TESTING
MONKEY TESTING - MONKEY TESTING IS A TECHNIQUE USED IN SOFTWARE TESTING TO TEST
THE APPLICATION OR PRODUCT BY PERFORMING RANDOM ACTIONS AND PROVIDING RANDOM DATA AND OBSERVING IF THE SYSTEM OR APPLICATION CRASHES
DIFFERS FROM EXPLORATORY AND AD HOC
Слайд 276.ACCORDING TO TESTERS
ALFA — THIS TEST IS THE FIRST STAGE OF TESTING
AND WILL BE PERFORMED AMONGST THE TEAMS (DEVELOPER AND QA TEAMS). UNIT TESTING, INTEGRATION TESTING AND SYSTEM TESTING WHEN COMBINED TOGETHER IS KNOWN AS ALPHA TESTING.
BETA - THIS TESTS ARE PERFORMED AFTER ALPHA TESTING HAS BEEN SUCCESSFULLY PERFORMED. IN BETA TESTING, A SAMPLE OF THE INTENDED AUDIENCE TESTS THE APPLICATION. BETA TESTING IS ALSO KNOWN AS PRE-RELEASE TESTING. BETA TEST VERSIONS OF SOFTWARE ARE IDEALLY DISTRIBUTED TO A WIDE AUDIENCE ON THE WEB, PARTLY TO GIVE THE PROGRAM A "REAL-WORLD" TEST AND PARTLY TO PROVIDE A PREVIEW OF THE NEXT RELEASE.