interview question
interview question
⮚
TELL ME ABOUT YOURSELF
FIRST OF ALL I WOULD LIKE TO THANK YOU FOR HAVING ME AND APPRECIATE FOR YOUR TIME.
⮚ I STARTED AS A MANUAL TESTER IN MY CAREER IN SYMUND COMPANY AND NEXT YEAR JUMPED TO AUTOMATION TESTER.
⮚ JAVA IS MY PRIMARY PROGRAMMING LANGUAGE AND I USE SELENIUM WEBDRIVER AS A TEST AUTOMATION TOOL.
✔ I HAVE KNOWLEDGE OF MAKING FRAMEWORK FROM SCRATCH BUT AS YOU KNOW IT IS NOT A SINGLE PERSON JOB. ALONG WITH A TEAM I CAN EASILY DO A FRAMEWORK FROM
SCRATCH. I CAN MAKE A MISTAKE SO I DON’T WANT LET MY TEAM DOWN BECAUSE OF ME
⮚ FOR BACKEND TEST I AM USING SQL FOR RETRIEVING DATA FROM DATABASE WITH THE HELP OF JDBC.
⮚ AND ALSO I USED API TESTING ON MY PROJECT AND I USED RESTFULL AND REST ASSURED LIBRARY.
⮚ I USED JENKINS FOR CONTINUOUS INTEGRATION AND I USED SELENIUM GRID.(FOR MULTIPLE TEST ACROSS DIFFERENT BROWSERS, OPERATING SYSTEM AND MACHINES IN
PARALLEL.)
⮚ I AM A QUICK LEARNER PERSON AND I AM VERY WILLING TO LEARN NEW DOMAINS. I CAN EASILY ADAPT MYSELF TO NEW TOOLS AND CIRCUMSTANCES.
⮚ I AM CROSS FUNCTIONAL TEAM PLAYER,OPEN-MIND,DETAILED ORIENTED, RESPONSIBLE TEAM PLAYER AND CULTURE ORIENTED.
TELL ME ABOUT YOUR PROJECT?
⮚ IN MY LAST PROJECT I WAS WORKING ON FLEET MANAGEMENT. IT’S AN INTERNAL APPLICATION.
• FLEET MANAGEMENT MODULE AND ITS SUB MODULES LIKE VEHICLE ODOMETER,VEHICLE COSTS,VEHICLE CONTRACTS,VEHICLE INFORMATION,VEHICLE
MODEL, AND SERVICE LOG.
• FIRST TO DO THE MANUAL TEST, THEN ACCORDING TO MANUAL TEST TO WRITE THE AUTOMATION SCRIPT.
• AND THEN I ANALYZE SMOKE TEST RESULT AND CHECKING STABILITY AND BUG FREE.
• AND ALSO IF DEVELOPERS ADD SOME NEW FEATURE DO REGRESSION TEST AT THE END OF THE EACH SPRINT.
TELL ME YOUR FRAMEWORK
⮚ WHEN I JOIN THE COMPANY, THE FRAMEWORK WAS ALREADY EXIST
⮚ AS A AUTOMATION ENGINEER MY RESPONSIBILITY TO MAINTAIN THE FRAMEWORK AND DOING REGULAR REGRESSION AND SMOKE
TESTS.
⮚ I MADE SOME IMPROVEMENTS IN THE FRAMEWORK TO MAKE IT MORE INDEPENDENT AND MORE REUSABLE WITH THE HELP OF POM
DESIGN PATTERN.
⮚ OUR FRAMEWORK WAS HYBRID, IT IS COMBINATION OF BDD(BEHAVIOR DATA DRIVEN) AND DDT(DATA DRIVEN TEST).
⮚ I USED GHERKIN LANGUAGE WHILE GENERATE MY FRAMEWORK FOR UNDERSTANDABLE WHO HAS NO TECHNICAL SKILL.
⮚ AS ALL OTHER HYBRID FRAMEWORKS, MY FRAMEWORK WAS ALSO HAVING
❖ PAGES FOLDERS(WHICH WE STORE ALL LOCATORS ABOUT WEB ELEMENT AND METHODS),
❖ STEP DEFINITION FOLDERS(HOOK METHODS, METHODS WHICH COMES FROM FUTURE FILES)
❖ RUNNER CLASS FOLDERS(WHICH CONTAIN FEATURE,GLUE,DRYRUN,TAGS,PLUGIN),
❖ UTILITIES FOLDERS(I STORE COMMON METHODS INSIDE LIKE DRIVER,CONFIGURATION READER,BROWSER UTILS),
❖ PROPERTIES FILE(I STORE URL,USERNAME AND PASSWORD INSIDE),
❖ POM.XML(STORE DEPENDENCIES),
❖ FEATURES FOLDER(WRITTEN BY GHERKIN LANGUAGE). AND FOR DDT BASED ON DATA SIZE WE WERE USING SCENARIO OUTLINE, EXCEL SPREAD
SHEET AND ORACLE DATA-BASE VIA AWS.
⮚ FOR THE TEST RESULTS WE WERE USING EXTEND REPORTS OR CUCUMBER HTML REPORTS AND IT WAS INTEGRATED TO THE JENKINS.
⮚ IN MY COMPANY CI/CD WAS ALREADY SET UP BY DEVOPS AND WHEN I WAS COMMITTING MY CODES TO GITHUB, IT WAS TRIGGERING
THE JENKINS TO BUILD, AND SENDING ME THE RESULT. BRIEFLY, THIS WAS MY FRAMEWORK.
TELL ME YOUR DAY TO DAY ACTIVITY?
⮚ MY DAY STARTS AT 9 A.M. AND I GET REPORTS FROM SMOKE TEST AND ANALYZE IT TO MAKE SURE THE
APPLICATION IS STABLE.MEAN ENVIRONMENT IS UP AND RUNNING.
⮚ AFTER ANALYZE SMOKE TEST REPORTS:
⮚ IF THERE IS A SERVICE ISSUES, I WILL IMMEDIATELY CONTACT DEVOPS TEAM,
⮚ IF IT’S ABOUT MY SCRIPTS, I WILL DEBUG(FIND MISTAKES) MY SCRIPTS, AND FIX IT,
⮚ IF IT’S A BUG, I WILL REPRODUCE IT AND LOG THE DEFECT(SAVE THE DEFECT).
⮚ I ALSO CHECK MY SCHEDULE IF THERE ANY IMPORTANT TASKS.
⮚ THEN I ATTEND MY DAILY STAND-UP MEETING(10:30 AM) WITH MY SCRUM TEAM FOR ABOUT 15
MINUTES. WE ANSWER 3 QUESTION YOU KNOW. WHAT DID YOU DO YESTERDAY? WHAT YOU ARE
GONNA DO TODAY? IS THERE ANY BLOCKER, OBSTACLES OR IMPEDIMENTS?
⮚ AFTER MY MEETING IS OVER, I GO BACK TO MY DESK AND CONTINUE AUTOMATING TEST CASES FROM
THE DAY BEFORE.(WHERE I LEFT)
⮚ THIS IS HOW MY DAYS GO AT WORK
BUG LIFE CYCLE
⮚After find a bug go to jira-xray and click create(NEW)
⮚And Assign it related person(ASSIGN)
⮚After assigned, it will be seen from another person(OPEN)
⮚After developer look at it, he/she can say this is opened before or
rejected…..
⮚And then fix it(FIXED)
⮚After fixed it test it again(RETEST)
⮚After retest if problem is continue assign it related person again
⮚If bug is fixed confirm it is fixed(VERIFIED)
⮚And closed the cycle
Rejected: If the developer feels the defect is not a valid
defect then it changes the defect to “rejected."
Duplicate: If the defect is repeated twice or the defect
corresponds to the same concept of the bug.
Not a bug: If it does not affect the functionality of the
application then the status assigned to a bug is "Not a bug”.
Deferred: If the present bug is not of a prime priority and if it
is expected to get fixed in the next release or in the future.
WHAT WE DO SPRINT,DEMO AND RETRO MEETING?
SPRINT PLANNING MEETING
⮚ AND WE DECIDE WHICH ONE WILL WORK ON WHICH STORY DEPEND ON THE CAPACITY
RETRO
⮚ TEAM ANSWER QUESTIONS? WHAT WENT WELL AND WHAT CAN BE IMPROVED?
GROOMING MEETING
⮚ GROOMING (OR REFINEMENT) IS A MEETING OF THE SCRUM TEAM IN WHICH THE PRODUCT BACKLOG ITEMS ARE DISCUSSED AND THE NEXT SPRINT
PLANNING IS PREPARED.
Product Owner
ROLES IN AGILE
⮚ He/she works as the voice of the client mean h/she represent client
⮚ Manages the product backlog
⮚ Responsible(accountable) for the outcome of the project
⮚ Set priorities
⮚ Manage the release plan(he/she decide when product will be release)
⮚ Product owner reporting everything to the vice president
Scrum Master
⮚ Facilitates team and communication between team(not menager)
⮚ Removes impediments(blockers or obstacles)
⮚ Manage process
⮚ Teach scrum
⮚ Protect team
⮚ Enforce rules
⮚ He/she is not part of the team
⮚ Holds 15 min daily scrum meeting
⮚ He run sprint planning meeting
⮚ Maintains burndown chart(it shows the amount of work remaning per spring)
Development Team
⮚ Develop product
⮚ Works collaboratively and share resbonsibilities among each other
⮚ Resbonsible for designing,implementing and fixing the bug of the product
⮚ Responsible for delivering the product at the end of the each sprint
⮚ Report progress
⮚ Team is self-organizing and self-menaging
WHAT IS ERROR,DEFECT,BUG AND FAILURE?
WHAT IS AN ERROR?
⮚ A mistake in code is called Error . (Mean mistake about code that written by developer)
WHAT IS A DEFECT?
⮚ The variation between the actual results and expected results is known as defect. Error found by tester is
called defect.
WHAT IS A BUG?
⮚ If testers find any mismatch in the application/system in testing phase and defect accepted by development
team is called Bug.
WHAT IS A FAILURE?
⮚ After release, if an end user finds an issue then that particular issue is called as failure or if build does not meet
the requirements then it is Failure.
AUTOMATING TESTING?
WHAT IS AUTOMATING TESTING?
⮚ It is a process of testing the software using a automation tool like selenium webdriver to find a defect.
WHAT WE TEST?
⮚ To find bug
⮚ To satisfied end user and client.
⮚ To build great product
WHY PAGE OBJECT MODEL?
⮚ PAGE OBJECT MODEL IS DESIGN PATTERN WHICH USED COMMONLY WITH SELENIUM WEBDRIVER.
⮚ THE MAIN GOAL FOR CREATING POM IS,EASY TO MAINTAIN OUR SCRIPTS AND REDUCE THE CODE REDUNDANCY OR
DUPLICATION.
⮚ I CREATE PAGE CLASS FOR EVERY PAGE OF OUR APPLICATION AND PUT ALL LOCATORS AND RELATED METHODS IN THAT
CLASS.(PUT ALL REUSABLE AND COMMON METHOD INSIDE.LIKE WAIT TIME,SCROLL DOWN,PAGEFACTORY,DELETECOOKIES…)
⮚ WHEN I NEEDED RESUABLE METHODS I CAN EXTENDS BASEPAGE AND CALL REUSABLE METHODS INSIDE OF THE BASEPAGE
FROM ANOTHER PAGES.
• EASY TO MAINTAIN
• RE-USABILITY OF CODE
• RELIABILITY
SINGLETON DESIGN PATTERN?
⮚ SINGLETON DESIGN PATTERN: PRIVATE CONSTRUCTOR, PRIVATE-STATIC OBJECT AND PUBLIC
GETDRIVER METHOD WITH RETURN
⮚ A SINGLETON CLASS IS A CLASS THAT CAN HAVE ONLY ONE OBJECT AT A TIME.
⮚ AFTER CREATE CLASS
❖DECLARE CONSTRUCTOR OF CLASS AS PRIVATE SO THAT NO ONE INSTANTIATE CLASS
OUTSIDE OF IT
❖DECLARE A STATIC REFERENCE VARIABLE OF CLASS.STATIC IS NEEDED TO MAKE IT
AVAILABILITY GLOBALLY.
❖DECLARE A STATIC GET METHOD WITH RETURN TYPE AS OBJECT OF CLASS
⮚ IN MY FRAMEWORK I AM USING SINGLETON OBJECTS FOR THE WEBDRIVER. THIS MEANS ONE
OBJECT IS SHARED AMONG EVERY TEST.
⮚ IF YOU WANNA DO PARALLEL TEST ,INHERITABLE THREADLOCAL CREATE A SEPARATE OBJECT
FOR EACH THREAD.
SINGLETON DESIGN PATTERN?
public class Driver {//Create a class
case "firefox":
WebDriverManager.firefoxdriver().setup();
driverPool.set(new FirefoxDriver());
SINGLETON DESIGN PATTERN?
public class MyDriver {
private static ThreadLocal<WebDriver> DriverPool = new ThreadLocal<>();
private MyDriver() {//for singleton design pattern constructor should be privete in MyDriver
}
public static WebDriver get() {
//if this thread doesn't have a web Driver yet - create it and add to pool
if (DriverPool.get() == null) {
System.out.println("TRYING TO CREATE Driver");
// this line will tell which browser should open based on the value from properties
file
String browserParamFromEnv = System.getProperty("browser");
String browser = browserParamFromEnv == null ?
ConfigurationReader.getProperty("browser") : browserParamFromEnv;
switch (browser) {
case "chrome":
WebDriverManager.chromedriver().setup();
DriverPool.set(new ChromeDriver());
break;
case "firefox":
WebDriverManager.firefoxdriver().setup();
DriverPool.set(new FirefoxDriver());
break;
//return corresponded to thread id webDriver object
return DriverPool.get();
WHAT IS PAGE FACTORY?
⮚ PAGEFACTORY IS A CLASS IN SELENIUM. IT IS USED TO ACHIEVE PAGE OBJECT MODEL DESIGN.PAGEFACTORY IS A WAY
OF IMPLEMENTING THE “PAGE OBJECT MODEL”.
⮚ BY USING THE PAGE OBJECT PATTERN USING PAGEFACTORY WE CAN REDUCE OR ELIMINATE DUPLICATE TEST CODE.
⮚ IT IS USED TO INITIALIZE ELEMENTS OF A PAGE CLASS WITHOUT HAVING TO USE 'FINDELEMENT' OR 'FINDELEMENTS'.
⮚ WITH THE HELP OF PAGEFACTORY CLASS, WE USE ANNOTATIONS @FINDBY TO FIND WEBELEMENT. WE USE
INITELEMENTS METHOD TO INITIALIZE WEB ELEMENTS.
⮚ EVERY TIME A PAGE OBJECT IS CREATED, PAGEFACTROY DRIVER (BECAUSE OF THE CONSTRUCTOR)WILL BE LINKED TO
WEBLEMENTS @FINDBY IN THAT PAGE.
this.driver = driver;
//this method requires to provide webdriver object for @FindBy
//this means this page class
PageFactory.initElements(driver, BasePage.class); OR
PageFactory.initElements(driver, this); } }
WHAT IS STATIC KEYWORD?
⮚ AFTER WRITING CODE IN THE TRY BLOCK, IF THE EXCEPTION IN THE CATCH BLOCK DOESN’T CATCH IT THEN WE USE FINALLY
BLOCK FOR WRITE SOME STATEMENT..
⮚ FINALLY BLOCK'S ONLY PURPOSE IS TO CLOSE THE RESOURCES WHICH YOU HAVE OPENED INSIDE TRY BLOCK. RESOURCES
COULD BE ANYTHING LIKE DATABASE CONNECTIONS,FILE WRITING/READING ETC:
⮚ CLOSE() STATEMENT IS USED TO CLOSE ALL THE OPEN STREAMS IN A PROGRAM. ITS A GOOD PRACTICE TO USE CLOSE() INSIDE
FINALLY BLOCK. SINCE FINALLY BLOCK EXECUTES EVEN IF EXCEPTION OCCURS SO YOU CAN BE SURE THAT ALL INPUT AND
OUTPUT STREAMS ARE CLOSED PROPERLY REGARDLESS OF WHETHER THE EXCEPTION OCCURS OR NOT.
⮚ InputStream input = null;
try { input = new FileInputStream("inputfile.txt");
} finally {
input.close(); }
⮚ If you use System.exit() in try block then finally block dosen’t get executed.
try { //try block
System.exit(0)
System.out.println("Inside try block");
} catch (Exception exp) {
System.out.println(exp);
} finally {
System.out.println("Java finally block"); }
DIFFERENCE BETWEEN AN EXCEPTION AND AN ERROR?
⮚ BOTH JAVA.LANG.ERROR AND JAVA.LANG.EXCEPTION CLASSES ARE SUB CLASSES
OF JAVA.LANG.THROWABLE CLASS
⮚ IN GENERAL ERRORS(UNCHECKED EXCEPTION) ARE WHICH NOBODY CAN CONTROL OR GUESS
WHEN IT HAPPENED, ON THE OTHER HAND EXCEPTION CAN BE GUESSED AND CAN BE
HANDLED.
⮚ ERRORS WHICH ARE MAINLY CAUSED BY THE ENVIRONMENT IN WHICH APPLICATION IS
RUNNING. FOR EXAMPLE, OUTOFMEMORYERROR OCCURS WHEN JVM RUNS OUT OF MEMORY.
⮚ RECOVERING FROM ERROR IS NOT POSSIBLE. THE ONLY SOLUTION TO ERRORS IS TO
TERMINATE THE EXECUTION.
SDLC(SOFTWARE DEVELOPMENT LIFE CYCLE)
⮚ Requirement Phase:
⮚ Analysis Phase: Verification(Reviews,Inspection,walkthrough)🡺static(code not
⮚ Design Phase: executed) SDLC AND STLC?
⮚ Development Phase:
⮚ Testing Phase: Validation(Actual testing)🡺Dynamic(code will be executed)
⮚ Deployment
⮚ Maintenance Phase:
VERIFICATION IS THE PROCESS OF EVALUATING PRODUCTS OF A DEVELOPMENT PHASE TO FIND OUT WHETHER THEY MEET THE SPECIFIED
REQUIREMENTS. (BUSINESS AND TECHNICAL REQUIREMENT)COST OF ERRORS CAUGHT IN VERIFICATION IS LESS THAN ERRORS FOUND IN VALIDATION.
VALIDATION IS THE PROCESS OF EVALUATING SOFTWARE AT THE END OF THE DEVELOPMENT PROCESS TO DETERMINE WHETHER SOFTWARE MEETS THE
CUSTOMER EXPECTATIONS AND REQUIREMENTS. COST OF ERRORS CAUGHT IN VALIDATION IS MORE THAN ERRORS FOUND IN VERIFICATION.
REQUIREMENT ANALYSIS
⮚ PLANNING
⮚ CASE DEVELOPMENT
⮚ ENVIRONMENT SETUP
⮚ EXECUTION
⮚ CYCLE CLOSURE
The SDLC aims to produce a
high-quality software that
SOFTWARE DEVELOPMENT LIFE CYCLE?
meets or exceeds customer
expectations.
Requirement,Analysis=This phase is the main focus of project manager and stakeholders.Business requirements are
gathered in this phase. This is done through an SRS (Software Requirement
Specification) document which consists of all the product requirements to be designed and
SOFTWARE DEVELOPMENT LIFE CYCLE?
developed during the project life cycle.
•Who is going to use the system?
•What data should input into the system?
•What data should output to the system?
Design=In this phase system and software design is prepared from the requirement specifications.(which tools ,which
framework,which database or platform…..etc will be use.Architect decided)
Development(implement/coding)= In this phase, developers start build the entire system by writing
code using the chosen programming language. In the coding phase, tasks are divided into
units or modules and assigned to the various developers. It is the longest phase of the
Software Development Life Cycle process.
Testing=After code is developed,it is tested against the requirements to make sure this product is met with the client
expectation.
Deployment=Mean project deploy for costumer use.After deploy if any changes are required or caught any bugs they
will report it to the team.After they fix the problem second deploy happened.
Maintenance=During the using product if actual problem comes up it needs to be fixed from time to time.
SRS stand for software requirement specification and
it contains everything about requirement and some
WHAT IS SOFTWARE REQUIREMENT SPECIFICATION?
docs between company and end client.
⮚ INCREMENTAL APPROACH
⮚ V-MODEL
⮚ SPIRAL MODEL
⮚ BIG BANG MODEL
⮚ AGILE IS ITERATIVE PRODUCT DEVELOPMENT METHODOLOGY THAT IS ALTERNATIVE TO THE
WATERFALL METHODOLOGY.
⮚ IT IS FOCUSED CLIENT PROCESS. SO, IT MAKES SURE THAT THE CLIENT IS CONTINUOUSLY INVOLVED
DURING EVERY STAGE. AGILE MODEL?
⮚ IT SHOULD BE SIMPLE/SHORT TO
UNDERSTAND AND KEEP IT UP-TO-
DATE(BECAUSE TEST PLAN IS DYNAMIC)
⮚ TEAM LEAD
REFERENCES
TEST ITEMS
⮚ A LIST OF TEST ITEMS WHICH WILL BE TESTED(TESTING SHOULD BE DONE BOTH FRONT END AND
BACK END TESTING ON MAC AND LINUX ENVIROMENTS)
APPROACH
PASS/FAIL PERCENTAGE
⮚ ALL MAJOR FUNCTIONALITY MUST WORK AS EXPECTED AND PASS PENCENTAGE OF TEST CASES
SHOULD BE MORE THAN %95 AND SHOULD NOT BE ANY CRITICAL BUG
SUSPENSION CRITERIA
⮚ IF ANY OF THE MAJOR FUNCTIONALITY ARE NOT FUNCTIONAL THE TESTING SHOULD BE SUSPEND.
(LIKE LOGIN FUNCT.)
TEST DELIVERABLE
ENVIRONMENTAL NEEDS
⮚ LIST OF HARDWARE,SOFTWARE AND ANY OTHER TOOLS THAT ARE NEEDED FOR A TEST
ENVIROMENT
RESPONSIBILITIES
⮚ IF THERE IS NEED ANY TRAINING FOR IMPROVE SKILLS AND ACHIEVE DESIRED GOALS(ESPECIALLY
IF THERE IS NEW HIRE)
SCHEDULE
⮚ COMPLETE DETAILS ON WHEN TO START OR FINISH AND HOW MUCH EACH TASK SHOULD TASK
PLACE
APPROVAL
⮚ WHO SHOULD SIGN OFF AND APPROVE THE TESTING PROJECT(PROJECT MANAGER OR P.O)
WHAT IS TEST CASE?
⮚ A TEST CASE IS A SET OF ACTIONS EXECUTED TO VERIFY A PARTICULAR
FEATURE OR FUNCTIONALITY OF YOUR SOFTWARE APPLICATION.
⮚ TEST CASE
✔ NEEDS TO BE SIMPLE
✔ CREATE WITH END USER MIND
✔ AVOID TEST CASE REPETITION
✔ ENSURE %100 COVERAGE
WHAT IS THE COMPENENT OF TEST CASES?
It describes at very high level the functional specifications of It describes at a high level , the functional and technical
the software specification of the software
It is a formal document describing about the requirement It specifies the functional and non-functional requirements
provided by client (written, verbal) of the software to be developed
Usually its created by the Business Analyst who interacts Usually its created by the System Architect who is an
with clients technical expert .
It is derived from client interaction and requirements It is derived from the BRS
WHAT IS TEST EXECUTION?
AS A TESTER, YOU CAN FOLLOW THESE FIVE STEPS TO CREATE TEST SCENARIOS:
• STEP 1: READ THE REQUIREMENT DOCUMENTS LIKE BRS, SRS, FRS, OF THE SYSTEM UNDER
TEST (SUT).
• STEP 2: FOR EACH REQUIREMENT, FIGURE OUT POSSIBLE USERS ACTIONS AND OBJECTIVES.
DETERMINE THE TECHNICAL ASPECTS OF THE REQUIREMENT. ASCERTAIN POSSIBLE SCENARIOS
OF SYSTEM ABUSE AND EVALUATE USERS WITH HACKER'S MINDSET.
• STEP 3: AFTER READING THE REQUIREMENTS DOCUMENT AND DOING YOUR DUE ANALYSIS, LIST
OUT DIFFERENT TEST SCENARIOS THAT VERIFY EACH FEATURE OF THE SOFTWARE.
• STEP 4: ONCE YOU HAVE LISTED ALL POSSIBLE TEST SCENARIOS, A TRACEABILITY MATRIX IS
CREATED TO VERIFY THAT EACH & EVERY REQUIREMENT HAS A CORRESPONDING TEST SCENARIO
• STEP 5: THE SCENARIOS CREATED ARE REVIEWED BY YOUR SUPERVISOR. LATER, THEY ARE ALSO
REVIEWED BY OTHER STAKEHOLDERS IN THE PROJECT.
EXAMPLE OF TEST CASES?
• REQUIREMENT TRACEABILITY MATRIX (RTM) IS A TABLE (MOSTLY A SPREADSHEET) THAT SHOWS IF EACH REQUIREMENT
HAS A RESPECTIVE TEST CASE/CASES TO MAKE SURE IF THE REQUIREMENT IS COVERED FOR TESTING.
• REQUIREMENT TRACEABILITY MATRIX HELPS TO LINK THE REQUIREMENTS, TEST CASES, AND DEFECTS ACCURATELY.
• NO SPECIAL TOOL IS REQUIRED
• WHY RTM IS IMPORTANT?
• THE MAIN AGENDA OF EVERY TESTER SHOULD BE TO UNDERSTAND THE CLIENT’S REQUIREMENT AND MAKE SURE THAT
THE OUTPUT PRODUCT SHOULD BE DEFECT-FREE. TO ACHIEVE THIS GOAL, EVERY QA SHOULD UNDERSTAND THE
REQUIREMENT THOROUGHLY AND CREATE POSITIVE AND NEGATIVE TEST CASES.
• THE TRACEABILITY MATRIX IS TYPICALLY A WORKSHEET THAT CONTAINS THE REQUIREMENTS WITH ITS ALL POSSIBLE TEST
SCENARIOS AND CASES. ON THE BASIS OF THE BUSINESS REQUIREMENT DOCUMENT (BRD) AND TECHNICAL
REQUIREMENT DOCUMENT (TRD), TESTERS START WRITING TEST CASES.
TYPES OF TRACEABILITY TEST MATRIX
• FORWARD TRACEABILITY
• BACKWARD OR REVERSE TRACEABILITY
• BI-DIRECTIONAL TRACEABILITY ( FORWARD + BACKWARD)
REQUIREMENTS
WHAT ARE TEST TECHNIQUES?
1)EQUIVALENCE PARTIONING
⮚ IN THIS METHOD, THE INPUT DOMAIN DATA IS DIVIDED INTO DIFFERENT
EQUIVALENCE DATA CLASSES. THIS METHOD IS TYPICALLY USED TO REDUCE
THE TOTAL NUMBER OF TEST CASES
⮚ 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.
EQUIVALANCE PARTIONING?
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.
EQUIVALANCE PARTIONING?
BOUNDARY VALUE ANALYSIS
⮚ In our earlier example instead of checking, one value for each partition you will check the values
at the partitions like 0, 1, 10, 11 and 99,100. As you may observe, you test values at both valid
and invalid boundaries. Boundary Value Analysis is also called range checking.
⮚ Equivalence partitioning and boundary value analysis(BVA) are closely related and can be used
together at all levels of testing.
BOUNDARY VALUE ANALYSIS
DECISION TABLE TECHNIQUE
3)DECISION TABLE TECHNIQUE=COMBINATION OF RULES AND
CONDITIONS.IF THERE IS 3 POSSIBILITY(LIKE NEW COSTUMER,OLD COSTUMER
AND COSTUMER WHO HAS COUPON FOR DISCOUNT) I WRITE 8 TEST CASES
FOR FIRST TEST CASES I WRITE 4 TRUE AND 4 FALSE RESPECTIVELEY. FOR
SECOND TEST CASES I WRITE 2 TRUE AND 2 FALSE RESPECTIVELY.AND FOR
THE THIRD ONE I WRITE 1 TRUE AND 1 FALSE.AND COMPARE THEM BASED ON
THE TRUE AND FALSE AND SEE HOW MANY POSITIVE AND HOW MANY
NEGATIVE TEST ARE THERE IN THE SCENARIO.
DECISION TABLE TECHNIQUE
EX=A SUBMIT BUTTON IN A CONTACT FORM IS ENABLED ONLY WHEN ALL THE
INPUTS ARE ENTERED BY THE END USER.
WHAT ARE TEST TECHNIQUES?
4)ERROR GUESSING
BLACK BOX TESTING IS A WAY OF SOFTWARE TESTING IN WHICH THE INTERNAL STRUCTURE OR THE
PROGRAM OR THE CODE IS HIDDEN AND NOTHING IS KNOWN ABOUT IT.GENERALLY TESTERS WORK
ON BLACK BOX TESTING.
TYPES OF BLACKBOX TESTING:
⮚ FUNCTIONAL TESTING,
⮚ NON-FUNCTIONAL,
⮚ EQUIVALENCE PARTITIONING,
⮚ BOUNDARY VALUE ANALYSIS,
⮚ DECISION TABLE TESTING,
⮚ ERROR GUESSING,
WE JUST CHECKING THE FUNCTIONALITY MEAN WE DON’T LOOK AT THE CODES(LIKE INSERT
THE MONEY AND GET COKE FROM VENDING MACHINE)
WHITE BOX TESTING?
WHITE BOX TESTING IS A WAY OF TESTING THE SOFTWARE IN WHICH THE TESTER HAS KNOWLEDGE
ABOUT THE INTERNAL STRUCTURE THE CODE OR THE PROGRAM OF THE SOFTWARE. IT IS ALSO
KNOWN AS GLASS BOX TESTING. GENERALLY DEVELOPERS WORK ON WHITE BOX TESTING.
WHAT IS YOUR STRENGTH?
⮚ ONE OF MY GREATEST STRENGTH IS MY DETERMINATION AND DEDICATION.I
ALWAYS FINISHED MY PROJECT ON TIME.
⮚ I ALSO COMMUNICATE EASILY WITH PEOPLE.
⮚ I AM ALSO SELF MOTIVATED.
⮚ I DON’T LOSE MY ANGER (TEMPER) EASILY
WHAT IS YOUR WEAKNESS?
⮚ ONE OF MY WEAKNESS IS THAT I AM AFRAID OF FAILURE,AS A TEAM MEMBER
I ALWAYS WANT TO BE ACHIEVE TO MY GOAL ON TIME.I LIKE TO PERFORM AT
MY BEST.I DON’T WANT TO LET MY TEAM DOWN BECAUSE OF ME.
⮚ MAYBE THE SECOND ONE IS THAT WHENEVER I AM GIVING SOME
RESPONSIBILITY AND THERE IS A DEADLINE FOR IT AND I CANNOT FEEL
COMFORTABLE MYSELF UNLESS I AM DONE WITH MY ASSIGNMENTS.
HOW DO YOU HANDLE STRESS?
⮚ FIRST OF ALL, I CAN CONFIDENTLY SAY THAT I'M WELL QUALIFIED FOR THIS
POSITION.
✔ I AM COMFORTABLE ABOUT TOOLS AND CONCEPT WHICH IS IN THE JOB
DESCRIPTION.
✔ I BELIEVE THAT I AM A GREAT TEAM PLAYER.
✔ I ALWAYS BRING NEW TECHNIQUES AND TOOLS THAT HELP TO JUMP
FORWARD TO THE COMPANY THAT I WORKED FOR.
✔ I'M AN EXCELLENT COMMUNICATOR, EXTREMELY MOTIVATED AND PROBLEM
SOLVER
⮚ IN FIRST WEEK, YOU KNOW, IWHAT
WILL GET
DO YOU DO IFDONE
I HIRE YOU?ALL THE PAPER WORKS,
COMPANY PLS?
⮚ WHAT KIND OF FRAME WORK YOU ARE USING IN THE COMPANY?
⮚ WHAT KIND OF SDLC METHODOLOGY ARE YOU USING IN THE COMPANY?
⮚ SO, IF YOU HIRE ME WHAT IS YOUR EXPECTATION FROM ME FOR NEXT 2
MONTHS?
⮚ AS AN AUTOMATION TESTER,I DEVELOPED TEST PLANS FROM THE REQUIREMENT
DOCUMENTS AND ALSO PERFORM VARIOUS TYPES OF TESTING LIKE REGRESSION
AND SMOKE TESTING.
⮚ I AM RESPONSIBLE FOR CHECKING SMOKE TEST AND MAKE SURE THAT
WHAT IS YOUR ROLE(RESPONSIBILITY) IN YOUR TEAM?
USER-FRIENDLY APPLICATION.
⮚ CREATE GOOD PRODUCT
WHAT IS THE MOST RECENTLY BUG THAT YOU FIND?
CLOSE(): WEBDRIVER’S CLOSE() METHOD CLOSES THE WEB BROWSER WINDOW THAT THE USER
IS
CURRENTLY WORKING ON
QUIT(): UNLIKE CLOSE() METHOD, QUIT() METHOD CLOSES DOWN ALL THE WINDOWS THAT THE
PROGRAM HAS OPENED.
WHAT ARE JVM,JRE AND JDK?
⮚ JVM (JAVA VIRTUAL MACHINE) IS AN
ABSTRACT MACHINE. IT IS CALLED A
VIRTUAL MACHINE BECAUSE IT DOESN'T
PHYSICALLY EXIST.IT CONVERTS JAVA
BYTECODE INTO MACHINE LANGUAGE
⮚ JRE IS WHAT WE NEED TO RUN A JAVA
PROGRAM AND CONTAINS SET OF
LIBRARIES AND OTHER FILES THAT JVM
USES AT RUN TIME.
• JRE = JVM + LIBRARY CLASSES
⮚ JDK IS WHAT WE NEED TO COMPILE JAVA
SOURCE CODE AND CONTAINS JRE,
DEVELOPMENT TOOLS.
• JDK = JRE + DEVELOPMENT TOOLS
WHAT ARE JUNIT ANNOTATIONS?
• @TEST: ANNOTATION LETS THE SYSTEM KNOW THAT THE METHOD ANNOTATED AS @TEST IS
A TEST METHOD. THERE CAN BE MULTIPLE TEST METHODS IN A SINGLE TEST SCRIPT.
• @BEFORE: METHOD ANNOTATED AS @BEFORE LETS THE SYSTEM KNOW THAT THIS METHOD
SHALL BE EXECUTED EVERY TIME BEFORE EACH OF THE TEST CASES(OR METHODS).
• @AFTER: METHOD ANNOTATED AS @AFTER LETS THE SYSTEM KNOW THAT THIS METHOD
SHALL BE EXECUTED EVERY TIME AFTER EACH OF THE TEST CASES(OR METHODS).
• @BEFORECLASS: METHOD ANNOTATED AS @BEFORECLASS LETS THE SYSTEM KNOW THAT
THIS METHOD SHALL BE EXECUTED ONCE BEFORE ANY OF THE TEST METHOD.
• @AFTERCLASS: METHOD ANNOTATED AS @AFTERCLASS LETS THE SYSTEM KNOW THAT THIS
METHOD SHALL BE EXECUTED ONCE AFTER ANY OF THE TEST METHOD.
• @IGNORE: METHOD ANNOTATED AS @IGNORE LETS THE SYSTEM KNOW THAT THIS METHOD
SHALL NOT BE EXECUTED.
WHAT ARE JUNIT ANNOTATIONS?
public class OutputFileTest {
⮚ IN OVERLOADING🡺 METHOD NAME MUST BE THE SAME, BUT THE PARAMETERS MUST BE DIFFERENT.RETURN TYPE
CAN BE SAME OR DIFFERENT.
⮚ IN CASE OF OVERRIDING 🡺 METHOD NAME AND PARAMETERS MUST BE SAME AND RETURN TYPE MUST BE SAME
⮚ WE CAN OVERLOAD METHOD IN THE SAME CLASS BUT METHOD OVERRIDING OCCURS IN TWO CLASSES THAT HAVE
INHERITANCE RELATIONSHIP.
⮚ WE CANNOT OVERRIDE STATIC, FINAL AND PRIVATE METHOD IN JAVA(JUST INSTANCE), BUT WE CAN OVERLOAD
STATIC, FINAL AND PRIVATE METHOD IN JAVA.
WHERE WE USE OVERLOADING IN OUR FRAMEWORK?
⮚ ASSERT.ASSERTEQUAL(EXPECTEDTITLE, ACTUALTITLE);
⮚ ASSERT.ASSERTEQUAL(EXPECTEDTITLE, ACTUALTITLE, "TITLE NOT MATCHED");
⮚ WAIT.UNTIL(EXPECTEDCONDITIONS.ELEMENTTOBECLICKABLE(WEBELEMENT
WEBELEMENT));
⮚ WAIT.UNTIL(EXPECTEDCONDITIONS.TITLEIS(“GOOGLE”));
⮚ DRIVER.FINDELEMENTS(BY.ID(“EMAIL”);
⮚ DRIVER.FINDELEMENTS(BY.ID(“PASSWORD”);
⮚ SYSTEM.OUT.PRINTLN(”HELLO”);
⮚ SYSTEM.OUT.PRINTLN(”HI”);
⮚ BROWSER.UTILS.WAIT(3);
⮚ BROWSER.UTILS.WAIT(6);
WHERE WE USE OVERRIDING IN OUR FRAMEWORK?
• SET<INTEGER> SET1 = NEW HASHSET<>();
• SET<INTEGER> SET2 = NEW LINKEDHASHSET<>();
• SET1.ADD(4); ==> HASHSET OVERRIDES ADD() METHOD FROM COLLECTION
INTERFACE
• SET2.ADD(8); ==> LINKEDHASHSET OVERRIDES ADD() METHOD FROM
COLLECTION INTERFACE
• WEBDRIVER DRIVER1 = NEW CHROMEDRIVER();
• WEBDRIVER DRIVER2 = NEW FIREFOXDRIVER();
• DRIVER1.GET("XXXXXX"); CHROMEDRIVER OVERRIDES
GET/FINDELEMENT/GETCURRENTURL/ETC. METHODS FROM WEBDRIVER INTERFACE.
• DRIVER2.GET("XXXXXX"); FIREFOXDRIVER OVERRIDES
GET/FINDELEMENT/GETCURRENTURL/ETC. METHODS FROM WEBDRIVER INTERFACE.
WHERE WE USE POLYMORPHISM IN OUR FRAMEWORK?
public class Animal{
public void sound(){
System.out.println("Animal is making a sound"); 🡺overloading
} }
class Horse extends Animal{
@Override
public void sound(){🡺overriding
System.out.println("Neigh"); } 🡺overloading
⮚ WEBDRIVER
⮚ WEBELEMENT
⮚ LIST
⮚ SET
⮚ MAP
⮚ JAVASCRIPTEXECUTER
⮚ ALERT
⮚ TAKESCREENSHOOT
⮚ LISTENERS
WHERE WE USE ABSTRACT CLASS IN OUR FRAMEWORK?
⮚ WHEN WE HAVE THE REQUIREMENT OF A CLASS THAT CONTAINS SOME
COMMON PROPERTIES OR METHODS WITH SOME COMMON PROPERTIES
WHOSE IMPLEMENTATION IS DIFFERENT FOR DIFFERENT CLASSES, IN THAT
SITUATION, IT'S BETTER TO USE ABSTRACT CLASS THEN INTERFACE.
⮚ AFTER PUT ALL COMMON METHODS INSIDE OF THE ABSTRACT CLASS,WHEN
WE EXTEND THIS CLASS FROM REGULAR CLASS ,ALL WE NEED TO DO
OVERRIDE THIS METHODS(WE DON’T NEED TO WRITE CODES OVER AND
OVER)
⮚ THIS CLASS WILL BE TEST FOUNDATION FOR ALL TEST CLASSES
⮚ GENERALLY,WE WILL PUT HERE ONLY BEFORE AND AFTER PARTS(BEFORE
METHOD , BEFORE TEST , AFTER METHOD , AFTER TEST)
⮚ GET(STRING URL);,
ABSTRACT METHODS IN SELENIUM?
⮚ QUIT();,
⮚ CLOSE();,
⮚ GETWINDOWHANDLE();,
⮚ GETWINDOWHANDLES();,
⮚ GETTITLE();,
⮚ FINDELEMENT(); AND FINDELEMENTS();,
⮚ BACK();,FORWARD();,REFRESH();,
⮚ SENDKEYS();,
⮚ CLEAR();,
⮚ CLICK();,
⮚ GETCURRENTURL();
WHERE WE USE ENCAPSULATION IN OUR FRAMEWORK?
package newtest;
class EncapsulationExample{
return empName;
}
public void setEmpName(String newName){
modifyEmpName(newName);
} }
public class EncapsulationTest{
PageFactory.initElements(MyDriver.get(), this);
}
public static void clearCookiees() {
Set<Cookie> a = MyDriver.get().manage().getCookies();
System.out.println(a);
//Delete all the cookies
MyDriver.get().manage().deleteAllCookies();
}
public void scrollDown(WebElement link) throws InterruptedException {
<profiles>
<profile>
<id>Cucumber</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<parallel>methods</parallel>
<perCoreThreadCount>false</perCoreThreadCount>
<threadCountMethods>10</threadCountMethods>
<includes>
<include>**/CucumberRunner.java</include>
<include>**/FailedRunner.java</include>
</includes>
<testFailureIgnore>false</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
⮚ Click code
⮚ Copy url address
⮚ Go to intellij
⮚ Go to VCS
⮚ Go git
⮚ Click clone
⮚ Pass url address that you copied
⮚ And then click clone
⮚ Go to github DOWNLOAD A PROJECT?