Friday, February 8, 2019

Regression Testing: What is it and How to Use it

Regression Testing: What is it and How to Use it

It is a common practice that when a defect is fixed, two forms of testing are done on the fixed code. The first is confirmation testing to verify that the fix has fixed the defect and the second is regression testing to ensure that the fix hasn’t broken existing functionality.
Basically, ‘Regression Testing#regression #regressiontesting #testing #retest #Selenium #Winrunner #QTP #anarsolutions’, it is the process of re-testing already functional parts of a software project. Due to any changes, bug fixes or enhancements that are carried out, it is imperative to make sure that other fully working processes or modules in the software are left unharmed. It is a process that should be compulsory in any tester’s practice.
It is important to note that the same principle applies when a new feature or functionality is added to the existing application. In the case of new functionality being added, tests can verify that the new features work as per the requirement and design specifications while regression testing can show that the new code hasn’t broken any existing functionality.
Regression Testing

When to perform Regression Testing?

Regression testing should be performed after any change is made to the code base. Additionally, regression tests should also be executed anytime a previously discovered issue has been marked as fixed and must be verified.
Your team will need to decide the regression testing schedule that best meets your needs, but most organizations find it useful to perform regression testing on a strict schedule. This may be at the end of every work day, weekly, bi-weekly, or even after every single repository commit is pushed. The more often your team can perform regression testing, the more issues can be discovered and fixed, which will lead to a more stable and functional piece of software at the end of development and leading into production.

Types of Regression Tests

As these are repetitive tests, test cases can be automated so that set of test cases alone can be easily executed on a new build. Regression test cases need to be selected very carefully so that maximum functionality is covered in a minimum set of test cases. These set of test cases need continuous improvements for newly added functionality. It becomes very difficult when the application scope is very huge and there are continuous increments or patches to the system. In such cases, selective tests need to be executed to save testing cost and time. These selective test cases are picked based on the enhancements done to the system and the parts where it can affect the most.

What are common Regression Testing Techniques?

  • Unit Regression Testing – Immediately after coding changes are complete for a single unit, a tester – typically the developer responsible for the code – re-runs all previously passed unit tests.
  • Smoke Testing – Smoke testing, also called Build Verification Testing, is a series of high-priority regression tests that are executed after code changes are merged, and before any other testing.
  • Sanity Testing – Sanity testing is a subset of functional testing that examines only the changed modules. The goal of sanity testing is assurance that new features work as designed and that defects reported in prior testing have been resolved.
  • Complete Regression – Also known as “retest all” technique, all regression test cases are executed in a complete regression. While a complete regression may be tempting for assurance that the application has been thoroughly tested, this is by definition costly and is not always practical, especially for minor releases. In general, a full regression test suite may be necessary for major releases with significant code changes, following major configuration changes such as a port to a new platform, or to assure compatibility with an updated operating system
  • Partial Regression -As an alternative to a complete regression, a partial regression strategy selects only certain tests to be run. Tests may be selected based on the priority of the test case, or they may be chosen based on the particular module(s).

Regression Test of GUI Application:

It is difficult to perform GUI (Graphical User Interface) regression test when GUI structure is modified. The test cases written on old GUI either become obsolete or need to be modified. Re-using the regression testing test cases means GUI test cases are modified according to new GUI. But this task becomes a bulky one if you have a large set of GUI test cases.
Examples of Regression Testing tools are:
  • Selenium
  • Winrunner
  • QTP
  • AdventNet QEngine
  • Regression Tester
  • vTest
  • Watir
  • actiWate
  • Rational Functional Tester
  • SilkTest
  • TimeShiftX
Most of these tools are both functional and regression test tools. Adding and updating regression test cases in an automation test suite is a cumbersome task. While selecting automation tool for regression tests, you should check if the tool allows you to add or update the test cases easily. In most cases, we need to update automated regression test cases frequently due to frequent changes in the system.

