About

Hello! My name is  Mallikarjuna Reddy Duvoori, and Currently working as Senior QA Engineer who loves to create Industry standard frameworks for Web, Mobile, and API automation. Possess a good understanding of testing concepts and quality management practices and have a good understanding of Functional Automation tools.

Career Highlights:

  • Experience in designing, developing, and maintaining automated test scripts and frameworks, with a focus on improving test coverage, accuracy, and efficiency.
  • Implemented API automation framework using Rest Assured, Java, TestNG, and Maven.
  • Implemented Mobile test automation framework for both Android and iOS platforms using Appium, Java, TestNG & Maven.
  • Explored cloud services available in the market, finalize and set up cloud service which best suited the organization’s requirement, for Mobile App script execution.
  • Implemented Web automation framework using Selenium, Java, TestNG & Maven
  • Implemented performance testing framework using JMeter. Involved in the continuous integration of the automation framework with Jenkins.
  • Regularly monitor production APIs using Kibana.
  • Manipulating response data for UI validation using Charles proxy. Experience in A/B testing using the Optimizely tool.
  • Experience in Mixpanel Events tracking tool.
  • Experience in Accessibility testing.
  • Participated in peer review of manual test cases.
  • Reported and tracked defects through Jira.
  • Well-versed in various facets of testing such as Functional Testing, Usability Testing, Regression Testing, Sanity Testing, and Accessibility Testing, Cross Browser validation.
  • Certified Scrum Fundamentals from Scrum Study.
  • The team is distributed in several cities in the US, with members in India, Peru, and Costa Rica. Effectively coordinate between teams.
  • Participate in daily Standup, Sprint planning, Tech Grooming, and Retro meetings.
  • Certify the build and release features to Production for Web & Backend APIs. Excellent communication and collaboration skills, with the ability to work closely with developers and other cross-functional teams.

Access My Profile on LinkedIn & Github:

My Testing Tools:

Automation Rest Assured, Selenium WebDriver, Appium, Protractor
Languages Java
Web Technologies HTML, XML, CSS, Angular JS, Node.JS
Performance JMeter
IDE Eclipse, IntelliJ IDEA
Test Framework TestNG, Data Driven & Key Word Driven Framework 
Proxy Tool Charles Proxy
Build Tool Maven
Processes Agile-Scrum, Waterfall
Test Management Tools JIRA, Test Rail, Test Link, XRay, Confluence
Continuous Integration Tools Jenkins, Docker
Version Control GIT, Bitbucket
Data Bases MySQL Workbench
Operating Systems Ubuntu, Mac & Windows
Rest API PostMan, Swagger

Tools I explored so far:

  • K6 – API Performance Testing.
  • Perfecto – Mobile Apps Cloud Automation Testing
  • AWS Device Farm – Mobile Apps Cloud Automation Testing
  • Sauce Labs – Mobile Cloud Apps Automation Testing
  • Applitools – Visual Test Automation
  • TestLink – Configured TestLink with Selenium to update execution status in TestLink.
  • Burp Suite – Web application security Tool
  • QARK – Tool to look for several security-related Android application vulnerabilities
  • ASTRA – Automated Security Testing For REST APIs

