Skip to content

Feed aggregator

Fix: Error occurred during a cryptographic operation.

Decaying Code - Maxime Rouiller - 5 hours 2 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 - 5 hours 2 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 - 5 hours 2 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 - 5 hours 2 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 - 5 hours 2 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 - 5 hours 2 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 - 5 hours 2 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 - 5 hours 2 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 - 5 hours 2 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 - 5 hours 2 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

Testomato monitors your website and alerts you if anything important breaks

TestDriven.com - 9 hours 16 min ago
Monitor both your staging and production environments to catch problems immediately. Instead of worrying, know when something is broken so you can fix it fast. http://www.testomato.com/
Categories: Communities

uTesters: Be Our Facebook Cover Photo

uTest - 14 hours 14 min ago

IMG_5071 You don’t have to be uTesting from a mountain or even from a hammock outdoors (although that sounds quite relaxing right now…). We want to see you as you uTest in your natural habitat…wherever that is…as part of our new weekly contest through the end of May!

By posting your best photo(s) to our Facebook page, the uTest Community Management team will select one favorite entry that will become the uTest Facebook’s cover photo for the week!

Not only will your testing scene be in all it’s glory in front of our nearly 36,000 testers that have ‘liked’ our page, you’ll also receive a uTest swag pack full of uTest gear including t-shirts, pens, and other goodies we can’t yet reveal.

The Rules & Timeline:

  1. Like our uTest page on Facebook (many of you have already!).
  2. Take a picture of you, or have someone take a picture of you, while you are testing with uTest (Note: Pictures cannot contain proprietary customer information and must be at least 851 pixels wide by 315 pixels tall)
  3. Post the photo or photos to our Facebook timeline each Friday by 9am Eastern Time. You must have a registered account with us.
  4. Check back soon after as we will be selecting one winner and making them our cover photo for the week (and contacting them for their swag pack)!
  5. We’ll be running this contest each week through May, so enter once every contest period if you’d like!

Post your photo to our Facebook timeline now!

The post uTesters: Be Our Facebook Cover Photo appeared first on Software Testing Blog.

Categories: Companies

Saga Implementation Patterns: Singleton

Jimmy Bogard - 14 hours 39 min ago

NServiceBus sagas are great tools for managing asynchronous business processes. We use them all the time for dealing with long-running transactions, integration, and even places we just want to have a little more control over a process.

Occasionally we have a process where we really only need one instance of that process running at a time. In our case, it was a process to manage periodic updates from an external system. In the past, I’ve used Quartz with NServiceBus to perform job scheduling, but for processes where I want to include a little more information about what’s been processed, I can’t extend the Quartz jobs as easily as NServiceBus saga data. NServiceBus also provides a scheduler for simple jobs but they don’t have persistent data, which for a periodic process you might want to keep.

Regardless of why you’d want only one saga entity around, with a singleton saga you run into the issue of a Start message arriving more than once. You have two options here:

  1. Create a correlation ID that is well known
  2. Force a creation of only one saga at a time

I didn’t really like the first option, since it requires whomever starts to the saga to provide some bogus correlation ID, and never ever change that ID. I don’t like things that I could potentially screw up, so I prefer the second option. First, we create our saga and saga entity:

public class SingletonSaga : Saga<SingletonData>,
    IAmStartedByMessages<StartSingletonSaga>,
    IHandleTimeouts<SagaTimeout>
{
    protected override void ConfigureHowToFindSaga(
    	SagaPropertyMapper<SingletonData> mapper)
    {
    	// no-op
    }

    public void Handle(StartSingletonSaga message)
    {
        if (Data.HasStarted)
        {
            return;
        }

        Data.HasStarted = true;
        
        // Do work like request a timeout
        RequestTimeout(TimeSpan.FromSeconds(30), new SagaTimeout());
    }
    
    public void Timeout(SagaTimeout state)
    {
    	// Send message or whatever work
    }
}

Our saga entity has a property “HasStarted” that’s just used to track that we’ve already started. Our process in this case is a periodic timeout and we don’t want two sets of timeouts going. We leave the message/saga correlation piece empty, as we’re going to force NServiceBus to only ever create one saga:

