Skip to content

Blogs

Fix: Error occurred during a cryptographic operation.

Decaying Code - Maxime Rouiller - 6 hours 52 min ago

Have you ever had this error while switching between projects using the Identity authentication?

Are you still wondering what it is and why it happens?

Clear your cookies. The FedAuth cookie is encrypted using the defined machine key in your web.config. If there is none defined in your web.config, it will use a common one. If the key used to encrypt isn't the same used to decrypt?

Boom goes the dynamite.

Categories: Blogs

Renewed MVP ASP.NET/IIS 2015

Decaying Code - Maxime Rouiller - 6 hours 52 min ago

Well there it goes again. It was just confirmed that I am renewed as an MVP for the next 12 months.

Becoming an MVP is not an easy task. Offline conferences, blogs, Twitter, helping manage a user group. All of this is done in my free time and it requires a lot of time.But I'm so glad to be part of the big MVP family once again!

Thanks to all of you who interacted with me last year, let's do it again this year!

Categories: Blogs

Failed to delete web hosting plan Default: Server farm 'Default' cannot be deleted because it has sites assigned to it

Decaying Code - Maxime Rouiller - 6 hours 52 min ago

So I had this issue where I was moving web apps between hosting plans. As they were all transferred, I wondered why it refused to delete them with this error message.

After a few click left and right and a lot of wasted time, I found this blog post that provides a script to help you debug and the exact explanation as to why it doesn't work.

To make things quick, it's all about "Deployment Slots". Among other things, they have their own serverFarm setting and they will not change when you change their parents in Powershell (haven't tried by the portal).

Here's a copy of the script from Harikharan Krishnaraju for future references:

Switch-AzureMode AzureResourceManager
$Resource = Get-AzureResource

foreach ($item in $Resource)
{
	if ($item.ResourceType -Match "Microsoft.Web/sites/slots")
	{
		$plan=(Get-AzureResource -Name $item.Name -ResourceGroupName $item.ResourceGroupName -ResourceType $item.ResourceType -ParentResource $item.ParentResource -ApiVersion 2014-04-01).Properties.webHostingPlan;
		write-host "WebHostingPlan " $plan " under site " $item.ParentResource " for deployment slot " $item.Name ;
	}

	elseif ($item.ResourceType -Match "Microsoft.Web/sites")
	{
		$plan=(Get-AzureResource -Name $item.Name -ResourceGroupName $item.ResourceGroupName -ResourceType $item.ResourceType -ApiVersion 2014-04-01).Properties.webHostingPlan;
		write-host "WebHostingPlan " $plan " under site " $item.Name ;
	}
}
      
    
Categories: Blogs

Switching Azure Web Apps from one App Service Plan to another

Decaying Code - Maxime Rouiller - 6 hours 52 min ago

So I had to do some change to App Service Plan for one of my client. The first thing I was looking for was to do it under the portal. A few clicks and I'm done!

But before I get into why I need to move one of them, I'll need to tell you about why I needed to move 20 of them.

Consolidating the farm

First, my client had a lot of WebApps deployed left and right in different "Default" ServicePlan. Most were created automatically by scripts or even Visual Studio. Each had different instance size and difference scaling capabilities.

We needed a way to standardize how we scale and especially the size on which we deployed. So we came down with a list of different hosting plans that we needed, the list of apps that would need to be moved and on which hosting plan they currently were.

That list went to 20 web apps to move. The portal wasn't going to cut it. It was time to bring in the big guns.

Powershell

Powershell is the Command Line for Windows. It's powered by awesomeness and cats riding unicorns. It allows you to do thing like remote control Azure, import/export CSV files and so much more.

CSV and Azure is what I needed. Since we built a list of web apps to migrate in Excel, CSV was the way to go.

The Code or rather, The Script

What follows is what is being used. It's heavily inspired of what was found online.

My CSV file has 3 columns: App, ServicePlanSource and ServicePlanDestination. Only two are used for the actual command. I could have made this command more generic but since I was working with apps in EastUS only, well... I didn't need more.

This script should be considered as "Works on my machine". Haven't tested all the edge cases.

Param(
    [Parameter(Mandatory=$True)]
    [string]$filename
)

Switch-AzureMode AzureResourceManager
$rgn = 'Default-Web-EastUS'

$allAppsToMigrate = Import-Csv $filename
foreach($app in $allAppsToMigrate)
{
    if($app.ServicePlanSource -ne $app.ServicePlanDestination)
    {
        $appName = $app.App
		    $source = $app.ServicePlanSource
		    $dest = $app.ServicePlanDestination
        $res = Get-AzureResource -Name $appName -ResourceGroupName $rgn -ResourceType Microsoft.Web/sites -ApiVersion 2014-04-01
        $prop = @{ 'serverFarm' = $dest}
        $res = Set-AzureResource -Name $appName -ResourceGroupName $rgn -ResourceType Microsoft.Web/sites -ApiVersion 2014-04-01 -PropertyObject $prop
        Write-Host "Moved $appName from $source to $dest"
    }
}
    
Categories: Blogs

Microsoft Virtual Academy Links for 2014

Decaying Code - Maxime Rouiller - 6 hours 52 min ago

So I thought that going through a few Microsoft Virtual Academy links could help some of you.