8 thoughts on “About

  1. public static String[][] readExcelData(String filePath,String sheetName,String tableName) {
    String[][] testData = null;

    if(filePath.contains(“xlsx”)){
    try {
    XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(
    filePath));
    XSSFSheet sheet = workbook.getSheet(sheetName);
    XSSFCell[] boundaryCells = findCell(sheet, tableName);
    XSSFCell startCell = boundaryCells[0];
    XSSFCell endCell = boundaryCells[1];
    int startRow = startCell.getRowIndex() + 1;
    int endRow = endCell.getRowIndex() – 1;
    int startCol = startCell.getColumnIndex() + 1;
    int endCol = endCell.getColumnIndex() – 1;

    testData = new String[endRow – startRow + 1][endCol – startCol + 1];

    for (int i = startRow; i < endRow + 1; i++) {
    for (int j = startCol; j < endCol + 1; j++) {
    if(sheet.getRow(i).getCell(j).getCellType()==1)
    testData[i – startRow][j – startCol] = sheet.getRow(i)
    .getCell(j).getStringCellValue();
    else if(sheet.getRow(i).getCell(j).getCellType()==0) {
    if(DateUtil.isCellDateFormatted(sheet.getRow(i).getCell(j))){
    @SuppressWarnings("deprecation")
    String month = (new Integer(sheet.getRow(i).getCell(j).getDateCellValue().getMonth()+1)).toString();
    @SuppressWarnings("deprecation")
    String day = new Integer(sheet.getRow(i).getCell(j).getDateCellValue().getDate()).toString();
    @SuppressWarnings("deprecation")
    String year = (new Integer(sheet.getRow(i).getCell(j).getDateCellValue().getYear()+1900)).toString();
    if (day.length() == 1)
    day = "0"+day;
    if(month.length()==1)
    month = "0"+month;
    String date = month+"/"+day+"/"+year;
    //System.out.println(date+" date");
    testData[i – startRow][j – startCol] = date;
    }
    else{
    testData[i – startRow][j – startCol] = new Integer((int) sheet.getRow(i)
    .getCell(j).getNumericCellValue()).toString();
    }

    }
    }
    }

    } catch (FileNotFoundException e) {
    System.out.println("Could not read the Excel sheet");
    e.printStackTrace();
    } catch (IOException e) {
    System.out.println("Could not read the Excel sheet");
    e.printStackTrace();
    }

    return testData;
    }

    else{
    try {
    HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filePath));
    HSSFSheet sheet = workbook.getSheet(sheetName);
    HSSFCell[] boundaryCells = findCell(sheet, tableName);
    HSSFCell startCell = boundaryCells[0];
    HSSFCell endCell = boundaryCells[1];
    int startRow = startCell.getRowIndex() + 1;
    int endRow = endCell.getRowIndex() – 1;
    int startCol = startCell.getColumnIndex() + 1;
    int endCol = endCell.getColumnIndex() – 1;

    testData = new String[endRow – startRow + 1][endCol – startCol + 1];

    for (int i = startRow; i < endRow + 1; i++) {
    for (int j = startCol; j < endCol + 1; j++) {
    if(sheet.getRow(i).getCell(j).getCellType()==1) {
    testData[i – startRow][j – startCol] = sheet.getRow(i)
    .getCell(j).getStringCellValue();
    }
    else if(sheet.getRow(i).getCell(j).getCellType()==0) {
    if(DateUtil.isCellDateFormatted(sheet.getRow(i).getCell(j))){
    @SuppressWarnings("deprecation")
    String month = (new Integer(sheet.getRow(i).getCell(j).getDateCellValue().getMonth()+1)).toString();
    @SuppressWarnings("deprecation")
    String day = new Integer(sheet.getRow(i).getCell(j).getDateCellValue().getDate()).toString();
    @SuppressWarnings("deprecation")
    String year = (new Integer(sheet.getRow(i).getCell(j).getDateCellValue().getYear()+1900)).toString();
    if(day.length()==1)
    day = "0"+day;
    if(month.length()==1)
    month = "0"+month;
    String date = month+"/"+day+"/"+year;
    //System.out.println(date+" date");
    testData[i – startRow][j – startCol] = date;
    }
    else{
    testData[i – startRow][j – startCol] = new Integer((int) sheet.getRow(i)
    .getCell(j).getNumericCellValue()).toString();
    }
    }
    }
    }

    } catch (FileNotFoundException e) {
    System.out.println("Could not read the Excel sheet");
    e.printStackTrace();
    } catch (IOException e) {
    System.out.println("Could not read the Excel sheet");
    e.printStackTrace();
    }
    return testData;
    }

    }

    public static XSSFCell[] findCell(XSSFSheet sheet, String text) {

    String pos = "start";

    XSSFCell[] cells = new XSSFCell[2];

    for (Row row : sheet) {
    for (Cell cell : row) {
    if(cell.getCellType()==1){
    if (text.equals(cell.getStringCellValue())) {
    if (pos.equalsIgnoreCase("start")) {
    cells[0] = (XSSFCell) cell;
    pos = "end";
    } else {
    cells[1] = (XSSFCell) cell;
    }
    }
    }
    else if(cell.getCellType()==0){
    if (text.equals(cell.getNumericCellValue())) {
    if (pos.equalsIgnoreCase("start")) {
    cells[0] = (XSSFCell) cell;
    pos = "end";
    } else {
    cells[1] = (XSSFCell) cell;
    }
    }

    }

    }
    }
    return cells;
    }

    public static HSSFCell[] findCell(HSSFSheet sheet, String text) {

    String pos = "start";

    HSSFCell[] cells = new HSSFCell[2];

    for (Row row : sheet) {
    for (Cell cell : row) {
    if (cell.getCellType()==1) {
    if (text.equals(cell.getStringCellValue())) {
    if (pos.equalsIgnoreCase("start")) {
    cells[0] = (HSSFCell) cell;
    pos = "end";
    } else {
    cells[1] = (HSSFCell) cell;
    }
    }
    }
    else if (cell.getCellType()==0) {
    if (text.equals(cell.getNumericCellValue())) {
    if (pos.equalsIgnoreCase("start")) {
    cells[0] = (HSSFCell) cell;
    pos = "end";
    } else {
    cells[1] = (HSSFCell) cell;
    }
    }
    }
    }
    }
    return cells;
    }

    // This method is added for choosing the communiction type for mailing in personal information tab of eFiling application.
    public static String[] findCell(String filepath, String sheetname, String tag) throws Exception, IOException{

    System.out.println("// This method is added for choosing the communiction type for mailing in personal information tab of eFiling application.");
    XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(filepath));
    XSSFSheet sheet = workbook.getSheet(sheetname);

    String pos = "start";

    String[] cellvalue = new String[10];
    XSSFCell[] cells = new XSSFCell[10];
    int i=0;
    int firsttagreach = 0;
    for (Row row : sheet) {
    for (Cell cell : row) {
    if(cell.getCellType()==1){
    if (tag.equals(cell.getStringCellValue())) {
    pos = "end";
    }
    }
    else if(cell.getCellType()==0){
    if (tag.equals(cell.getNumericCellValue())) {
    pos = "end";
    }
    }
    if(pos.equalsIgnoreCase("end")){
    System.out.println("cell: "+cell);
    if(cell.getStringCellValue().equalsIgnoreCase(tag)&&firsttagreach!=0)
    break;
    else{
    cells[i]=(XSSFCell)cell;
    cellvalue[i]=cells[i].toString();
    i++;
    }
    firsttagreach++;
    }
    }
    if(pos.equalsIgnoreCase("end")){
    break;
    }
    }
    return cellvalue;
    }

    Like

Leave a comment