public class SingletonSagaFinder
    : IFindSagas<SingletonSagaData>.Using<StartSingletonSaga>
{
    public NHibernateStorageContext StorageContext { get; set; }

    public SingletonSagaData FindBy(StartSingletonSaga message)
    {
        return StorageContext.Session
            .QueryOver<SingletonSagaData>()
            .SingleOrDefault();
    }
}

With our custom saga finder we only ever return the one saga entity from persistent storage, or nothing. This combined with our logic for not kicking off any first-time logic in our StartSingletonSaga handler ensures we only ever do the first-time logic once.

That’s it! NServiceBus sagas are handy because of their simplicity and flexibility, and implementing something a singleton saga is just about as simple as it gets.

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

Categories: Blogs

NCover Updates For Desktop & Bolt

ncover_product_update_blogWe have released several important NCover updates during the months of March and April. These updates reflect improvements across the entire product line with a heavy emphasis on NCover Bolt and NCover Desktop. The current version is V5.0.2953.994. A full list of what is included can be found on our Release Notes page. We recommend all users upgrade immediately to benefit from these improvements.  All NCover users with a current subscription can receive these updates at no charge.

Improved Bolt Performance & Stability

This release contains over a dozen individual fixes with major improvements in Bolt start-up time, resource usage, performance and general stability and reliability. All users of Bolt, NCover’s Visual Studio extension, will benefit from significant speed improvements during the preparation of test runs and the loading of tests, the collection of coverage data and post-run aggregation. In addition, we have made several fundamental changes to improve its stability and reliability when handling large test runs.

Updates to Bolt User Interface

There are also multiple improvements to the Bolt user experience, including improved feedback during collection. Users will receive additional and more detailed feedback regarding the status of Bolt, the status of test runs and when exceptions occur.

Code Central Detailed HTML Report

This release implements a fix to better handle executions with duplicate modules. Users of Desktop and Code Central can now generate, either through the command line or the GUI, a summary HTML report.  Code Central users can also generate a fully self-contained HTML report that can be distributed across teams or to other individuals. You can review available options for sharing coverage results in Code Central here.

Improved Stability For Multiple App Domains

There’s now improved reliability for applications that use multiple app domains, and a fix for isolated cases that resulted in dropped coverage. If you have any questions about your specific situation, or are interested in best practices for working with multiple app domains, please do not hesitate to contact us.

Over 47 Individual Fixes, Additions and Enhancements

We have been extremely busy improving the Bolt and Visual Studio experience and implementing user requests.  We appreciate all of the feedback our customers have provided and we believe you will be pleased with the results in the latest version of NCover.

As a reminder, the easiest way to update your install of NCover is either with the auto-update feature or through the Visual Studio gallery update.  If you need any assistance with your upgrade, please submit a technical support request and we will be happy to walk you through the process.

The post NCover Updates For Desktop & Bolt appeared first on NCover.

Categories: Companies

Mobile App Dating: Is Psychology (and Salad) the Key to True Love?

uTest - 17 hours 17 min ago

The market has seen an explosion in dating apps recently. What started out as a relatively straightforward model, in which 1363963082_1180_Datingusers fill out profiles and are subsequently either matched up with potential mates or do the filtering themselves, has rapidly evolved to include a wide array of apps with all types of spin-offs and niche products.

To illustrate this point, there is currently a mobile app in the iTunes store called SaladMatch which aims to connect users based on their salad preferences.

With this type of rapid expansion, one might assume that it would be difficult to observe any sort of meaningful trend running through all of these newcomers. As it turns out, this is not the case, as the most noticeable trend is actually rooted in a number of theories from the field of Psychology.

Generally speaking, as the number of choices a consumer is given increases, their chances of making a purchase decreases. This is rather counterintuitive, as one would expect that more options would equate to a greater likelihood of someone finding a product or decision path that matches up with their wants and needs. However, research from a number of sources has indicated that this expectation does not hold true.

In one specific example from researcher Sheena Iyengar, 30% of people who were exposed to a choice of six types of jam bought a jar, whereas only 3% of people who were exposed to 24 varieties did the same.