Best Practices in Regression Testing

  • Maintain a schedule: Choose a schedule of testing you can maintain throughout the software development life cycle. This avoids cases where testing is placed on the back burner.
  • Use a test management tool: Properly track all tests being performed on a regular basis, and have historical records of their performance over time. Do this using a simple test management tool of some kind. This can lead to more efficient decisions about what test cases must be executed. It can help pinpoint necessary improvements and changes in test cases. It can also drive clearer analysis of the regression testing outcomes.
  • Evaluate test prioritization: Regression testing is more difficult when the application’s scope is large and there are continuous increments or patches to the system.
Thus, we can conclude that effective regression strategy, save organizations both time and money.
http://www.anarsolutions.com/regression-testing/utm-source=Blogger.com

Tuesday, February 5, 2019

Performance Tools for .NET and ASP.NET

Performance Tools for .NET and ASP.NET

Performance optimization in software development can be a deeply polarizing issue among programmers. Fortunately, for the .NET developer there are some amazing development tools, that take the toil and presumptions, out of profiling and performance testing the code that can make your life easier!
This blog post is a list of the various types of ASP.NET tools at your disposal for finding and optimizing ASP.NET performance problems. Depending on the task, some of these tools will be much better than the others.
AMD CodeXL
CodeXL is a comprehensive tool suite that enables developers to harness the benefits of CPUs, GPUs and APUs. CodeXL is available both as a Visual Studio® extension and a standalone user interface application for Windows® and Linux®. It includes:
  • Powerful combined Host + GPU debugging
  • DirectX® 12 and Vulkan® Frame Analysis
  • Comprehensive GPU and CPU profiling
  • Static OpenCL™, OpenGL®, Vulkan® and DirectX® kernel/shader analysis capabilities
  • APU/CPU/GPU power profiling
JetBrains dotTrace
dotTrace is a performance profiler for .NET applications that works right in Visual Studio and provides great ways to detect and analyze performance bottlenecks. Some of supported types of applications
  • Profile all types of .NET applications – dotTrace helps you locate performance bottlenecks in a variety of .NET applications, including desktop applications, .NET Core, ASP.NET applications hosted on IIS or IIS Express web servers, Silverlight, WCF services, Windows services, Universal Windows Platform applications, and unit tests.
  • Timeline and more profiling modes –  Unlike “classic” performance profiling that only lets you measure method call execution time, timeline profiling reveals how calls are distributed in time.
  • New profiling experience – You can slice and dice profiling data using filters, the call tree, or diagrams. By applying filters, you get a set of time intervals selected by a specific condition. The way it works is very similar to executing a query on a database to get exactly the data you need.
  • Deep Visual Studio Integration – Profile async calls – dotTrace allows you to easily analyse asynchronous code: All “parts” of an async call are shown in one place, so that you don’t need to search for them in different call stac and many more features
RedGate ANTS
Red Gate ANTS Performance Profiler and ANTS Memory Profiler are another set of commercial tools that profile .NET executables, ASP.NET applications and Web services in IIS, IIS Express, and Web Development Server, SharePoint 2007 or 2010 collections, Silverlight applications, Windows services, and COM+ applications.
Telerik JustTrace – Telerik JustTrace is a tool for .NET developers that gathers and analyses performance and memory usage data of various types of applications, thus helping developers optimize performance, reduce memory usage, fix memory leaks and generally understand the performance and memory profile of their applications.
Many other tools for Advanced Windows & .NET Monitoring, ASP.NET Failed Request Tracing, Web Server (IIS) Access Logs, trace custom Metrics or Key Performance Indicators (KPIs) , Windows Performance Counters would be discussed in details in subsequent blogs.
Currently, we conclude that depending on what you are trying to accomplish, there are a lot of .NET monitoring tools available to you. Every application problem is different. Over time you will probably use all the different types of tools listed here. It is good to at least know what options are available to you and we hope you found this list helpful. You can write to us to further discuss info@anarsolutions.com
http://www.anarsolutions.com/performance-tools/utm-source=Blogger.com

