GTAC 2011 and STARWEST 2011

The two big Software Testing events of the year, GTAC or the Google Test Automation Conference, and STARWEST are both being held in October of this year. Big month for software testers!

According to the Google Testing Blog GTAC 2011 will be held in Mountain View, CA during the week of October 25th. STARWEST 2011 will be held in Anaheim, CA during the week of October 2nd.

The real question is how do I get my company to pay for both? Hopefully GTAC is reasonable inexpensive.

Summary: How Google Tests Software

As a software tester I try to learn as much as I can about how other companies test software. It just so happens that through Google’s testing blog James Whittaker has taken steps to outline just how Google does it.

If you’re interested in learning more I’d recommend reading through the five part series by going to the Google Testing Blog directly but feel free to check out my summary and the things I found interesting:

Google’s organization structure is such that they don’t have a dedicated testing group. Instead the company has more of a project-matrix organizational structure where testers are located in a group called Engineering Productivity where they report directly to a manager but are then shared to individual product groups like Android, GMail, etc. Through this they are able to move around to different groups inside the company based on a particular project and stand to gain a better experience. Engineering Productivity also develops in-house tools, maintains knowledge disciplines in addition to loaning out engineers.

Google has a saying: “you build it, you break it”. They have essentially 3 engineering roles Software Engineers (SWEs), Software Engineers in Test (SETs), and Test Engineers (TEs). SWEs write code, design documentation and are responsible for the quality of anything they touch in isolation. SETs focus on testability, they write code that allows SWEs to test their features, refactor code, and write unit testing frameworks and automation. SETs are responsible for quality of the features. TEs are the opposite of SETs and are focused on user testing. They write some code in the form of automation scripts and usage scenarios and coordinate and test with other TEs. These descriptions are a bit over generalized but you get the idea.

It’s interesting to note that in all of the companies I’ve worked for the SWEs and SETs are the same people and TEs are usually focused on the low hanging fruit. Instead Google blends development and testing to prevent bugs / lapses in quality instead of trying to catch them later when it is more expensive and harder to fix.

As a rule Google tries to ship products as soon as they provide some benefit to the user. Instead of releasing new updates / features in large releases Google tries to release, get feedback and reiterate as fast as possible. This means less time in-house and more time getting their customers responses. Yet in order to get out to production Google has 5 Channels to get through: Canary, Dev, Test, Beta and Production. The Canary channel holds experiments and code that isn’t ready to be released. The Dev channels is where the day to day work gets done, the Test channel is used for internal dog fooding and potential beta items. The Beta and Production channels hold builds that will get external exposure assuming they have passed applicable testing / real world exposure.

Finally Google breaks down their types of testing into three broad categories that include both manual and automated testing: Small Tests, Medium Tests and Large Tests. Small tests are written by SWEs and SETs and are usually focused on single functions or modules. Medium tests involve two or more features and cover the interactions between those features. SETs are mostly responsible for Medium tests. Large tests are three or more features and represent real user scenarios as best as they can be represented. The mix of manual and automated testing depends on what is being tested. James reiterates it’s not how you label the tests just as long as everyone in the company is on the same page.

And there you have, roughly, how Google Tests Software. You can see they spend a great deal of time working on preventing bugs from ever coming up so they can focus their Test Engineers on bigger potential problems and less on the low hanging fruit – which completely makes sense. Now how you and I apply these things to our own testing framework is the real challenge!

Windows Time Sync error: 0x800705B4

When trying to display the time difference between a local computer and another time source using the Windows Time Sync command: w32tm /stripchart /computer:targetcomputer /samples:number /dataonly you may see the response as “timestamp, error: 0x800705B4”. This just means the local machine’s time source isn’t available.

To fix this error you need to set the client machine to use an external time source like another server. In order to do that the other server must be setup as a Authoritative Time Server. Then configure a manual time source using w32tm /config /manualpeerlist:targetcomputer /syncfromflags:manual /update.

