i
Persistent
Systems
Work with us
Filter interviews by
Async and await are keywords in JavaScript that simplify working with asynchronous code, making it easier to read and maintain.
Async Function: Declaring a function with 'async' allows it to return a promise, enabling the use of 'await' within it.
Await Keyword: The 'await' keyword pauses the execution of an async function until the promise is resolved, making asynchronous code look synchronous.
Error Handling: Async...
This program identifies the second highest number in a list of integers, ensuring efficient comparison and handling of duplicates.
Input Array: Start with an array of integers, e.g., [3, 5, 1, 4, 2].
Remove Duplicates: Use a set to eliminate duplicates, resulting in {1, 2, 3, 4, 5}.
Sort the Array: Convert the set back to a list and sort it in descending order, yielding [5, 4, 3, 2, 1].
Select Second Element: The seco...
Playwright enables parallel test execution to speed up testing processes across multiple browsers and contexts.
Test Runner: Use Playwright Test, which supports parallel execution out of the box by running tests in multiple workers.
Configuration: Set the 'workers' option in the Playwright configuration file to define how many tests can run simultaneously. Example: 'workers: 4'.
Test Suites: Organize tests into suite...
Playwright allows easy retrieval of table data from web pages using selectors and built-in functions for automation testing.
Use CSS Selectors: Identify the table using a CSS selector, e.g., `await page.$('table')`.
Extract Rows: Retrieve all rows with `const rows = await page.$$('table tr');` to get an array of row elements.
Loop Through Rows: Iterate through the rows to extract cell data, e.g., `for (const row of r...
Playwright is a modern automation tool for web applications, offering features like multi-browser support and auto-waiting capabilities.
Multi-Browser Support: Playwright supports multiple browsers (Chromium, Firefox, WebKit) with a single API, allowing cross-browser testing easily.
Auto-Waiting: Playwright automatically waits for elements to be ready before performing actions, reducing flakiness in tests compared t...
Integrating Google Maps in Playwright involves simulating user interactions and verifying map functionalities in web applications.
Install Playwright: Use npm to install Playwright in your project with `npm install playwright`.
Launch Browser: Use Playwright to launch a browser instance, e.g., `const browser = await chromium.launch();`.
Navigate to Google Maps: Use `page.goto('https://www.google.com/maps');` to navig...
I appeared for an interview in Apr 2025, where I was asked the following questions.
Playwright is a modern automation tool for web applications, offering features like multi-browser support and auto-waiting capabilities.
Multi-Browser Support: Playwright supports multiple browsers (Chromium, Firefox, WebKit) with a single API, allowing cross-browser testing easily.
Auto-Waiting: Playwright automatically waits for elements to be ready before performing actions, reducing flakiness in tests compared to Sel...
Async and await are keywords in JavaScript that simplify working with asynchronous code, making it easier to read and maintain.
Async Function: Declaring a function with 'async' allows it to return a promise, enabling the use of 'await' within it.
Await Keyword: The 'await' keyword pauses the execution of an async function until the promise is resolved, making asynchronous code look synchronous.
Error Handling: Async/awai...
Playwright enables parallel test execution to speed up testing processes across multiple browsers and contexts.
Test Runner: Use Playwright Test, which supports parallel execution out of the box by running tests in multiple workers.
Configuration: Set the 'workers' option in the Playwright configuration file to define how many tests can run simultaneously. Example: 'workers: 4'.
Test Suites: Organize tests into suites, al...
Playwright allows easy retrieval of table data from web pages using selectors and built-in functions for automation testing.
Use CSS Selectors: Identify the table using a CSS selector, e.g., `await page.$('table')`.
Extract Rows: Retrieve all rows with `const rows = await page.$$('table tr');` to get an array of row elements.
Loop Through Rows: Iterate through the rows to extract cell data, e.g., `for (const row of rows) ...
Integrating Google Maps in Playwright involves simulating user interactions and verifying map functionalities in web applications.
Install Playwright: Use npm to install Playwright in your project with `npm install playwright`.
Launch Browser: Use Playwright to launch a browser instance, e.g., `const browser = await chromium.launch();`.
Navigate to Google Maps: Use `page.goto('https://www.google.com/maps');` to navigate t...
This program identifies the second highest number in a list of integers, ensuring efficient comparison and handling of duplicates.
Input Array: Start with an array of integers, e.g., [3, 5, 1, 4, 2].
Remove Duplicates: Use a set to eliminate duplicates, resulting in {1, 2, 3, 4, 5}.
Sort the Array: Convert the set back to a list and sort it in descending order, yielding [5, 4, 3, 2, 1].
Select Second Element: The second hi...
What people are saying about Persistent Systems
posted on 20 Nov 2024
I applied via Naukri.com and was interviewed in May 2024. There was 1 interview round.
Git stash is used to temporarily store changes that are not ready to be committed.
Git stash is used to save changes that are not ready to be committed, allowing you to switch branches or work on something else.
It is useful when you want to temporarily store changes without committing them.
You can later apply the stashed changes back to your working directory.
Example: git stash save 'work in progress'
Example: git stash ...
Conflicts in git can be handled by resolving them through merging, rebasing, or using tools like git mergetool.
Communicate with team members to understand changes causing conflicts
Resolve conflicts by manually editing files or using git mergetool
Use git rebase to reapply changes on top of another branch
Merge conflicting branches after resolving conflicts
posted on 17 Jun 2024
I applied via Naukri.com and was interviewed in May 2024. There was 1 interview round.
1. Write a java code to print smallest and largest word in the given sentence.
2.Java code to print the statement in reverse.
3. In notepad,interviewer asked us to write the code POM class and how to call it - (Basically they wanted to check the knowledge of PageFactory class.)
4.How to write the code from config file and excel sheet.
5.All Git command
posted on 19 Jun 2024
I applied via LinkedIn and was interviewed in May 2024. There was 1 interview round.
I was asked to write
1. java program for move positive numbers first and negative numbers last
2. java program to reverse the words in a string without using split method.
3. Selenium coding questions.
I applied via Approached by Company and was interviewed in Feb 2024. There were 2 interview rounds.
Test was based on Aptitude and Selenium, Java question.
Sorting a hashmap using keys without any method involves iterating through the keys and rearranging them in ascending order.
Iterate through the keys of the hashmap
Compare each key with the next key and swap them if they are in the wrong order
Continue this process until all keys are in ascending order
Use a Set to store unique keys and sort them for efficient retrieval and organization.
A Set automatically handles duplicates, ensuring all keys are unique.
Example: let keysSet = new Set(['key1', 'key2', 'key1']); // keysSet will contain 'key1', 'key2'.
Convert the Set to an array for sorting: let sortedKeys = Array.from(keysSet).sort();
Sorting can be done using the default sort method or a custom comparator.
Example: sor...
I applied via Naukri.com and was interviewed in Jan 2022. There were 3 interview rounds.
Math, logical reasoning, verbal communication
posted on 30 Jan 2025
I appeared for an interview in Dec 2024.
Basic quant and reasoning questions
Selenium MCQ
Java programs with MCQ
The driver is typically initialized in the setup method of a test automation framework.
Driver initialization is usually done in a setup method before test execution.
Commonly used methods for driver initialization include WebDriverManager, System.setProperty, and driver instantiation.
Example: WebDriverManager.chromedriver().setup();
Driver can be both static and non-static depending on the context of its usage.
Driver class can be static if it is used to initiate the WebDriver instance in a test automation framework.
Driver class can be non-static if it is used as an instance variable within a test class.
Static driver can be accessed directly without creating an object of the class.
Non-static driver requires an object of the class to be created befo...
Static variables belong to the class itself, while non-static variables belong to instances of the class.
Static variables are shared among all instances of a class
Non-static variables are unique to each instance of a class
Static variables are initialized only once, at the start of the program
Non-static variables are initialized separately for each instance of the class
Static and non-static have their own disadvantages in QA automation testing.
Static methods cannot be overridden or inherited, making it difficult to create flexible test cases.
Non-static methods require an instance of the class to be created, which can lead to increased memory usage.
Static methods can lead to tight coupling between classes, making it harder to maintain and update the code.
Non-static methods may have de...
TestNG allows parallel execution of test cases to save time and improve efficiency.
TestNG provides the 'parallel' attribute in the testng.xml file to specify the level of parallelism for test execution.
Parallel execution can be achieved at the test level, class level, method level, or suite level.
TestNG also supports parallel execution of tests across multiple classes or suites using the 'parallel' attribute in the sui...
Parallel testing in TestNG allows running tests concurrently for faster execution.
Use 'parallel' attribute in testng.xml file to specify parallel execution mode.
Set 'parallel' attribute to 'methods', 'classes', or 'tests' based on the level of parallelism needed.
Example: <suite name='MySuite' parallel='tests'>
Use 'thread-count' attribute to specify the number of threads to use for parallel execution.
Parallel methods run multiple methods concurrently within a single test, while parallel tests run multiple tests concurrently.
Parallel methods execute multiple methods within a single test class concurrently.
Parallel tests execute multiple test classes concurrently.
Parallel methods are useful for speeding up the execution of a single test, while parallel tests are useful for running multiple tests faster.
Example: Runni...
Use Rest Assured to upload a file
Use the given file path to create a File object
Use MultiPartSpecBuilder to build the request with the file
Send the request using Rest Assured's given(), when(), and post() methods
The parameter for a POST method in Postman is typically sent in the request body.
Parameters are sent in the request body in key-value pairs
Parameters can be sent as form-data, x-www-form-urlencoded, or raw JSON
Example: {"key": "value"}
Cucumber executes tests by interpreting Gherkin syntax, running steps defined in code, and reporting results.
Cucumber uses Gherkin language for writing test scenarios in a human-readable format.
Each scenario consists of Given, When, Then steps that describe the behavior of the application.
Step definitions in code map Gherkin steps to executable code, often written in Java, Ruby, or JavaScript.
Cucumber executes scenario...
Cucumber knows the step definition file based on the annotations provided in the feature files.
Cucumber uses annotations like @Given, @When, @Then to map steps in feature files to corresponding step definition methods.
Step definition files are typically placed in a separate package or directory within the project structure.
Cucumber scans the project directory for step definition files based on the package structure and...
Parameters used in cucumber are used to pass values to the step definitions in feature files.
Parameters are defined in feature files using < > syntax
Parameters can be passed to step definitions using Regular Expressions
Parameters can be used to make scenarios more reusable and dynamic
Datatable in Cucumber is used to pass multiple sets of data to a step definition in a scenario.
Datatables are defined using pipes (|) to separate values
Each row in the datatable represents a set of data passed to the step definition
Datatables can be used for parameterization and data-driven testing
Yes, I have created the test plan document at the start of the project.
Yes, I always create a test plan document at the beginning of a project to outline the testing approach and strategy.
The test plan document includes details on scope, objectives, resources, schedule, and test cases.
It helps in ensuring that all stakeholders are aligned on the testing process and expectations.
For example, in my previous project, I cr...
During the initial testing cycle of a project, focus is on establishing test cases, setting up test environments, and identifying potential issues.
Creating test cases based on requirements
Setting up test environments
Identifying potential issues and risks
Executing test cases and reporting defects
Collaborating with developers to resolve issues
Fibonacci sequence is a mathematical pattern where each number is the sum of the two preceding ones.
Fibonacci sequence is a series of numbers where each number is the sum of the two preceding ones.
The sequence starts with 1, 2, then each subsequent number is the sum of the two previous numbers (1+2=3, 2+3=5, 3+5=8, and so on).
This sequence is used in estimating because it reflects natural growth patterns found in natur...
Testing matrix is a tool used to track test coverage and automation ROI is the return on investment from implementing automation testing.
Testing matrix is a visual representation of test cases, test scenarios, and their coverage across different platforms, browsers, devices, etc.
Automation ROI is the measure of the benefits gained from automation testing compared to the costs incurred in implementing and maintaining th...
posted on 1 Jun 2024
I applied via Company Website and was interviewed before Nov 2021. There were 5 interview rounds.
Medium level Aptitude questions,and basic coding knowledge required to clear the First round
Communication skill Assessment
Program to print Fibonacci series
Declare two variables to store the first two numbers of the series
Use a loop to generate the next numbers in the series
Print each number as it is generated
Program to print palindrome
A palindrome is a word, phrase, number, or other sequence of characters that reads the same forward and backward
To check if a string is a palindrome, we can compare the first and last characters, then the second and second-to-last characters, and so on
If all pairs match, the string is a palindrome
We can use a loop to iterate through the string and compare the characters
Program to print average of number series
Create a variable to store the sum of the numbers in the series
Create a variable to store the count of numbers in the series
Loop through the series and add each number to the sum variable
Increment the count variable for each number in the series
Calculate the average by dividing the sum by the count
Print the average
Program to print sum of 2 numbers
Declare 2 variables to store the numbers
Add the variables and store the result in another variable
Print the result
posted on 3 Dec 2022
Singleton design pattern restricts the instantiation of a class to a single instance and provides a global point of access to it.
Ensures only one instance of a class exists
Provides a global point of access to the instance
Uses a private constructor to prevent external instantiation
Commonly used in logging, database connections, and configuration settings
A framework is a set of guidelines, rules, and best practices used to develop software applications.
A framework provides a structure for organizing code and helps to ensure consistency across the application.
It can include libraries, tools, and templates to simplify development.
Examples of popular frameworks include React, Angular, and Django.
Frameworks can be used for both manual and automated testing.
They can also be...
Some of the top questions asked at the Persistent Systems Qa Automation Testing Engineer interview -
based on 1 interview experience
Difficulty level
Duration
based on 1 review
Rating in categories
Software Engineer
4.6k
salaries
| ₹2.5 L/yr - ₹11 L/yr |
Senior Software Engineer
4.5k
salaries
| ₹5.1 L/yr - ₹18.8 L/yr |
Lead Software Engineer
3.6k
salaries
| ₹7.4 L/yr - ₹19.3 L/yr |
Lead Engineer
3.5k
salaries
| ₹10 L/yr - ₹27.4 L/yr |
Project Lead
2.1k
salaries
| ₹12.6 L/yr - ₹40 L/yr |
Cognizant
TCS
IBM
LTIMindtree