Which Metric used to Measure Test Progress?

Test metrics are used to estimate the progress of testing and its results. Through metrics, we can track the status of QA activities, measure product quality and team efficiency, and optimize the processes.

Software testing metrics are divided into three categories:

  • Process Metrics: A project’s characteristics and execution are defined by process metrics. These features are critical to the SDLC process’s improvement and maintenance (Software Development Life Cycle).
  • Product Metrics: A product’s size, design, performance, quality, and complexity are defined by product metrics. Developers can improve the quality of their software development by utilizing these features.
  • Project Metrics: Project Metrics are used to assess a project’s overall quality. It is used to estimate a project’s resources and deliverables, as well as to determine costs, productivity, and flaws.

Examples

Absolute or Base Metrics

  1. total number of test cases written/executed;
  2. number of test cases passed/failed/blocked/pending; 
  3. defects found/accepted/rejected/deferred; 
  4. critical/high/medium/low defects; 
  5. planned & actual test hours; 
  6. defects found during retesting/regression.

Derived or Calculated Metrics

  1. Test Tracking Metrics
  2. Test Effort: No. of test run per time period, test design efficiency, test review effciency, bug find rate, no of bugs per test, average time to test a bug fix
  3. Test Effectiveness
  4. Test Coverage
  5. Test Team Metrics
  6. Defect-realted Metrics: defect accepted, defected Rejected, defects deferred, Mean time to defect, fixed defects, defect leakage, critical defects, defect severity index

What is Defect Density?

Defect density is a measure of how many defects are found in a software product or component per unit of size, such as lines of code, function points, or modules.

Defect density can be calculated by dividing the number of defects by the size of the software product or component. For example, if a software product has 100 defects and 10,000 lines of code, its defect density is 0.01 defects per line of code.

What are different BDD Testing tools?

Here is the list:

  1. BeanSpec: Java-Based BDD Solution for Summarizing Component Behavior
  2. Behat: with PHP
  3. Codeception: Codecpetion is a popular framework for PHP.
  4. Concordion: Blends Automated tests in Java with Flexible and Attractive Documentation
  5. Cucumber: most popuplar, avaiable with ruby, javascript, java
  6. FitNesse: Wiki-based Acceptance Testing Framework and Collaboration Tool
  7. JDave: Java-based Test Specification Engine
  8. JBehave: JBehave is a leading BDD framework for Java and other JVM languages, such as Groovy, Kotlin, and Scala. 
  9. Quantum: is an open-source, Java-based BDD testing framework designed by Perfecto.
  10. SpecFlow: is of the most in-demand .NET BDD frameworks. There are two versions of SpecFlow: open-source and premium, known as SpecFlow+. 
  11. TestLeft: Fully Embedded Developer Testing Tool Based on the Shift Left Security
  12. Tricentis qTest: Best for BDD testing using Jira software
  13. testRigor: Super Fast Test Automation Engine with Cutting-edge Tools
     

How to Access Shadow DOM Elements in Cypress?

We use shadow method to traverse through shadow elements.

Syntax

.shadow(selector)
.shadow(selector, options)

Example

<div class="shadow-host">
  #shadow-root
  <button id="#mybutton">Click me</button>
</div>
cy.get('.shadow-host').shadow().find('#mybutton').click()

How to interact with DOM elements in Cypress?

Some commands in Cypress are for interacting with the DOM such as:

  • .click()
  • .dblclick()
  • .rightclick()
  • .type()
  • .clear()
  • .check()
  • .uncheck()
  • .select()
  • .trigger()
  • .selectFile()


Also Cypress.dom.method() is a collection of DOM related helper methods.

  • Cypress.dom.isAttached($el)
  • Cypress.dom.isDescendent($el.parent(), $el)
  • Cypress.dom.isDetached($el)
  • Cypress.dom.isDocument($el)
  • Cypress.dom.isDom($el)
  • Cypress.dom.isElement($el)
  • Cypress.dom.isFocusable($el)
  • Cypress.dom.isFocused($el)
  • Cypress.dom.isHidden($el)
  • Cypress.dom.isJquery($el)
  • Cypress.dom.isVisible($el)
  • Cypress.dom.isWindow($el)
  • Cypress.dom.unwrap($el)
  • Cypress.dom.wrap($el)

What are Aggregate Functions in MySQL?

Aggregate functions that operate on sets of values. They are often used with a GROUP BY clause to group values into subsets.

Here are few aggregate functions used in MySQL:

  1. AVG()
  2. COUNT()
  3. MAX()
  4. MIN()
  5. SUM()

How ROWNUM works in Oracle?

For each row returned by a query, the ROWNUM pseudocolumn returns a number indicating the order in which Oracle selects the row from a table or set of joined rows. The first row selected has a ROWNUM of 1, the second has 2, and so on.

You can use ROWNUM to limit the number of rows returned by a query, as in this example:

SELECT * FROM employees WHERE ROWNUM < 10;

How to run Cypress headless?

Here is the command

Chrome

npx cypress run --headless -b chrome 

Firefox

npx cypress run --headed --browser firefox

You can use --browser also instead of -b. 

How to Debug Cypress Tests?

Using Debugger

it('Debugging using Debugger', () => {
    cy.visit('#')
    
    cy.get('#xyz').then(($element) => {
        debugger
    })
})

Using Debug Command

it('Using Debug Command', ()=>{
    cy.visit("#");
    cy.get('#xyz').debug();
})

Using Pause Command

it('Using Pause', ()=>{
    cy.visit("#");
    cy.pause();
    cy.get('#xyz').click();
})

Using Console Logs

Cypress debugging using console logs

Using Errors

Cypress prints several pieces of information when an error occurs during a Cypress test: Error name, Error message, Learn More, Code Frame File, Code Frame, View Stack Trace, Print to console button.

teststep banner