Thursday, January 31, 2019

Deployment for ASP.NET Core

Deployment for ASP.NET Core

Deployment for ASP.NET Core
.NET Core applications can either run as a command line program with Kestrel, or under IIS. Basically, you can create two types of ASP.NET Core deployments:
  • Framework-dependent deployment. As the name implies, framework-dependent deployment (FDD) relies on the presence of a shared system-wide version of .NET Core on the target system. Because .NET Core is already present, your app is also portable between installations of .NET Core. Your app contains only its own code and any third-party dependencies that are outside of the .NET Core libraries. FDDs contain .dll files that are launched by using the dotnet utility from the command line. For example, dotnet app.dll runs an application named app.
  • Self-contained deployment. Unlike FDD, a self-contained deployment (SCD) doesn’t rely on the presence of shared components on the target system. All components, including both the .NET Core libraries and the Core runtime, are included with the application and are isolated from other Core applications. SCDs include an executable (such as exe on Windows platforms for an application named app), which is a renamed version of the platform-specific .NET Core host, and a .dll file (such as app.dll), which is the actual application.

Why Should ASP.NET Core Technology Teams Know About Docker?

Docker is actually a platform that facilitates the deployment of software in containers. The Docker website provides a helpful definition of containers and the important role they play in software development:
“A container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings. Available for both Linux and Windows based apps, containerized software will always run the same, regardless of the environment.”
A container is a software component that sits on top on another piece of software in an isolated environment. The container can be used to create an isolated environment in which to develop, test, and launch software.
Then, whether deployed on Linux or Windows-based machines, the containerized applications will run smoothly on them despite any customized settings that differ from the environment in which their code was written and tested.
Use of Hyper-V, VMWare, or other activated virtualization tools are required in order to use containers.
The 5 main benefits of Key Benefits of Docker include CI, Version Control, Portability, Isolation and Security

Use Visual Studio to automatically generate a CI/CD pipeline to deploy an ASP.NET Core web app with Docker to Azure

ASP.NET Core is a lean and composable framework for building web and cloud applications, which can be deployed to Docker containers running on an Azure Container Service. Visual Studio 2017 RC.3 and newer with the Continuous Delivery Tools for Visual Studio extension provide an easy way to set up a full continuous integration (CI) and continuous deployment (CD) pipeline for such applications.
Continuous integration means starting an automated build (and possibly running tests) whenever new code is committed to or checked into the team project’s source control repository. This gives you immediate feedback that the code builds and can potentially be deployed. Continuous delivery (or deployment) means starting an automated deployment process whenever a new successful build is available.

Wednesday, January 30, 2019

Tools used for Continuous Integration (CI) or Continuous Deployment (CD)

Tools used for Continuous Integration (CI) or Continuous Deployment (CD)

Tools used for CI/CD
  • What is CI- With the help of continuous integration, designers incorporate their code in a frequent manner into a fundamental branch of a typical system. Instead of building highlights in the detachment and presenting each of them toward the finish of the cycle, a designer will endeavor to contribute programming work items to the vault a few times on any given day.
  • What is CD- Continuous deployment expands continuous conveyance with the goal that the product assemble will naturally send in the event that it passes all tests.The last advance in a CI/CD framework will naturally send whatever form segments/bundles effectively leaving the conveyance pipeline. In such a procedure, there is no requirement for a man to choose when and what goes into creation. Such programmed deployments can be arranged for rapidly circulate parts, highlights, and fixes to clients, and give clearness on definitely what is underway.
  • Some of the tools for CI/CD– Many tools are used for CI or CD of which mention may be made of Jenkins, Travis, CircleCi, Teamcity, Codeship etc. The below mentioned tools are the important ones-