Here are the links I think deserve at least a click. If you find them interesting, let me know!

Categories: Blogs

Temporarily ignore SSL certificate problem in Git under Windows

Decaying Code - Maxime Rouiller - 6 hours 52 min ago

So I've encountered the following issue:

fatal: unable to access 'https://myurl/myproject.git/': SSL certificate problem: unable to get local issuer certificate

Basically, we're working on a local Git Stash project and the certificates changed. While they were working to fix the issues, we had to keep working.

So I know that the server is not compromised (I talked to IT). How do I say "ignore it please"?

Temporary solution

This is because you know they are going to fix it.

PowerShell code:

$env:GIT_SSL_NO_VERIFY = "true"

CMD code:

SET GIT_SSL_NO_VERIFY=true

This will get you up and running as long as you don’t close the command window. This variable will be reset to nothing as soon as you close it.

Permanent solution

Fix your certificates. Oh… you mean it’s self signed and you will forever use that one? Install it on all machines.

Seriously. I won’t show you how to permanently ignore certificates. Fix your certificate situation because trusting ALL certificates without caring if they are valid or not is juts plain dangerous.

Fix it.

NOW.

Categories: Blogs

The Yoda Condition

Decaying Code - Maxime Rouiller - 6 hours 52 min ago

So this will be a short post. I would like to introduce a word in my vocabulary and yours too if it didn't already exist.

First I would like to credit Nathan Smith for teaching me that word this morning. First, the tweet:

Chuckling at "disallowYodaConditions" in JSCS… https://t.co/unhgFdMCrh — Awesome way of describing it. pic.twitter.com/KDPxpdB3UE

— Nathan Smith (@nathansmith) November 12, 2014

So... this made me chuckle.

What is the Yoda Condition?

The Yoda Condition can be summarized into "inverting the parameters compared in a conditional".

Let's say I have this code:

