Thursday, July 8, 2021

Performance Testing Tools

Top Performance Testing Tools
  1. Load Ninja
  2. Apache JMeter
  3. Web LOAD
  4. LoadUI Pro
  5. Load View
  6. NeoLoad
  7. LoadRunner
  8. Silk Performer
  9. AppLoader
  10. SmartMeter.io
  11. Locust



Apache JMETER

JMeter is an open source tool that can be used for performance and load testing for analysing and measuring the performance of a variety of services. This tool is mainly used for web and web service applications.

Features:
  • It supports multiple load injectors managed by a single controller
  • Highly portable and supports all the Java-based apps
  • Less scripting efforts as compared to other tools
  • Simple charts and graphs for analysing key load related statistics and resource usage monitors.
  • Supports Integrated real-time, Tomcat collectors for Monitoring
  • It supports HTTP, HTTPs, XML, SOAP, Java-based protocols and FTP protocols

Blazemeter
BlazeMeter’s open-source based, enterprise ready platform unifies all the functionality you need to shift testing left - and right.

Features:
  • Functional Testing
  • Performance Testing
  • Mock Services
  • 360° API Testing

Loader.io

Loader.io is a cloud-based load testing service for developers to test performance and scalability with their web applications and APIs.

Features:
  • It provides simple cloud-based load testing
  • Load testing for web applications and APIs for performance and scalability
  • Integration with PaaS providers, continuous integration tools, and browsers
  • Allows testing up to 50,000 concurrent connections for free
  • It is cloud-based so it is a no install solution and immediately available for developers to test.

Reference Blogs:
  1. Performance Testing
  2. JMeter
  3. Blazemeter
  4. JMeter VS Loader.io

This is not the end of this Blog on Performance / Load Testing tools. I will keep on adding details on other tools in future, as and when I gain more knowledge and experience.

Thursday, December 31, 2020

Interview Questions Series

 (Q) How to deal with defects that are NOT reproducible?

Ans:  Firstly we need to know "What is reproducible defect ?" While first time you got defect and you posted it. But dev team want to know how to occur that defect then you need to reproduce that defect with same steps & data. It means second time creating same scenario for that defect. If you can't reproduce a bug you can never fix it.

Secondly we need to know "What are Non-Reproducible defects?" Observing an issue whole day and at the end of the day when you reported that defect, you find it is no more reproducible.

For example, suppose a user is unable to add products to its cart. This happens 6 out of 10 times. Issue observed only when we restart the application.

In all these cases, it is hard to determine the exact condition and report it right. Such defects take a lot of time in the investigation of.  We can't ignore these kind of defect. 

So, how we can deal with that:

  • Clear all cache and cookies while reproducible defect
  • Proper documentation needed
  • Noting down each and every step and other details (like test data, environment, system settings, screenshots, server logs etc) will be a good practice to easily replicate the scenario.
  • Sometimes looking for similar defect or patterns can be helpful in reproducing a bug. It will be easier to identify the scenario if the pattern is understood
  • Verify a few more times to determine the occurrence of defect. Do not trust and report further on the basis of one single time occurrence of the issue
  • Testing with patience is the key factor as this might and will take a lot of time
(Q) What is difference between use case and test case?

Use Case: Use case is a representation of actions which describes the behaviour of system to do a particular task. Use cases are prepared based on requirements. Business users executes use cases.

Test Case: Test case contains the test data, set of instructions to follow and a result of following the instructions. Test cases are prepared based on Use cases. Testers executes test cases.

(Q) Common challenges faced in software testing?
  • Lack of requirements documentation
  • Writing test scenario with less documentation.
  • Lack of communication
  • Unstable test environment
  • Impossibility of complete testing
  • Regression and integration testing
(Q) How to resolve inconsistent defect?

Inconsistent means which is not stable. The inconsistent bug is a bug which is not appearing during the retesting process. That means it may appear or may not appear. This is very difficult to reproduce.

To handle these kind of defects, better to attach screenshots and clear steps to reproduce with test data while logging the defect to avoid unnecessary comments by other teams.

(Q) What is RTM? What does RTM contain?

RTM stands for Requirement Traceability Matrix. Requirement traceability matrix is a document that map and trace user requirement with test case. 

The main purpose of Requirement Traceability Matrix is to validate that all requirements are checked via test cases such that no functionality is unchecked during Software testing.

The agenda of every tester should be to understand the client’s requirement and make sure that the output product should be defect-free.

(Q) Difference between Alpha and Beta testing?

Alpha Testing is a type of software testing performed to identify bugs before releasing the product to real users or to the public. Alpha Testing is one of the user acceptance testing. Alpha testing used both the white box and black box testing. Reliability and security testing are not checked in alpha testing.

Beta Testing is performed by real users of the software application in a real environment. Beta testing commonly uses black box testing. Reliability, security and robustness are checked during beta testing.

(Q) Explain Test Strategy?

In simple term, "Test Plan is a vision of what you want to achieve and Test Strategy is an action plan designed to achieve this vision."

A Test Strategy is a plan for defining an approach to the Software Testing Life Cycle (STLC). It guides QA teams to define Test Coverage and testing scope. It helps testers get a clear picture of the project at any instance. The possibility of missing any test activity is very low when there is a proper test strategy in place.

(Q) Why do you need test plan and what does test plan contain?