1) Jenkins- Jenkins is the main open-source venture for mechanizing your activities. Basic uses incorporate building ventures, running tests, bug recognition, code investigation, and undertaking organization. With a huge number of modules to look over, Jenkins can help groups to mechanize any errand that would somehow or another put a tedious strain on your product group. Main use is that it can ne used as a web interface that can be utilized to rapidly arrange your server.
2) Travis CI- Travis CI is a CI stage that computerizes the procedure of programming testing and organization of utilizations. With clients like Facebook, Mozilla, Twitter, Heroku, and others, it’s one of the main constant joining devices available. It’s worked as a stage that incorporates with your GitHub extends so you can begin testing your code on the fly. Some of the important functions are that it works with Email, Slack, HipChat and others for simple notices and expanded API and CMD apparatuses for custom administration.
3) CircleCi- CircleCI gives a cutting edge stage for combination and conveyance, which has helped a huge number of groups over the globe to discharge their code through form mechanization, test robotization, and an extensive organization process. You can rest guaranteed that CircleCI will expand profitability, scale easily, and work with certainty that your group requires. It is with a cutting edge approach towards the necessities of present day programming groups.
http://www.anarsolutions.com/tools-used-continuous-integration-continuous-deployment/utm-source=Blogger.com

Friday, January 25, 2019

Azure App Service

Azure App Service

Speeding up Azure App Service Builds
The Azure App Service may be incorporated with a plenty of services like GitHub, BitBucket, OneDrive, Dropbox, Visual Studio Team Services, area based or other external git repository options, while it empowers a consistent deployment work process, where Azure pulls in the latest updates from a venture published to one of these services.

Make another web application

How about we begin by making a straightforward ASP.NET Core MVC web app utilizing Visual Studio?
· click on New Project…,
· select ASP.NET Core Web Application,
· indicate a name and keep an eye on Add to Source Control,
· at that point Web Application, and
· click OK.
Following a couple of moments the format will be instated and you will have another web application.

Publish to GitHub

You may publish your source code to GitHub through Visual Studio, utilizing GitHub extension for Visual Studio, which can be downloaded as an extension:
In the wake of introducing the extension above, you may choose Team Explorer window, and from Project segment select Sync, click on Publish to GitHub, pick your record, determine name and description, and click Publish, what’s more, following a couple of moments, your code will be published to your GitHub account repository.
In the following stages, the source code from GitHub will be published to Azure App Service.

Make web app in Azure App Service

Right off the bat, you have to make another web app, by clicking on New – Web + Mobile – WebApp, at that point pick a name for your app and select an App Service Plan (the free service design likewise gives the alternative of ceaseless deployment):

Setup Continuous Deployment

To empower consistent deployment, when this web app happens to be made, from the sidebar of the web app, make selection of the Deployment Options, from the Deployment Source select GitHub, approve your record, select the venture and branch to utilize, and click Ok.
Key: SCM_REPOSITORY_PATH
Source: D:\local\repository
In the primary confer, the SCM_REPOSITORY_PATH isn’t set (utilizes default hard drive), while in the second submit the SCM_REPOSITORY_PATH to D:\local\repository is set.
Enhance Continuous Deployment Speed
As your task develops, you may see that the build process running on Azure App Service may turn out to be moderate. One tip to expand the speed of your build process is to utilize a privately mapped rendition of this drive, and to do as such you basically need to include a key esteem combine in your Application Settings.
http://www.anarsolutions.com/azure-app-service/utm_source=Blogger.com

Sunday, January 20, 2019

Bootstrap and Bulma : CSS frameworks for easy development of web interfaces

Bootstrap and Bulma : CSS frameworks for easy development of web interfaces

Bulma and Bootstrap are CSS frameworks which helps in building or developing web interfaces with ease. While they have fairly similar features, they still differ in some ways which creates the difference between these two frameworks.