When running the manual time source command on a Windows 2008 R2 SP1 machine I got a different error “The service has not been started. 0x80070426”. To fix this problem go to services.msc, find Windows Time and start it. When you rerun the command all will be well.

I’m not sure why Windows Time Syncing has to be such an issue without a domain controller setup but it is!

Associate SQL Server user with login after db restore for SQL Server

This post was borrowed from Computer Cabal and expanded upon:

After you’ve restored a backed up SQL Server database instance you may find the user logins are no longer associated with the users. You can’t make this fix via SQL Server Management Studio but you can run the commands below to fix it. Note: It only works for SQL Server 2005 SP2 and later, so the first thing to do is check what version of SQL Server you have.

    1. Log into the Management Studio for SQL Server 2005 run:

SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

  • Or if you are using SQL Server 2008 run:

SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

  • In the second column you should see a table with a row name you should see “SP2” or “SP3”, if you see something like “SP1” or “RTM” or don’t see a second column then you need to upgrade. Here’s the link to download SQL Server 2005 SP3.
  • Once you’ve got at least SQL Server 2005 SP2 run:

alter user [user_name] with login=[login_name]  

  • Now you should be all set.

For more information on How to Identify SQL Server versions and editions go here.

Set VLAN ID on a Network Adapter in Windows 7

Here are the steps to set a VLAN (Virtual LAN) ID on a network adapter in Windows 7:

 

    1. Right click on Computer > Click Properties
    2. Click Device Manager
    3. Expand Network Adapters
    4. Right click on the adapter you want to set the VLAN for > Click Properties
  1. Click on the Advanced Tab
  2. Under the Property window select VLAN ID
  3. In the Value window set your VLAN ID
  4. Click OK.

Your VLAN ID is now set. This same procedure should work in other versions of Windows with a slight variation.

Deleting a EISA Partition

Most consumer computers these days have their drives partitioned: one for primary use and another for restoration. Often this is a partition that you can’t access because it contains restore / backup data. Fortunately for most users new hard drives are large enough that you likely don’t need the space; unless you’re like me and want every bit that you paid for. Worst is if you have an older computer with less space and roughly 10% of your available hard drive space is gone before you begin putting anything of your own on it. Lucky for you I can tell you / show you how to remove it! You can remove the partition if you want more space and have another way to backup / restore your computer. If you don’t, you might want to leave it. It’s also a good idea to do this when you first get your computer because it will require reinstalling your Operating System.

Tools Needed: External USB CD/DVD Drive, Original Operating System Discs (Windows XP or Vista), a pre-Vista Windows Disc like XP or 2000, and a USB Keyboard. (I haven’t tried this with Windows 7).

Note: I did this on my Samsung Q1 and the partition was an EISA partition. You can determine this by going to the start menu > right clicking on Computer > click on Manage > Click on Disk Management under Storage. You will probably have two Discs 0 and 1. The C drive will be installed on Disc1 (which is the second partition) and a blank drive letter for Disc0 (which is the restore partition). An EISA partition is not recognized by Vista and cannot be deleted by Vista, hence the need for XP or 2000 discs! (I’d assume the same problem exists for Windows 7 and/or any OS after Vista.) See the following article by Microsoft:

http://support.microsoft.com/?kbid=242168

First you want to restart your computer and go into the boot settings. You need to change your boot settings to boot to the CD Drive first, instead of the hard drive. When you exit and restart, make sure the pre-Vista Disc (I used a Windows XP bootable disc) and boot into the setup.

Next, after the XP setup process (or whatever OS you used) has loaded; it will recognize both the EISA partition and your regular partition. From here you can delete both partitions (by pressing L) which will create one large non-partitioned drive that can then be partitioned into a single NTFS drive. Once the formatting is over Windows will want to start loading files onto the drive; it’s at this point you can basically shut off the computer without any damage.

Now reinstall your operating system of choice and your EISA partition will be there again. Remember that if you are removing a backup partition to burn the backup or restore discs first. As always questions and comments are appreciated.