Test plan helps us to keep the details of the testing scope, features, and functionalities to be tested for a build. Test plan also contains details of testing techniques and tools to be used. This prevents the testing team from putting any efforts in testing 'Out of scope' functionalities. 

A Test Plan is a detailed document that describes the test strategy, objectives, schedule, estimation, deliverables, and resources required to perform testing for a software product.



(Q) What are the fields in a bug report?

Field which is available during bug report is:
  • Bug Name
  • Bug ID
  • Bug description 
  • raised by
  • priority
  • Severity
  • Assigned to
  • reported by
  • reported on 
  • Status
  • Environment




Wednesday, December 23, 2020

Azure DevOps - Questions and Answers

1) What do you understand by DevOps?

DevOps is a culture that implies the collaboration between development and operations teams in an organization. It lays special focus on delivering software products faster and lowering the failure rate of releases.


2)What is the need for DevOps?

In Traditional times, after completing the development part, the code deployment time was huge. As a result, there were issues between the Development Team and Operations Team or the deployment team regarding the server. Well, DevOps solves the Traditional Dev and Ops fights by filling the drift that existed between two.



3) List out the top DevOps tools

  • The most popular DevOps tools are given below:
  • Git: Version Control System tool
  • Jenkins: Continuous Integration tool
  • Selenium: Continuous Testing tool
  • Puppet, Chef, Ansible: Configuration Management and Deployment tools
  • Nagios: Continuous Monitoring tool
  • Docker: Containerization tool


4) What is the use of Test Automation in DevOps?

DevOps does not only revolve around jobs or tools, rather it’s about people, culture, and automation. Continuous testing plays an essential role in writing scripts for software testing and make it auto executable so that we can automate the testing and do the frequent releases using the delivery pipelines.


5) What are the popular DevOps tools for continuous integration and continuous deployment?

The obvious DevOps tools for continuous integration incorporate Jenkins, GitLab CI, TeamCity, Bamboo, Codeship, CircleCI, and Travis CI. The popular DevOps tools for continuous deployment include Azure Pipelines for Deployment, Jenkins, Bamboo, DeployBot, Shippable, ElectricFlow, and TeamCity. 


6) Name the tools that are used for Continuous Testing?

For test Automation there are many open source tools are available, following are few names

  • Selenium
  • JMeter
  • JUnit
  • AntUnit
  • Cucumber
  • SoapUI
  • Tricentis Tosca


7) Describe Azure Boards

Azure board provides service to manage your works, using the Agile Scrum and Kanban templates, Dashboard that we can customize and reporting.


8) Present one example of the use of DevOps in real life?

Real world examples of Devops:

  • Git/GitHub: For source code management and version control system.
  • Docker: For software containerization.
  • Chef: For configuration management.
  • Selenium: For automated testing.
  • Jenkins: For developing CI/CD pipelines and server automation.
  • AWS: For cloud platform integration.


9) What are the important reasons to use Azure Boards?

Azure Boards provides you with a set of predefined work item types to support tracking features, user stories, bugs, and tasks. You can quickly get up and running by using your product backlog or Kanban board. Whatever Agile method you use, Azure Boards supports you with the tools you need to implement that method.


10) What is Azure Repos?

Azure Repos is a set of version control tools that you can use to manage your code. Use version control to save your work and coordinate code changes across your team. Even if you're just a single developer, version control helps you stay organized as you fix bugs and develop new features.


11) What are Azure pipelines?

Azure Pipelines is a cloud service that you can use to automatically build and test your code project and make it available to other users. ... Azure Pipelines combines continuous integration (CI) and continuous delivery (CD) to constantly and consistently test and build your code and ship it to any target.


12) What are the reasons to use CI and CD and Azure Pipelines?

Implementation of CI and CD pipelines is one of the best approaches for ensuring reliable and quality code. This is one of the important Azure DevOps interview questions that you should focus on. Azure Pipelines offer an easy, secure, and faster approach for automation of processes to build projects and ensuring their availability.

In addition, the use of Azure Pipelines for public projects is completely free. On the other hand, using private projects is also cost-effective as you get around 30 hours of pipeline jobs per month for free. In addition, you can also present the following reasons to use Azure pipelines for CI and CD in such Azure DevOps interview questions. 

Support for any language or platform

Deployment to various types of a target simultaneously

Integration with Azure deployments

Building on Windows, Mac, and Linux machines

Integration with GitHub

Capability for working with open-source project


13) What are Azure Test Plans?

Azure Test Plans are a service with Azure DevOps that provides a browser-based test management solution. The test plans also provide crucial capabilities in exploratory testing, user acceptance testing, and planned manual testing. Azure Test Plans also have a browser extension to provide exploratory testing alongside a collection of feedback from stakeholders.

Manual and exploratory testing are important techniques for the evaluation of a product or service quality. In addition, Azure Test Plans are also responsible for realizing the focus of DevOps on automated testing. Azure Test Plans helps in assimilating the contributions from developers, testers, product owners, user experience advocates, and managers to the quality of a project. 


14) What is the role of Azure Artifact?

Azure Artifacts is an extension that makes it easy to discover, install, and publish NuGet, npm, and Maven packages in Azure DevOps. It's deeply integrated with other hubs like Build so that package management can become a seamless part of your existing workflows.


Featured Posts