string sky = "blue";if(sky == "blue) {    // do something}

It can be read easily as "If the sky is blue". Now let's put some Yoda into it!

Our code becomes :

string sky = "blue";	if("blue" == sky){    // do something}

Now our code read as "If blue is the sky". And that's why we call it Yoda condition.

Why would I do that?

First, if you're missing an "=" in your code, it will fail at compile time since you can't assign a variable to a literal string. It can also avoid certain null reference error.

What's the cost of doing this then?

Beside getting on the nerves of all the programmers in your team? You reduce the readability of your code by a huge factor.

Each developer on your team will hit a snag on every if since they will have to learn how to speak "Yoda" with your code.

So what should I do?

Avoid it. At all cost. Readability is the most important thing in your code. To be honest, you're not going to be the only guy/girl maintaining that app for years to come. Make it easy for the maintainer and remove that Yoda talk.

The problem this kind of code solve isn't worth the readability you are losing.

Categories: Blogs

Do you have your own Batman Utility Belt?

Decaying Code - Maxime Rouiller - 6 hours 52 min ago
Just like most of us on any project, you (yes you!) as a developer must have done the same thing over and over again. I'm not talking about coding a controller or accessing the database.

Let's check out some concrete examples shall we?

  • Have you ever setup HTTP Caching properly, created a class for your project and call it done?
  • What about creating a proper Web.config to configure static asset caching?
  • And what about creating a MediaTypeFormatter for handling CSV or some other custom type?
  • What about that BaseController that you rebuild from project to project?
  • And those extension methods that you use ALL the time but rebuild for each projects...

If you answered yes to any of those questions... you are in great risk of having to code those again.

Hell... maybe someone already built them out there. But more often than not, they will be packed with other classes that you are not using. However, most of those projects are open source and will allow you to build your own Batman utility belt!

So once you see that you do something often, start building your utility belt! Grab those open source classes left and right (make sure to follow the licenses!) and start building your own class library.

NuGet

Once you have a good collection that is properly separated in a project and that you seem ready to kick some monkey ass, the only way to go is to use NuGet to pack it together!

Checkout the reference to make sure that you do things properly.

NuGet - Publishing

OK you got a steamy new hot NuGet package that you are ready to use? You can either push it to the main repository if your intention is to share it with the world.

If you are not ready quite yet, there are multiple way to use a NuGet package internally in your company. The easiest? Just create a Share on a server and add it to your package source! As simple as that!

Now just make sure to increment your version number on each release by using the SemVer convention.

Reap the profit

OK, no... not really. You probably won't be money anytime soon with this library. At least not in real money. Where you will gain however is when you are asked to do one of those boring task yet over again in another project or at another client.

The only thing you'll do is import your magic package, use it and boom. This task that they planned would take a whole day? Got finished in minutes.

As you build up your toolkit, more and more task will become easier to accomplish.

The only thing left to consider is what NOT to put in your toolkit.

Last minute warning

If you have an employer, make sure that your contract allows you to reuse code. Some contracts allows you to do that but double check with your employer.

If you are a company, make sure not to bill your client for the time spent building your tool or he might have the right to claim them as his own since you billed him for it.

In case of doubt, double check with a lawyer!

Categories: Blogs

Software Developer Computer Minimum Requirements October 2014

Decaying Code - Maxime Rouiller - 6 hours 52 min ago

I know that Scott Hanselman and Jeff Atwood have already done something similar.

Today, I'm bringing you the minimum specs that are required to do software development on a Windows Machine.

P.S.: If you are building your own desktop, I recommend PCPartPicker.

ProcessorRecommendation

Intel: Intel Core i7-4790K

AMD: AMD FX-9590

Unless you use a lot of software that supports multi-threading, a simple 4 core here will work out for most needs.

MemoryRecommendation

Minimum 8GB. 16GB is better.

My minimum requirement here is 8GB. I run a database engine and Visual Studio. SQL Server can easily take 2Gb with some big queries. If you have extensions installed for Visual Studio, it will quickly raise to 1GB of usage per instance and finally... Chrome. With multiple extensions and multiple pages running... you will quickly reach 4GB.

So get 8GB as the bare minimum. If you are running Virtual Machines, get 16GB. It won't be too much. There's no such thing as too much RAM when doing software development.

Hard-driveRecommendation

512 GB SSD drive

I can't recommend enough an SSD. Most tools that you use on a development machine will require a lot of I/O. Especially random read. When a compiler starts and retrieve all your source code to compile, it will need to read from all those file. Same thing if you have tooling like ReSharper or CodeRush. I/O speed is crucial. This requirement is even more important on a laptop. Traditionally, PC maker put a 5200RPM HDD on a laptop to reduce power usage. However, 5200 RPM while doing development will be felt everywhere.

Get an SSD.

If you need bigger storage (terabytes), you can always get a second hard-drive of the HDD type instead. Slower but capacities are also higher. On most laptop, you will need external storage for this hard drive so make sure it is USB3 compatible.

Graphic Card

Unless you do graphic rendering or are working with graphic tools that require a beast of a card... this is where you will put the less amount of money.

Make sure to get enough of them for your amount of monitors and that they can provide the right resolution/refresh rate.

Monitors

My minimum requirement nowadays is 22 inches. 4K is nice but is not part of the "minimum" requirement. I enjoy a 1920x1080 resolution. If you are buying them for someone else, make sure they can be rotated. Some developers like to have a vertical screen when reading code.

To Laptop or not to Laptop

Some company go Laptop for everyone. Personally, if the development machine never need to be taken out of the building, you can go desktop. You will save a bit on all the required accessories (docking port, wireless mouse, extra charger, etc.).

My personal scenario takes me to clients all over the city as well as doing presentations left and right. Laptop it is for me.

Categories: Blogs

SVG are now supported everywhere, or almost

Decaying Code - Maxime Rouiller - 6 hours 52 min ago

I remember that when I wanted to draw some graphs on a web page, I would normally have 2 solutions

Solution 1 was to have an IMG tag that linked to a server component that would render an image based on some data. Solution 2 was to do Adobe Flash or maybe even some Silverlight.

Problem with Solution 1

The main problem is that it is not interactive. You have an image and there is no way to do drilldown or do anything with it. So unless your content was simple and didn't need any kind of interaction or simply was headed for printing... this solution just wouldn't do.

Problem with Solution 2

While you now get all the interactivity and the beauty of a nice Flash animation and plugin... you lost the benefits of the first solution too. Can't print it if you need it and over that... it required a plugin.

For OSX back in 2009, plugins were the leading cause of browser crash and there is nothing that stops us from believing that similar things aren't true for other browsers.

The second problem is security. A plugin is just another attack vector on your browser and requiring a plugin to display nice graphs seem a bit extreme.

The Solution

The solution is relatively simple. We need a system that allows us to draw lines, curves and what not based on coordinate that we provide it.

That system should of course support colors, font and all the basic HTML features that we know now (including events).

Then came SVG

SVG has been the main specification to drawing anything vector related in a browser since 1999. Even though the specification started at the same time than IE5, it wasn't supported in Internet Explorer until IE9 (12 years later).

The support for SVG is now in all major browsers from Internet Explorer to FireFox and even in your phone.

Chances are that every computer you are using today can render SVG inside your browser.

So what?

SVG as a general rule is under used or thought of something only artists do or that it's too complicated to do.

My recommendation is to start cracking today on using libraries that leverage SVG. By leveraging them, you are setting yourself apart from others and can start offering real business value to your clients right now that others won't be able to.

SVG has been available on all browsers for a while now. It's time we start using it.

Browsers that do not support SVG
  • Internet Explorer 8 and lower
  • Old Android device (2.3 and less), partial support for 3-4.3
References, libraries and others
Categories: Blogs

5 Important Things You'd NOT Want to Miss While Testing Video Games

Software Testing Zone - Wed, 05/27/2015 - 13:00
Gaming, be it online games, mobile games, console games or PC games, is a multi-billion dollar industry and no child's play (pun intended)! Hence, expert-level game testing is of highest importance to any game’s success. Games that are built for mobile are totally different than the web-based games, which in turn are completely different than console or PC games. However, quality of the game is critical no matter which media platform you're testing for.
A high-quality game aims to meet and exceed the expectations of the players, remembering to throw in enough challenges to make the game-play interesting. It also is tested to pass the cross-platform performance criteria without compromising on the player's privacy and security.
If your game has glitches, lags while playing, doesn’t load characters and scenes, has rendering issues, kicks players out of their sessions in middle of game play, often crashes or fails to save a high score, then the players/users will walk away frustrated, will never come back and might even caution their friends not to bother. Here are a few common challenges faced by video game testers:Testing Multiplayer Support
This can be a huge challenge especially when you are trying to emulate players who aren’t in the same room and rather playing from whole different geographies. Multiplayer games are a pain to test, hard to debug, can contain issues that are nearly impossible to reproduce and can break easily (flaky network connections, anyone?).

To mitigate this challenge, make sure that the game you're testing is robustly designed, makes use of some of the best game development frameworks like Unity, Unreal etc, has been unit tested on at least one Android and one iOS devices. Oh yes, make sure you setup realistic cross-platform, cross-connection networks before commencing testing. In short, don't be lazy and refrain from testing with your buddy tester who shares your cubicle (and your network connection)!Game Authenticity ChallengesNo gamer would ever want their saved game or high score ruined just because there is a bug in the game's authentication module. Imagine spending session after sessions worth of time (and possibly dollars on buying those weapons and gears), unlocking those difficult levels only to find out that you have lost everything because the game forgot your last saved game data along with the unlocked levels (and weapons)!Testing Across Various Game EnginesAs they say, choosing the right game engine often proves to be the first step in deciding the success (or failure) of a game. With the advent of so many games platforms over the past few years and the release of the latest generation of consoles like the Play Station 4, Microsoft Xbox One and Wii U, selecting the right game engine can be difficult. With so many game engines available for each of these platforms, it can be a hair-pulling moment if you're a game tester. e.g.  many PlayStation games are developed using GameMaker game engine while most online casinos like Mansion Casino prefer PlayTech!
Although this is a decision that is often taken by the game studio executives and lead programmers, as a game tester it means you have to be trained and ready to test in most (if not all) of these latest game engines and platforms. Ensuring Accurate Social IntegrationIt was not too long back when Facebook introduced social media games and in 2013 when the launch of Wii U (and Miiverse that came with it) made it obvious that social integration and social media as a whole were going to play a major role in videogames over the coming years. Today, the video games are becoming increasingly more connected to various social networks, but this also means that as game testers you will have to be even more attentive.
Social media can be a double-edged sword; if used intelligently can not only serve as a way to bring together like-minded gamers into a closely knit community, it can also be a great way for the companies to push their products (gaming accessories, weapons, gears etc) to targeted and loyal gamers. However, if done poorly it can be the end of the game and the gaming studio! Hence, as the game tester you need to make sure that the social integration is accurate, and is able to be interesting to the demography that your game is targeting.Game' Ability to Withstand Heavy, Concurrent LoadNo testing is complete without a round of good, old load testing before the product can be launched and it applies to Game Testing as well. With more and more network based games emerging everyday, and the focus shifting to MMO and MORPG games, your game should be tested to withstand real-time concurrent load before it can be shipped. Load testing should be done to achieve consistent performance across all hardware/software/platform/device combinations that your target audience might use.
Categories: Blogs

Tips for Becoming an Expert Video Game Tester

Software Testing Zone - Wed, 05/27/2015 - 12:57

"Recently I came to know from a friend about career in video game testing and it sounds too good to be true; doing what I enjoy doing most (playing video games) and getting paid for the same sounds awesome. I am still trying to wrap my mind around the fact that someone can actually get to play the latest video games all the time and get paid good salary for... uh... playing games! I think I already have the basic traits to become a good video game tester and I have love and passion for video games. What's the requirement for video game testers? What are a video game tester's main responsibilities? Can you please give me some instructions on becoming an expert game tester?"  --A Video Game Tester Wannabe
If you are also wondering if you should start a career in video game testing industry, this article is for you. The gaming industry itself has come a long way in the past decade and as the modern day games like the latest cutting edge games from EA are evolving and becoming more interactive, feature-rich, faster and complex the need for good gaming tester who can push the limits of these games also has increased.
What is Video Game Testing?

Like any other testing related activities, video game testing has an important role in the video game development. Testing begins while the game is still in development phase ("alpha" or early versions of the game) and when finished, the game testers go a final end-to-end testing to ensure that gamers have a good experience out of it. Like software testers, video game testers perform video game testing to find mistakes, defects, bugs and other issues that could frustrate or turn off the end user (gamers) if not fixed.
Video Game Testing; Not as Easy as It Sounds!But do not let the word 'game' in the job description fool you. Video game testing is a complex job and involves meticulous planning, can be tedious at times and requires an structural, disciplined approach to product testing, which in this case is a 'video game'. A good game tester is required to have a good pair of eye for detail, out-of-the box critical thinking and the ability to remain focused while on the job.
What are the Qualities of an Excellent Video Game Tester?Some of the fundamental qualities and skills that video game studios look for in a good game tester are:

Computer/Game Skills: Prior experience with games and game play, basic know-how of computer programming and fundamental understanding of computer hardware components. To become successful in this area, hone your video game skills, learn about various genres like puzzle games, FPS (first person shooters), arcades, multiplayer games, online games, mobile games, console games  etc. Keeping up-to-date on latest gaming trends will help you in this career.
Attention to Details: A good tester needs to be very meticulous and must have excellent attention span. If you get bored of a game after you’ve been testing it for a while, then this job is not for you. To become successful in this area, beta test new video games that you can find. Game studios often release beta versions of their upcoming games to get user feedback and you can use that to hone your testing skills.
A Good Bug Hunter: A good tester needs to be able to detect bugs, find reliable ways to make them happen easily, and document the shortest steps so the development team can replicate and fix those bugs. To become successful in this area, use beta release games to find bugs and glitches and write them up in a nice bug report. When you contact the game studio with your report, try to be as detailed as you can and who knows they might give you a job if they think you are good at it!
Communication Skills: Both verbal as well as written communication skills are the key here. A game tester needs to constantly communicate with the programming team and fellow testers to inform them about the bugs and other issues that they find. So the ability to document your bugs precisely and concisely in the bug tracking tool, to explain it to the dev. team if the need arises and to inform other testers about it so they are also aware of the existing problems are going to help.
Soft Skills: Other soft skills like good attitude, being a team player and getting along with co-workers will be an added advantage. And yes, testing is hard work and can often be tedious and extremely frustrating at times. So keeping a cool head in those circumstances is a big plus.Word of Caution! But before you make up your mind and decide to become a video game tester, keep this in mind! These days the field of video game testing has come under serious criticism for being excessively strenuous and lack of much rewards, both financially and emotionally. But if you think you're passionate about video games and want to make a career out of it, this is probably for you.
If you are someone who expects to just play video games all day and get paid then you will be hugely disappointed. But testers who realize that video game testing is a serious job and hone their skills accordingly will be much more successful. Here are top 5 challenges in video game testing career and how to overcome them!
Categories: Blogs

Upcoming ASTQB Conference 2015 and Free Webinar

I hope you had a great weekend!

I want to let you know about two events that will add value to your testing efforts.  I'm very excited to be a speaker at the upcoming ASTQB Conference 2015 in Washington, D.C. on September 14 - 16. This is a special conference because we are giving focus to critical topics such as Cybersecurity Testing, Testing of Critical Applications, The Business Value of Testing, Agile Testing, and Test Leadership. In this conference, our goal is to provide valuable take-away ideas for increasing the reliability, security and quality of software projects.
I often tell my clients there are two places you don't want to be during or after a project - the newspaper and the courtroom. Your organization's reputation is at stake with every project. I'm sure, like me, you hear stories every week of another cyber attack, system failure, or failed project. The costs of these failures are enormous.
At this conference, we are bringing together some of the country's leading experts on cybersecurity, software quality, and test management to provide real-world solutions to some of the most challenging issues we face as software testers.
Early-bird pricing is still available until June 15. But, if you use the code "astqb2015a2u" during registration, you get an extra 10% discount!
To see more information and to register, just go to http://www.astqb.org/certified-tester-resources/astqb-software-testing-conference/
Free Webinar - Thursday, June 4 from 1 p.m. to 2 p.m. EDT
As part of the lead-up to the ASTQB Conference 2015, Taz Daughtrey and I will be presenting a free one-hour webinar on how to "Protect Your Company - and Your Software Testing Career." This free sneak peek of the ASTQB Conference will preview the keynote topics, tutorials and breakout sessions that are designed to keep you out of trouble.
In addition to the preview of the conference topics, Taz and I will share some practical information you can use immediately in testing cyber security, mobile applications and agile projects. I'll discuss a few of the new "Free and Cheap Tools" I have found recently as well.
I promise it will be an entertaining and informative time!
To register, visit https://attendee.gotowebinar.com/register/1292443299731168257
Very important note: This webinar will be full at 100 people. We will probably get 300 or more registrants, so if you want to actually get in to the session, you will want to log in early - at least 15 minutes prior.
I really hope you can join me at one or both of these events!
Thanks for reading,
Randy
Categories: Blogs

Hacker-proof your App Using Functional Tests

Testing TV - Tue, 05/26/2015 - 17:32
Many Functional Testing/QA Engineers don’t have insights into Security vulnerabilities. Usually an enterprise has a separate security testing team solely for that task and functional testers have to rely on them for the security audit. Security is an important part of Testing but not every build of the application is tested for security issues. All […]
Categories: Blogs

The Importance of Cost-effective Software Testing

Software Testing Zone - Tue, 05/26/2015 - 13:31
The digital world is becoming hugely popular around the world. Business houses are taking several steps to promote their business globally. However, in order to do that, one needs to go for effective software testing. The online industry has really helped businesses expand and promote their products on a large scale. To say the least, the importance of cost-effective software testing is immense. Before delving further into the topic, it is really essential to understand what software testing exactly is.  
Software testing is basically directed towards ensuring that the desired software meets its predefined objectives. For instance, an application crafted to view several pictures needs to carry out basic tasks like displaying the image properly. Software applications or tools have become a basic requirement of sorts for almost every company, irrespective of whether the firm is a large scale establishment or a small scale business. Many companies take advantage of these products in order to track viruses and other malware issues within their computing systems. Some other companies, on the other hand, seek the guidance of a professional developer in order to have a stern and safe program pre-installed. Software testing services will reassure whether the software is an apt one or not. This procedure is normally useful to recognize the safety, completeness, quality and correctness of the computer software.  

The dependency of companies on the digital world and the Internet is increasing at a swift rate. It is extremely important to carry out some online research on the online software testing company. Choosing a cost-effective service provider is never an easy task in the online industry. An important factor that one should take into consideration is the experience of the company. An experienced team of experts can certainly do well with anyone’s project. Their testing techniques and methods are usually up to the mark. One should get an idea regarding the company’s working ways before appointing their team. No doubt, there are several testing firms and consultancies that can be appointed for flexible solutions. However, an informed decision should be made regarding the same.  The importance of cost-effective software testing is as follows.  To Enhance Quality Software products and computers are used a great deal in several critical industries, including airplanes, air traffic control, medical diagnosis and market reporting. Even a small bug in the application can lead to some serious issues and losses for the company. Therefore, the quality of the software testing process matters a lot and which calls for the need to check the standards of the desired company before appointing them.  For Validation and Verification Validation and verification of software is the procedure of evaluating whether the computer system meets its predefined objectives or not. Proper planning should be done before the validation and the verification process so that the results are suitable and effective. This procedure can be easily executed by any other company that developed or has the potential to create the software product. However, an independent testing company can do better when it comes to software testing.  For Dependability Estimation From the client’s perspective, dependability implies how reliable the software product actually is. In the field of medical diagnosis, even a small wrong suggestion to the physician can result in heavy loss of life. This is the reason why crucial software products are comprehensively checked for all major aspects of its methodology.  Prove Operability and Usability One of the most significant objectives of software testing process is to prove or test the usability and effectiveness of the product. Usability testing is a process in which the product is carefully released to a chosen group of clients and their functioning with the software is observed. All the major aspects of a client’s interaction with the product, such as simplicity, are analyzed and recorded. Put a Stop to Defect Migration Errors and issues that are normally introduced in the software need to be detected. In case the issues are detected early on, they can be prevented from migrating to the next development phase.  Software testing has innumerable applications within the digital world. Every business owner needs to select a suitable service provider that can help the business grow in the long run. Cost-effective software testing is the most important thing to carry out for an online business.
Categories: Blogs

Talkin' 'bout test in a differrent light

Ben Simo - Questioning Software - Tue, 05/26/2015 - 10:01
Pullin' out my big black book
Cause when I need a word defined that's where I look
So I move to the L's quick, fast, in a hurry
Threw on my specs, thought my vision was blurry
I look again but to my dismay
It was black and white with no room for grey
Ya see, a big "V" stood beyond my word
And yo that's when it hit me, that luv is a verb.

Words come easy but they don't mean much
When the words they're sayin' we can put trust in
We're talkin' 'bout love in a different light
And if we all learn to love it would be just right.

- DC Talk


The DC Talk song "Luv is a Verb" points out that love is something to be acted out. Real love is action, not just words and feelings. Love is expressed through action.

Like love, the word test is both a noun and a verb. Also like love, test requires action. Even the noun definitions for test describe action.


test

noun

  • trying something out to find out about it
  • any standardized procedure for measuring sensitivity or memory or intelligence or aptitude or personality, etc.
  • a set of questions or exercises evaluating skill or knowledge
  • the act of undergoing testing
  • the act of testing something
verb

  • put to the test, as for its quality, or give experimental use to
  • test or examine for the presence of disease or infection
  • examine someone's knowledge of something
  • show a certain characteristic when tested
  • achieve a certain score or rating on a test
  • determine the presence or properties of (a substance)
  • undergo a test
from Princeton WordNet
While I don't think we'll find anyone that argues that test is not a verb, people involved in software development seem to use it primarily as a noun. I have nothing against the many things we create that we call tests. Our test cases, test code, test charters, and whatever test things we create can be useful tools -- but they are not the test.


Let's think about test in a different light.

Several years ago, Shrini Kulkarni challenged me in questioning whether there can be such a thing as an automated test. I don't think I disagreed with Shrini. I've not been one to trust testing to machines, but I've been a fan of automation throughout my testing career. I've automated many testing tasks, but not believed I can automate the testing itself.

Earlier this year, Michael Bolton told me of a distinction he was thinking about between checking and testing. While I had no disagreement with this distinction, I wasn't thrilled with the terms. I wanted something more descriptive. I thought Michael was making a distinction I had been trying to make: a distinction between validation and investigation. I've since come to understand that Michael is making a slightly different distinction. Michael has recently written a series of blog posts better describing the Checking vs. Testing distinction. Michael has limited the scope of checking to observations and decisions rules that can be executed without sapience -- without a brain-engaged human. If something requires human sapience, it is testing, not checking.

Yesterday, an insightful tester, Lanette Cream, made a nice attempt at defining test on her blog. In her latest revision, she defines test as follows.



A test is
an action
which produces discoveries
that can be used to evaluate product quality.
I like that this definition identifies action, discovery, and evaluation as being core to testing. However, I'm thinking of pushing, or rather constraining, this just a bit further.

What if we were to say that the evaluation is the action and discovery is the goal?

A test would then be the sapient part of validation or investigation -- the thinking and learning that cannot be automated. All those other things we do to test are really support activities that help us evaluate.

Test is not a document. Test is not code. Test is not executing a program. Test is not applying a procedural decision rule. Test is not anything that can be done by a machine. Test is the act of evaluating. Test requires sapience.

Test is thinking and learning that leads to discovery. We may test by evaluating existing data. We may test by running experiments that produce new data. We may take the output of automated checks to test. We may provide what we learn as input to coding new automated checks. The test is the action we perform in our minds.

This may come across as nitpicking vocabulary. That's not my intent. My goal is not to limit anyone's definition of test, but rather to shed a different light on what I believe sets testing apart from checking, and gives both checking and testing value.

If a check fails in a forest and no one is around to hear it, does it make a sound?

The true value of our checking and testing is in the mind of a sapient tester. What value is there in all the things we call checks and tests without a tester (whatever their role or title) evaluating information and learning?



Test is sapient evaluation that leads to discovery.I'm not quite comfortable with this. I want the emphasis to be on the sapient activity; and not generating and collecting data to support the thinking without ignoring that it is a necessary part of testing.

Regardless of where we shine the light or draw lines, let's keep in mind that test is a verb.

What do you think? Testing of my half-baked ideas is welcome and appreciated.

Ben Simo
QuestioningSoftware.com
Categories: Blogs

Your #1 BugMagnet requested feature now works

Gojko Adzic - Mon, 05/25/2015 - 15:25

BugMagnet 0.8, pushed out to the Chrome Extension store today, allows users to define custom edge cases, boundaries and interesting examples. This was by far the most requested feature since BugMagnet came out, so I certainly hope that the new version helps people be more productive while testing.

Previously, users had to change the main config file and re-build the extension from the local source files. This was a hassle because it required a development environment setup, plus if effectively required users to maintain their own version of the extension and follow source code updates.

bugmagnet-configThe new version makes configuration changes trivial: Just click on the new “Configure BugMagnet” option in the menu, and you’ll see a pop-up window with the option to add local files. For a description of the configuration file format, see the Github repo main page.

This also means that we can distribute more usage-specific configuration files in the main repository. Where users previously asked for configuration file changes to be merged with the main repository, I had a really difficult decision to make between balancing things that are useful to the majority and adding interesting boundary conditions. No more! Because now people can load whatever they want, and we can avoid overcomplicating menus for users who don’t need all the additional use cases, I’m happy to take in pull requests for additional libraries of examples. I’ll distribute them through the extras folder on Github, and later make a nice web page that allows people to add such config files with one click.

To get started with BugMagnet, grab it from the Chrome Web store.

In other news, Brian Goad ported BugMagnet to Firefox. You can grab it from the Mozilla Add-ons page. The Firefox version does not support config files yet, but I hope it will do shortly.

Categories: Blogs

End-to-End Hypermedia: Choosing a Media Type

Jimmy Bogard - Fri, 05/22/2015 - 17:12

So you’ve decided to make the leap and build a hypermedia-rich API. Hopefully, this decision came from necessity and not boredom, but that’s a post for another day.

At this point, you’re presented with a bit of a problem. You have 3 main options for choosing/designing a media type:

  • Pick a standard
  • Design your own
  • Extend a standard

As much as possible, I’d try to go with a standards-based approach. People with much more time on their hands and much more passion for you have thought about these problems for years, and probably have thought about more scenarios than you’re thinking of right now.

Instead of choosing media types in a vacuum, how would one compare the capabilities and intentions of one media type versus another? One way is simply to look at the design goals of a media type. Another is to objectively measure the level of hypermedia support and sophistication of a media type, with H Factor:

The H Factor of a media-type is a measurement of the level of hypermedia support and sophistication of a media-type. H Factor values can be used to compare and contrast media types in order to aid in selecting the proper media-type(s) for your implementation.

H-Factor looks at two types of support, links and control data, and different factors inside those.

For example, HTML supports:

  • Embedding links
  • Outbound links
  • Templated queries (a FORM with GET)
  • Non-idempotent updates (a FORM with POST)
  • Control data for update requests
  • Control data for interface methods (POST vs GET)
  • Control data for links (link relations – rel attribute)

But doesn’t support:

  • Control data for read requests – links can’t contain accept headers, for example
  • Support for idempotent updates – you have to use XHR for PUT/DELETE

With the quantitative and qualitative aspects factored in with client needs, you’ll have what you need to pick a media type. Unless you’ve already decided that this is all way too complex and run back to POJSOs, which is still perfectly acceptable.

Making the choice

There are a *ton* of popular, widely used, hypermedia-rich media types out there:

And probably a dozen others. At this point, just be warned, you’ll probably spend upwards of a week or so to decide which variant you like best based on your client’s needs. You also don’t need to decide a single media type – you can use collection+json for collections of things, and HAL for single entities if you like.

One other thing I found is no single media type had all the pieces I needed. In my real-world example, I chose collection+json because my client mainly displayed collections of things. Show a table, click an item, then display a single thing with a table of related things. It didn’t need PUT/DELETE support, or some of the other control data. I just needed control data for links and a way to distinguish queries versus forms.

But collection+json didn’t *quite* have all the things I needed, so I wound up extending it for my own purposes, which I’ll go into in the next post.

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

Categories: Blogs

Make The Dirt Pay

Hiccupps - James Thomas - Fri, 05/22/2015 - 15:14
Sometimes, perhaps when you're under time pressure and on a mission and in a part of the product you're not familiar with, you bump into issue after issue after issue trying to get to the thing you just have to get tested right now.

Maybe you looked at the doc, but really you only skimmed it because your boss was on your back, a pain in the neck, giving you a headache and tapping his wrist.

Maybe you noticed there was a warning in the log file, but it looked a bit internal and you dismissed it because some output was produced and the product manager is standing in the doorway editing her MS Project plan and tutting heavily.

Maybe you hopefully copied the conventions of other commands in the config file, or just plain guessed at the syntax for the bits you added, because the end of the sprint is tomorrow and the Scrum Master's definition of done is all about the done and less about the definition.

Maybe you asked somebody else, an expert, who had just the knowledge you need, but because you were in a hurry and they're also overloaded, you ended up with a shallow understanding and now their words of wisdom are just wisps of what-the? So you're reduced to feverishly trying random inputs hoping to defeat Probability and somehow magic up the answer the project wants even though by now even if you miraculously happened upon it you probably wouldn't be able to tell.

... Deep breath ...

Congratulations! You have arrived at a rare and privileged position: you are now your user.

Users generally don't know your product inside out. Frankly, most users wouldn't use your product at all if they could get what they need with less effort, hassle, expense or whatever resource is most important to them.

Many users don't pay attention to doc, or warning flags or the messages in the warnings that they don't understand or take time to learn how to do the stuff they don't need often. They just want the result. And they usually need it now, or earlier.

You are seeing the dirt that your users see, for the kinds of reasons your users see it. And that dirt is pay dirt. So don't just sigh and consign that nightmare to the brain bin when you get to the end of your task. Try to make the most of it by using your experiences to help to find ways to make the product better, and ensure that your product continues to be the one that gives your users their result in a timely fashion at the right cost for them.
Image: https://flic.kr/p/3X8i7s
Categories: Blogs

Upcoming DevOps & Agile Events

James Betteley's Release Management Blog - Thu, 05/21/2015 - 12:28

London Puppet User Group Meetup
London, Thursday May 21st, 2015
6:00pm
http://goo.gl/C2zuKb

DevOps Exchange London – DevOps & DevOps
London, Tuesday May 26th, 2015
6:30pm
http://goo.gl/Xmdqxl

London Agile Discussion Group – Should DevOps be a person or a team-wide skill?
London, Tuesday May 26th, 2015
6:30pm
http://goo.gl/xksVOH

AWS User Group UK – meetup #15
London, Wed May 27th, 2015
6:30pm
http://goo.gl/uBsiUj

Chef Users London – Microsoft Azure / Chef Taster Day
London, Friday May 29, 2015
9:00am to 5:00pm
http://goo.gl/VOvkC3

DevOps Cardiff – Herding ELKs with consul.io
Cardiff, Wednesday, June 3, 2015
6:30pm
http://goo.gl/WwOvkQ

Agile Testing – Visual Creativity: Using Sketchnotes & Mindmaps to aid testing @ #ltgworkshops
London, Thursday June 4th, 2015
8:30am
http://goo.gl/34iIXM

ABC (Agile Book Club) London – Review Jeff Patton’s User Story Mapping
London, Thursday June 4th, 2015
6:30pm
http://goo.gl/X0qPwb

Agile Testing – Hooking Docker Into Selenium @ #ltgworkshops
London, Thursday June 4th, 2015
8:30am
http://goo.gl/ONH8dQ

UK Azure User Group – Cloud Gaming Hackathon
London, Saturday June 6th, 2015
9:30am
http://goo.gl/ONH8dQ

London DevOps – London DevOps Meetup #10
London, Thursday June 11th, 2015
7:00pm
http://goo.gl/uolxJk

Kanban Coaching Exchange – Continuous learning through communities of practice – Emily Webber
London, Thursday June 11th, 2015
6:30pm
http://goo.gl/9aFD8x

Lean Agile Manchester
Manchester, Wednesday June 17th, 2015
6:30pm
http://goo.gl/Z15ac3

London Lean Coffee – Holborn
London, Thursday, June 18th, 2015
9-10am
http://goo.gl/QkIBhj

UK Azure User Group – Chris Risner
London, Thursday June 18th, 2015
7:00pm
http://goo.gl/EfbNnn

Jenkins User Conference – Europe (London)
London, Tuesday June 23rd – 24th, 2015
2 days
http://goo.gl/achJJX

BDD London June Meetup
London, Thursday June 25th, 2015
6:30pm
http://goo.gl/C2zuKb

Automated Database Deployment (Workshop – £300)
Belfast, Northern Ireland, Friday June 26th, 2015
1 day course
http://goo.gl/fXlJr7

Database Continuous Integration (Workshop – £300)
London, July 8th, 2015
1 day course
http://goo.gl/lW4TjA

Database Source Control (Workshop – £100)
London, July 8th, 2015
1 day course
http://goo.gl/C2zuKb

London Lean Coffee – Holborn
London, Thursday, July 16, 2015
9-10am
http://goo.gl/mtJ3k4

Agile Taster – a free introductory Agile training course
Cardiff, Saturday 18 July 2015
10am – 3pm
http://goo.gl/qFYS6b

AWS User Group UK – meetup #16
London, Wed July 22nd, 2015
6:30pm
http://goo.gl/Tc3hlD


Categories: Blogs