So what does this have to do with dating apps? It seems to be that the one observable thread tying all these new dating apps together is their focus on decreasing the amount of information presented to the user, rather than increasing it.

Like I stated above, early dating apps had users filling out and comparing lengthy profiles, some even touting the number of parameters they used when setting up a couple. After this, we began to see “swiping” apps such as Tinder, where users would make snap judgements on whether or not they liked a potential mate based on nothing more than a few pictures and a sentence or two.

Rather than narrowing the amount of information users can see about each other, some apps such as Hinge and Happn (and yes, SaladMatch) take another approach by narrowing the pool of potential mates. They do this by providing such filters as “people who are friends of your friends on Facebook,” or “people who you have crossed paths with recently” (…and yes, “people who enjoy their salad prepared the same way as you do”).

Yet another strategy some apps have taken to limit the amount of data available in the dating process is to prevent both parties from communicating prior to meeting in real life. Grouper, and more recently Rendeevoo, have both taken the approach that users will be more satisfied with their experience if they are compelled to meet in person before having the chance to complicate things by chatting through a digital messaging platform (a domain where facial expressions and vocal intonations are lost).

It seems that the recent spate of new dating apps has begun taking cues from scientific research on consumer behavior, intentionally or not. Whether this strategy pays off in the form of increased user satisfaction remains to be seen.

Which dating apps have you had a positive experience with? Which ones have you had a negative experience with? Comment below and let us know.

Not a uTester yet? Sign up today to comment on all of our blogs, and gain access to free training, the latest software testing news, opportunities to work on paid testing projects, and networking with over 175,000 testing pros. Join now.

The post Mobile App Dating: Is Psychology (and Salad) the Key to True Love? appeared first on Software Testing Blog.

Categories: Companies

Planit - New Silver Service Partner for the Asia Pacific Region

Ranorex - 20 hours 30 min ago
With growing demand for Ranorex in the Asia Pacific region, we would like to announce our newest Silver partner: Planit Software Testing.

Established in Australia in 1997, Planit is a world leader in software testing consultancy and training, offering best-in-class functional, performance and test automation services as well as innovative cloud-based solutions.

Today, Planit employs in excess of 650 highly skilled software testing professionals across our network of offices, including Sydney, Melbourne, Perth, Auckland, Wellington, Hamilton, Christchurch and London, with additional capacity via our offshoring capability in New Delhi.

Additional information about Planit can be found at www.planittesting.com .
Categories: Companies

Breaking Down the Website Performance of Tax Day 2015

So yesterday was April 15th 2015… Tax Day.  Across the US, taxpayers had a deadline that they need to file their federal and state taxes.  As with every aspect of our day-to-day lives we are seeing the digitization of how we prepare and file our taxes.  Just a quick look at the traffic going to the […]

The post Breaking Down the Website Performance of Tax Day 2015 appeared first on Dynatrace APM Blog.

Categories: Companies

Sauce Labs Continues To Expand Senior Management Team With Two Key Hires

Sauce Labs - Thu, 04/16/2015 - 18:58

SAN FRANCISCO, CA – Sauce Labs, Inc., the leading cloud-based web and mobile application testing platform, today announced it has appointed Tom Kress as Vice President of Sales and Lubos Parobek as Vice President of Product. The moves further support Sauce Labs’ momentum, equipping the company to meet the unprecedented demand for its web and mobile app testing platform.

Kress brings more than 20 years of industry experience and insight to his role at Sauce Labs. He will be responsible for spearheading Sauce’s sales strategy and execution, along with business development. He joins from Cloud Solution Business Group, where his achievements include growing revenue by $17 million in two years, and increasing annual revenues by $19 million dollars. Prior, Kress held leadership sales positions at organizations including DotNetNuke Corporation, Hyperic, Cittio, Time Warner Telecom, Internap and MCI.

Parobek, a seasoned software marketing and product management professional, joins from Dell, where he served as vice president of product management. At Sauce, Parobek will lead strategy and development of Sauce Labs’ web and mobile application testing platform. His previous experience includes leadership positions at organizations including KACE, Sybase iAnywhere, AvantGo and 3Com. Parobek holds a Masters in Business Administration from the University of California, Berkeley.