Why choose Bulma?
Modern features: The latest features of CSS3 like Flexbox is currently in use with future planning of using ‘CSS Variables and CSS Grid’, Bulma aims to stay on the bleeding edge of browser technology and provide a better interface for the users.
Simple grid system: A Bulma grid is a combination wrap of many column items.
Easy-to-learn syntax: Class names are .title or .button which are easily decipherable and its modifier system including .is-large or .is-primary makes it easy to implement Bulma in a matter of minutes.
Font Awesome 5: The .icon element makes Bulma compatible with ‘Font Awesome 4’ as well as ‘Font Awesome 5’.
100+ efficient CSS helpers: The efficiency of Bulma lies in its 100+ helpers that specifically define display, color and spacing.
Responsive helpers – Typography helpers – Other helpers
No JavaScript: A steady CSS focus helps Bulma provide a solution of esy implementation in any developmental sub-context. JavaScript can be well avoided with the help of Bulma.
 Why choose Bootstrap?
jQuery plugins: jQuery plugins are used in the Bootstrap for better website interaction.
Big community: Considering how long it has been around the market, Bootstrap has a larger community than Bulma. As a result, more tools (like theming and plugins) are available, and more questions are answered around the internet.
Internet Explorer use: About 90{837330d4a8ef7eefea6ad76a2e6c839eeae477cba1366427bd0e21e978eaa9aa} of Bulma follows IE11 while Bootstrap is more compatible with this browser.
Additional elements: Elements like list group, page header and wells in Bootstrap make Bulma incompetent.
Thus both boot strap and Bulma has their own importance in their respective fields. So it is a wise decision to make when to choose Bootstrap and when to choose Bulma for designing web browsers.
http://www.anarsolutions.com/bootstrap-bulma/utm-source=Blogger.com

Tuesday, January 15, 2019

Azure App Service

Azure App Service

Speeding up Azure App Service Builds
The Azure App Service may be incorporated with a plenty of services like GitHub, BitBucket, OneDrive, Dropbox, Visual Studio Team Services, area based or other external git repository options, while it empowers a consistent deployment work process, where Azure pulls in the latest updates from a venture published to one of these services.

Make another web application

How about we begin by making a straightforward ASP.NET Core MVC web app utilizing Visual Studio?
· click on New Project…,
· select ASP.NET Core Web Application,
· indicate a name and keep an eye on Add to Source Control,
· at that point Web Application, and
· click OK.
Following a couple of moments the format will be instated and you will have another web application.

Publish to GitHub

You may publish your source code to GitHub through Visual Studio, utilizing GitHub extension for Visual Studio, which can be downloaded as an extension:
In the wake of introducing the extension above, you may choose Team Explorer window, and from Project segment select Sync, click on Publish to GitHub, pick your record, determine name and description, and click Publish, what’s more, following a couple of moments, your code will be published to your GitHub account repository.
In the following stages, the source code from GitHub will be published to Azure App Service.

Make web app in Azure App Service

Right off the bat, you have to make another web app, by clicking on New – Web + Mobile – WebApp, at that point pick a name for your app and select an App Service Plan (the free service design likewise gives the alternative of ceaseless deployment):

Setup Continuous Deployment

To empower consistent deployment, when this web app happens to be made, from the sidebar of the web app, make selection of the Deployment Options, from the Deployment Source select GitHub, approve your record, select the venture and branch to utilize, and click Ok.
Key: SCM_REPOSITORY_PATH
Source: D:\local\repository
In the primary confer, the SCM_REPOSITORY_PATH isn’t set (utilizes default hard drive), while in the second submit the SCM_REPOSITORY_PATH to D:\local\repository is set.
Enhance Continuous Deployment Speed
As your task develops, you may see that the build process running on Azure App Service may turn out to be moderate. One tip to expand the speed of your build process is to utilize a privately mapped rendition of this drive, and to do as such you basically need to include a key esteem combine in your Application Settings.
http://www.anarsolutions.com/azure-app-service/?utm-source=blogger.com