“As enterprises today face expectations of accelerated innovation and delivery of the highest quality software, Sauce Labs continues to see overwhelming demand for our web and mobile applications testing infrastructure,” said Charles Ramsey, CEO of Sauce Labs. “As such, our company continues to grow, and we are delighted to bring on Tom Kress as Vice President of Sales and Lubos Parobek as Vice President of Product. These new additions to the Sauce team will enable us to continue to build upon our record 2014 results, as well as our leadership in the automated testing market.”

Sauce Labs provides an instantly scalable testing cloud that is optimized for continuous integration (CI) and continuous delivery (CD). When tests are automated and run in parallel on virtual machines across multiple browsers and platforms, testing time is reduced and developer time is freed up from managing infrastructure. When paired with a CI system, developers can easily test web, hybrid and native applications early on in their development cycles, continuously and affordably. Sauce Labs currently supports more than 500 browser,operating system and device platform combinations.

Helpful Links

About Sauce Labs
Sauce Labs is the leading cloud-based web and mobile application automated testing platform. Its secure and reliable testing infrastructure enables users to run JavaScript unit and functional tests written with Selenium and Appium, eliminating the time and expense of maintaining a test grid. With Sauce Labs, organizations can achieve success with continuous integration and delivery, increase developer productivity and reduce infrastructure costs for software teams of all sizes.

Sauce Labs is a privately-held company funded by Toba Capital, Salesforce Ventures, Triage Ventures and the Contrarian Group. For more information, please visit http://saucelabs.com.

Categories: Companies

How to Build QA Into Your Team

Testlio - Community of testers - Thu, 04/16/2015 - 18:14

People often relate quality assurance departments to just finding bugs.

This is bullshit.

QA is more than just uprooting bugs. While it may be an integral part of our job that we will never leave behind, it goes far beyond that.

QA is about extrapolating quality.

Effective QA teams organize together and span cross many departments. Being a QA person is not an exclusive role. In other words, you can be a QA tester and a software engineer, or a designer, or a product manager.

A QA team isn’t built up of only testers. It’s the entire company.

How do you get separate departments to focus with quality in mind?

 

Define Clear Roles.

Assign clear roles and responsibilities to each person on your team.

Defining roles removes redundancy. Your team can cover the entire scope of the project with high efficiency.

For example, are reviewers assigned to only look over and approve/reject issue submissions? Are they also looking for bugs as well? Another example is the scope of a tester. Are they focused on only one section of the app? Or is it just a team of testers testing the entire app?

None of these situations are wrong. But by stating boundaries your team will know their limits and responsibilities.

A trait of a strong team is individual ownership. Your team must consist of members who are able to take ownership and responsibility.

Let each team member focus on one area. This will create a high level of expertise for that person. This spread across all sections of your app will create holistic coverage. By making people focus in one area, you will condition them to become an expert for that task.

Peter Thiel utilized this tactic when managing his team at Paypal. He assigned each person to be responsible for one task. He refused to speak to his team members about anything outside of that one task.

 

First integrate QA and Engineering, then the rest of the company

QA and engineering need to work together.

Developers often forget about user quality and focus on the quality of their code. Having great code is important. Having a great product is necessary. Your users care more about its interactiveness than the code behind it.

Break down your company’s barriers. When testers test in a vacuum it creates a closed environment. This stymies any motivation to reach out to developers or other testers for help. When the development team and testing team are together, they can solve problems together.

A QA tester tends to have the entire product in mind while a developer focus on the issue at hand.

Keep these two together. One created the problem and the other discovered it. Put them together and they will find a solution to fix it right.

So how do you actually get these two teams to work together under a cohesive unit?

First, create common goals.

Common goals unifies your team. When a group of people have a common task, they seek each other’s help to get the job done. When they rely on each other, they work together.

It isn’t easy to make this happen. After you set common goals, you need to get everyone to use a common platform. This helps your team track their progress in real-time. These tools serve as a great way to keep everyone on the same page.

It’s common for your team to want to revert back to old processes. Don’t go back to the spreadsheet. Let your team know how important it is to keep everyone together. If a single person deviates, this could cause a massive overlap and create redundancy.

If you’re looking for a great platform for your team, Testlio is a great place to look. Other reputable platforms are QASymphony and TestRails.

 

Motivation is key

Nothing serves as a stronger motivator than letting people do what they love to do.

Developers and testers are two different types of people. Developers love to create while testers love to break.

A common pattern in startups is to turn their engineers into QA testers. This can be effective, but you will have two major drawbacks.

First, you will end up killing motivation for your developers. They joined your company to be a developer, not a QA tester. When you take people away from what they love, they will stop working as hard.

Second, you will not be able to extrapolate the full potential quality of your app. Professional software testers know the tools and strategies to get the job done better. Professional testers are able to emulate a real user experience. After working on the code, your developers will build a biased connection. Your users will not be as friendly to your app as your developers.

 

Quality is everyone’s responsibility

People get caught up on the input of their work and forget about the user experience. This is by far the most important aspect of an app.

Quality is the key component of whether a user will stick around and use the app or not. Desire will always be a large factor. If your app isn’t adequate your users will stop using your app or go to your competitor.

This focus needs to spread across the entire company. Quality isn’t just the responsibility of the QA team, it’s everyone’s. No matter what your position is, you need to be focusing on the end user experience. Users don’t care what it took to build your app. What they care about is whether it actually delivers its intended purpose.

If your app delivers on its promise then your users will come back.

 

Conclusion

Building a QA team goes beyond your testers. It’s the entire company. When you start building a QA team, it needs to involve your entire company. Do not overlook these vital points:

  1. Define clear roles
  2. Integrate QA and development
  3. Create common goals
  4. Motivation is key
  5. Quality is everyone’s responsibility

I would love to hear any experiences you’ve had with building your QA team. If you have any suggestions you’d like to see feel free to post them in the responses below. You can also tweet them to me @willietran_ as well.

 

The post How to Build QA Into Your Team appeared first on Testlio.

Categories: Companies

The Deep, Dark Fears of a Software Tester

uTest - Thu, 04/16/2015 - 15:00

Indiana Jones’ fear is snakes. For Superman, he is powerless in the face of Kryponite. For me, spiders are an unpleasant monstersincexperience. Our uTest community is a pretty cool, collected bunch, so it would be hard to imagine them being scared of anything.

But uTester Marek Langhans approached our community members with this exact question recently in our Forums, and surprisingly, there were a few things that surfaced keeping our testers up at night.

Outsourcing

As some organizations move their in-house testing teams to cheaper offshore services, job security for software testers is perennially a concern.  Said one uTester simply enough as to what they fear — ‘the time when my company goes for outsourced testing.’

Getting Lost in Redundancies

It’s easy to miss finer details when you’re bogged down in something that’s familiar or repetitive — the mind can inevitably wander.

Said one uTester: ‘It would probably be missing critical issues while doing repetitive testing tasks (checking) due to lack of focus. So I’m afraid I’ll miss an important issue because my mind wandered off thinking about the architecture of Sega’s Duck Hunt gun instead of paying attention to what I’m doing while I’m working my way through the manual parts of regression tests.’

Coming Up Short

This was one that came up from a tester newer to software testing that likely would be quelled merely with time and experience. However, it was a valid point nonetheless of a tester that cares about getting the job done right:

‘I’m afraid of a situation where I didn’t find bugs at all. This is my biggest fear. And, if the client or even my colleagues find some, or worst, many bugs, I know I would blame myself for a while. Now I am more confident, but this fear of not being good enough stays in the corner of my head.’

These were just a few of the things that testers within the confines of uTest feared the most. Do these echo any of yours? What are your deep, dark fears as a software tester? Do you even have any? We’d love to hear from you in the comments below.

Not a uTester yet? Sign up today to comment on all of our blogs, and gain access to free training, the latest software testing news, opportunities to work on paid testing projects, and networking with over 175,000 testing pros. Join now.

 

The post The Deep, Dark Fears of a Software Tester appeared first on Software Testing Blog.

Categories: Companies

Knowledge Sharing

SpiraTest is the most powerful and affordable test management solution on the market today