Saturday, 31 December 2016

Multiplayer dedicated server setup notes

To start off, use this guide http://empyrion.gamepedia.com/Dedicated_Server_Setup

Some notes also here https://steamcommunity.com/sharedfiles/filedetails/?id=621554476

I am moderating for a server, more details here, but this page is for learning how it all works.
bit.ly/CasualPVE
The shortlink to the challenge infos is http://bit.ly/MasperonChallenge

Steps

Copied dedicated.yml to server.yaml file and changed:

    Srv_Name: Masperon Challenge
    Srv_Password: xxxxxxx
    Srv_MaxPlayers: 4

    Srv_Description: "Post here [url=http://bit.ly/MasperonChallenge]Masperon Challenge[/url] to get a password."

    Srv_StopPeriod: 12

    Tel_Enabled: true   # Activate Telnet server
    Tel_Port: 30004
    Tel_Pwd: xxxxx




    MaxAllowedSizeClass: 5

    Seed: 470786         # The seed determines how the world is procedurally generated - the same seed means the same world

    DiffEscapePodContent: Hard        # Easy, Medium, Hard --- Determines the content of the Escape Pod when you crash land on the planet
    DiffAmountOfOre: Poor             # Rich, Normal, Poor --- Influences the average amount of ore that a deposit contains
    DiffNumberOfDeposits: Few        # Plenty, Normal, Few --- Influences the average number of deposits per planet
    DiffDroneBaseAttack: Hard         # Easy, Medium, Hard, Off --- Influences the difficulty of the drone base attacks (infinite waves, number of waves etc.)
    DiffDronePresence: High           # Low, Normal, High, Off --- Influences the overall number of drones that are present on a planet    DiffConstrCraftTime: Normal         # Faster, Normal, Slower --- Influences the overall craft speed of constructors


The part I'm struggling with next is telnet connection port 30004. For some reason I had to kill the EmpyrionDedicated process and start the server again before it starts to listen on port 30004

I made my server name "Masperon Challenge", but it's not in the server browser even though I can connect locally.

Saturday, 10 December 2016

Empyrion Galactic Survival blueprint swapper

I wrote a little script to swap blueprints from BA to CV. Sometimes you design a base as a CV, then at the end you spawn your artwork in space and too late realise that in order for a CV to land on it in space it has to be a BA, whoops. So I wrote a script to swap the BP types around.

This standalone script does not require anything else to download so long as you are running a Fully updated Windows 7 or Newer Windows. It runs native in Windows without any binaries. Before I share the script, here are the instructions:
1. Type "powershell" in the start menu
2. When it comes up, select run as Administrator.
3. Go to the folder you saved this file to and type as below:

4. Just run the script, it will find your blueprint folder (unless you installed steam on another drive to c:\ or 2 people play EGS on this computer, then it will error. If this happens, send me a message.)

Download the script here: http://pastebin.com/9bGH88jx
# If you see an error:
#     .\Toggle-Blueprint.ps1 : File Toggle-Blueprint.ps1 cannot be loaded. The
#     file Toggle-Blueprint.ps1 is not digitally signed. You cannot run this
#     script on the current system. For more information about running scripts and setting execution policy, see
#     about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170.
# Then open powershell using RunAs Administrator, and type in
# PS:\> set-executionpolicy Bypass
#
# Converts a CV to a BA blueprint or back (or HV to a SV)
# Optionally provide the name of a blueprint (without the file extension)
# Will not overwrite an existing BP
# Help: 
[cmdletbinding()]
Param($inputFile="", $outputFile="", [switch]$flatten)
Set-strictmode -version 2
$erroractionpreference = 'stop' 

$basePath = @(ls 'C:\Program Files (x86)\Steam\steamapps\common\Empyrion - Galactic Survival\Saves\Blueprints' -recurse -include 'Workshop.data')[0] | split-path -parent
if ([string]::Isnullorempty($inputFile)) {
 $list = ls $basePath -exclude 'workshop.data'
 [int]$i=0
 foreach ($file in $list) {
  $fname = join-path $file.fullname ($file.name + '.epb')
  write-host "$i $($file.name) [$((get-item $fname).length)]" -foregroundcolor cyan
  $i+=1
 }
 $inputfile = $list[ (Read-host "choice?") ].name
}
if ([string]::Isnullorempty($outputFile)) {
 $outputFile = $inputfile +'(1)'
}
Write-host "Loading: $inputfile"

$fname = join-path (join-path $basepath  $inputfile) ($inputfile + '.epb')
$bytes = [System.IO.File]::ReadAllBytes($fname)
# read some basic stats
$newClass = 0
$entityClass = switch ($bytes[8]) { # (0x02 = BA, 0x04 = SV, 0x08 = CV, 0x10 = HV)
 16 {$msg = 'HV to SV?'; 'HV'; $newClass=4}
 4  {$msg = 'SV to HV?'; 'SV'; $newClass=16}
 8  {$msg = 'CV to BA?'; 'CV'; $newClass=2}
 2  {$msg = 'BA to CV?'; 'BA'; $newClass=8}
 default {'unknown'}
}
$entityWidth = [bitconverter]::ToInt16( $Bytes,9)
$entityHeight = [bitconverter]::ToInt16( $Bytes,13)
$entityDepth = [bitconverter]::ToInt16( $Bytes,17)
$terrainFlag = $bytes[33];
0..40 | %{write-verbose "$_ $($bytes[$_])"}
write-host "type [Width, Height, Depth] Flatten"
write-host "$entityclass   [   $entityWidth,     $entityHeight,    $entityDepth]      $terrainFlag"
if (($flatten) -and ($entityClass -eq 'BA')) {
 # todo make it a toggle
 $msg = "Flatten Terrain? ($terrainFlag)" 
 write-warning "The flatten terrain option does not always work, test it a few times before sharing the results"
} else {
 $msg = "Convert " + $msg
}
$ans = Read-Host $msg
if (('Y' -eq $ans.ToUpper()) -and (($newClass) -or ($flatten))) {
 if ('Y' -eq (Read-Host "Are you sure?").ToUpper()) {
  if (($flatten) -and ($entityClass -eq 'BA')) {
   # todo make it a toggle
   $bytes[4] = 1
   $bytes[33] = 1
  } else {
   $bytes[8] = $newClass
  }
  $newProjectName = $outputFile
  mkdir (join-path $basePath $newProjectName) | out-null
  $newProjectPath = join-path (join-path $basePath $newProjectName) ($newProjectName + '.epb')
  write-host "Saving $newProjectPath ..."
  [io.file]::WriteAllBytes($newProjectPath, $bytes)
 }
}
 

And a clip of the script being used ( seek to 13:06 )
References:
https://github.com/Getty/p5-empyrion/blob/master/lib/Empyrion/Blueprint.pm
https://github.com/Riebart/EmpyrionGSTools

Multiplayer game RP - Star Wars themed Roleplay in EGS

Tiny signwriter font http://www.1001fonts.com/chlorenuf-font.html#character-map Chlorenuf
 Larger SW font http://www.dafont.com/star-jedi.font


Tuesday, 27 September 2016

GameMaker GameFlake

Well here we are again, just doing a braindump and embarrassing anyone who happens to fins this tiny 5 kilobyte piece of the internet and read it. No, not the CIA, you! (The CIA read all blog posters, especially mine in case we happen to be sharing state secrets.)

I got Gamemaker Studio for a low low price and now we are messing around to see if I can beat my mate the Jorrus at creating a game. I am secretly hopeing that he is too busy playing Eve or Civilization 5 or just playing Space Engineers or probably more likely Elite Dangerous to be honest. But hope never paid the bills, so here goes. I'm going to save down my notes (me memory has become like a sieve.. no a small bucket) so that as I learn things, the rate at which I forget them is captured electronically instead.

The YoYo games site is pretty good and has a good reference and explains the language really well. And initially it all looks really really simple, until you start creating something. THey link to some youtube channel with a guy called Shean or is it Craig, I forget, but the clips are pretty good, other channel that is pretty goodderer still, than Shaun Spalding https://www.youtube.com/user/999Greyfox is the https://www.youtube.com/user/SlasherXGAMES channel.

But moving pics can get you down so some good wall of text can also be found here by a Ukrainian called Vladim and goes by the blog YellowAfterLife http://yal.cc/gamemaker-trace-function/
(catchy title)

Thursday, 21 July 2016

Blueberry Footwraps

Are you a completionist? If so don't bother installing Idle Quest by TopCog onto your Android. It's the kind of game which is a lot like Clicker Heroes. Designed to use up time, doing nothing specific at all. Why not? Well the accomplishments are really easy to get most of. In fact you are going to get all but a handful of the game achievements (and the google play XP points) just by tapping the screen repeatedly and randomly so long as you do it about once a day, 5 minutes, over about 3 months. Sounding difficult yet?

In the clip I show you a hack to get levels in the game much faster, but I am missing a few accomplishments still. One of them is to craft a pair of "Blueberry Footwraps" boots.
I've yet to calculate the total number of craft-able items and quests you can go on along with quest storyline, it's pretty big, but not humongous. But the chances of crafting the specific footwrap boots are pretty low it seems.
I have managed to reach 92'nd on the leaderboard, so I've a way to go still. The boots seem to be just out of reach, I mean the "All your Spatula Needs" accomplishment seemed hard, but the 2 items are craft-able with some amount of ease individually. The trick is to have both items crafted, and then just wait until you get a Spatula city quest as well, which may or may not take terribly long. I think I waited about 10 minutes. If you get the Blueberry Footwraps do share.

Saturday, 11 June 2016

Beyond Eyes : A contemplative game review

Beyond Eyes is not a game, and it is;
it's not a graphic novel, and it is;
it's not a walking simulator it is, a very slow walk. I hope that has saved you some time, but if you are looking for a game that will change you, please join me. By their very nature video games change your world, sometimes they train you in keyboard mashing or in bad physics , always involving explosives. Beyond Eyes is a "game" that belongs in a genre of the kind of games that change your outlook. I call these contemplative games. The story starts with Rae, a young girl, around 8 or 9 by my guess, and blind.


Created by Tiger and Squid, Beyond Eyes took over 2 years of solo work until being adopted by Team17 (of Worms fame.) Published on Xbox , PC and Playstation4 in August 2015 the game is intended to create empathy, and to experiment with the act of exploring one's environment.  It's the exploring of a blind person executed in beautifully rendered watercolours, clean pastels on a muted back cloth of white which lends itself to the empathy experience that any game making it into this genre must have. You play as Rae, but soon I felt I was not playing as the young girl, but rather playing the part of the one thing glaringly missing, the parent. A parent who should be protecting what was once a promising and outgoing child but now damaged and terribly alone in the world. The sense of being alone is very strong in the game and it is personified in the appearance of a stray ginger cat whom Rae names Nani. Some people have drawn lots of conclusions from Nani's name or behaviour or meaning, but to me she is just a gentle but aloof cat. Nani appears in Raes' life just at the point when she is suddenly alone, and attempts to draw your character out of their shell by doing what cats do. The cat doubles as a kind of symbol, but Nani introduces you to the idea that a blind persons world is built using sound and smells. Which is why Nani smells like and behaves like a stray ginger cat. Wandering off and luring you through the garden gate into the exploring part of this game. The exploring mechanics introduces and uses an element that creator Sherida Halatoe capitalizes upon to emphasise the sensation of blindness. Your world as a blind person (and Raes' broken social life) is very small, and as you explore you must rebuild these 2 and at the same time overcome obstacles. You will get lost as you explore and search for Nani, and even temporarily stuck because you have to feel your way about because Raes' vision is built using sound. Sound which misleads her sometimes, resulting in some surprises and fun and leading to frustrations too. The game is played at a slow walking pace, I mean blind people can run, but the way the world fades slowly back to white after she passes, and the slow exploring speed really make you feel blind and trapped. You cannot move fast enough to rebuild the fading surroundings, and at one point it rains which literally washes away the beautiful watercolour rendered world. I started to feel a sense of urgency at this point and got totally hooked.




But even before this all, the game fell down for me. Just a few minutes into the game that will keep you busy for about 2 hours (more if you explore fully) I decided to see if closing my eyes would work. The sound-scape is really good, with chapters or stages are introduced with some brilliant piano work to compliment the mood. But the sound has holes, little things like a fountain that does not sound like a fountain if you approach it from the wrong side. Different walking surfaces are accurately rendered in the sound-scape with grass crunching giving way to the hard sound of stone and a crunch of gravel. But then the woodpecker at the bottom of the yard sounds out the same toc toc toc with no natural variations. Subtle environmental sound hardness changes and depth or echoes is another thing I expected to hear too, but to be fair I've not experienced in all but high budget games anyway. But these are made up for by the huge variety of sounds, smells and locations you must explore and the fact that Rae does not find a gun or a sword. Which would have come in handy in some of the threatening situations she finds herself in. Which is why I liked this game. I hope I've not given anything away, and helped you to decide if it's your kind of game. Creator Sherida Halatoe has added a few other elements to the game and story, but I'll leave you to find them.

Final scoring 

(How I score: http://softcircuitry.blogspot.com/2015/12/new-genre-contemplative-computer-games.html)
Artwork  5/5
SoundTrack  4/5
Plot 4/5
Playability 5/5
Value 3/5

Friday, 10 June 2016

failed mumble mumble : Rescue a partial gotoMeeting GTM recording

So, quick disclaimer, this post is a raw braindump. Nothing to see here (besides the fact that it ends in failure).
Today I was given a corrupted gotomeeting .G2M file to try and repair. I stupidly announced that I have repaired broken GTM recordings in the past. True and not true, 2 facts here:
Fact#1 GTM is a screen recorder, and as such is optimized for meetings and records at 10fps, in RAW by default to get good performance. Fact#2, the raw recording mode can be overriden in settings, and it's suggested you do so, it takes a bit more CPU poke, but is fine on most computers.

What has changed is that the codec Goto uses is a custom part, built to get performance, and like in all video tools you also need a decodec - luckily GTM provide the conversion tool in the UI.
If the UI fails... which it will do for me shortly, (I'm debugging while writing this as the conversion does take a few minutes) you have to try convert it manually.
OK, so now the digging starts.

https://glenndcitrix.wordpress.com/2010/12/17/the-ultimate-gotomeeting-recording-guide/
https://glenndcitrix.wordpress.com/2010/04/06/convert-recordings/
https://judisohn.com/2010/12/11/converting-gotomeeting-recording-to-something-you-can-actually-use/
While that goes on we are trying the following: use ffmpeg to convert the video to an MP4
Turns out ffmpeg seems to find the code needed for the g2m file and any container and starts decoding, but it's going to take hours and hours and the decoded file will probably be 30fps with higher data rate so that means around 10 x size increase...
But as we continue regardless, lets see what the support gurus can tell us at GotoMeeting.com forums.

Final result, nope, conversion failed

Friday, 26 February 2016

Powershell and open-auth / braindump

another /dump.

will take some shape as a go along. Basic problem I want to solve is using powershell to pass authentication through when calling a rest service, but in reality the "passthru" part of it all is a bit of a mystery to me. And feels like it might well be impossible to do in a really secure fashion.

http://foxdeploy.com/2015/11/02/using-powershell-and-oauth/

Wednesday, 24 February 2016

I'm Hangry, so I decided to give up strangling people for Lent


Everyone is a tester

I stopped being a software developer about 5 years ago now. Well that's not entirely true, I have always been a tester. In fact everyone tests, but not everyone puts "tester" in their job-title; so if this is you, stick with me a sec.

So lent runs from February 10 to March 24th, and generally people will give up something over that time. It's normally a Christian kind of thing, but in general it's a mindfulness exercise that's good for any religious conviction. Or even if that's not your thing. My thing is not killing people who #$%*@ me off on a daily basis. Most people will be giving up chocolate, they may have tried a Dryathalon, or a "Stoptober", but generally cutting any distraction out of your life helps you. Getting hacked off when someone disappoints you is not healthy, and that is true for software testing as a role.

The Lone Tester

Last night I attended a DOJO Masterclass called "The Lone Tester" by the lead test engineer at Bitly, who has worked solo for much of her tester career. Jess Ingrassellino talks about skills and fresh learnings for anyone who works solo, as a contractor, or who is keen to start learning how to start a career in test or, to shift themselves from Manual into Automated testing. That sounds like a lot, but Jess has done it all in just 4 years, so it's all very well related; her delivery is centred around being the only tester in your organisation or division and having to make your own way. If you are the Lone Tester, Jess gives some tips on how to see yourself as not being alone in reality, since everyone is in fact thinking about quality, but not necessarily an expert. Which is what you are really there for with your tester hat on.
It's not in my opinion a talk with any great revelations in terms of content or process wisdom to any seasoned tester, but she does drop in some pointers for managing your time and workload better and these might inspire the old guard too. To see the talk recording, sign up in the Dojo at Ministry of Test.

Back to the Lean coffee.

I snagged the following topics (actual POSTIT notes visible in micro above with the donkey.) As always my summaries are my words and how I understood them. Everyone in the room hears these same words but takes them on slightly differently. It's called language, and in my case hard-arse.
Performance Testing: Should I test little and often or full-on and infrequently?
  • A few ideas about why the question is the wrong question came out here. long-running stress tests are more like regression tests in many ways and thus carry the same high costs. They also find completely different classes of defect. Knowing this in advance will clue you up on where to go in your strategy
  • You do need both, but understand why first and when first
  • Quick can never be replaced by deep testing, mainly because it can deliver test verdicts quickly and supports your CI process more directly
  • Deep testing delivers more accurate metrics than a quick performance test. But if you apply the same metrics gathering and performance gathering history analysis to your quick testing runs, you will get more value more often and sooner
  • Long running test are best run infrequently in your cycle, and only when you change something that could cause the problems associated with stress failures: Namely; changing the version of any 3-rd party component, major algorithm/architecture change or anything infrastructural that the architects identify as risky
For anyone with time to google around, maybe look for some tips at a recent #TESTBASH by Scott Barber.

I've been asked to test a spreadsheet WTF???
This one came from Alan I think it was, like all simple questions it raised good responses:
  • Sometimes you get asked to test something that you don't really want to test. This severely impacts your reaction and emotions can very quickly prevent you being effective
  • Analyse the business risks, work out the value to business. Then move
  • Gather some stats on how often the "spreadsheet" causes losses, present your findings in easy to consume form like a graph, so that people can understand the risks. Exposing actual size of any risk is your speciality as a tester

How to cope with Context switching and Time management

This was my topic, but more a question, since it's something I'm rubbish at. I was inspired by the tips that Jess Ingassellino shared in her "Lone Tester" masterclass.
  • Time your activities to fit in with natural times of the day, like lunch for people-time, mornings for firefighting, and afternoons for actual core work
  • Plan actual test "session-based testing" for set times
  • sprint, and capture stories
  • Use various todo listing tools

How do I assess my value as a tester?

A topic which Jess co-incidentally also touched on, funny how this kept coming up. Honest guv.
  • toot your horn
  • drive process, management expect you to make process changes that impact quality
  • protect revenue. It's not your job to sell the product. Not your job to fix bugs, nor even to find them. All you have to do is ensure customers don't find them.. well at least not the ones that make them select a different vendors' product
As a tester, you must always be asking questions. First, foremost and often. It's called left-shifting.

In closing; one of the topics not covered (there were a good few) was using "Selenium from absolute scratch". I think a few people are interested in getting a n00bs guide.

Tuesday, 16 February 2016

Test automation sticky-note (sic)

A quick note to make sure I do not loose a little idea I got while browsing recent presentation a STARWEST. The specific presentation I have in mind is here:
http://www.stickyminds.com/interview/five-patterns-test-automation-starwest-2015-interview-matt-griscom?page=0%2C0

Matt Griscom links you to his website and a download for the .NET Framework based tool he created. I believe it warrants a try, because although it glosses over some problem-domain specific areas for me, it seems to take account of a lot of the automation framework gotchas I currently face.
His blog is http://metaautomation.blogspot.co.uk/ and the download is hosted here http://metaautomation.net/ .

Basically I face a problem where my current automation system is not flexible and powerful enough, so requires fragile customization. Stable over the short term, your test code breaks every time the framework revision changes. Which has to happen as you integrate common or shared test-code down into a pattern in the toolstack or into a shared library. All this work needs to be designed and to be planned to reduce maintenance load. Matt seems to recognize many of the related problems I face there, although maybe not solving them, the act of identifying them helps us a lot. Basically he takes the approach "measure everything". Make it easy to mine all data and suddenly you can do comparative and performance testing as well as predictive triage.

So, just a quick note before I forget all about this angle.

Thursday, 28 January 2016

Why testing fails (the short of it)

I was asked to try take the speaking place of a colleague, and talk on this for CEWT #2. Cambridge Exploratory Workshops in test.
I was initially just hoping to get onto the reserve list, then someone dropped out after I wrote this. So here we go.
Not the kind of thing you want to admit having first-hand experience in when you work for a company falling into the top 100 of almost every desirable list. I'll share my 2 reasons on the topic "Why testing fails".
It's not possible any-more to book a place at CEWT #2, basically because the workshop is limited in size. But if you want to find out more, do get along to a lean coffee morning, just google for the (real) Cambridge meetup "software testing club lean coffee"
To be on 28th February at DisplayLink Cambridge. Contact JamesThomas @qahiccupps .

Rushed Implementations 

“Look before you leap” comes to mind.
  • Features without right hygiene loose in the quality department
  • Feature does not solve customer a problem and becomes harder to test
  • Test not involved early enough

Test Planning 

“Fail to plan, and plan to fail", going around in vicious circles comes to mind.
  • Close-down cycle with no resources planned or budgeted for it
  • Planning impacted by rushed implementation
  • Planning is easier than you think (with good data to support it)
 

Saturday, 23 January 2016

humble bundle green screen challenge

What's the Humble Green Screen Challenge?
Inspired by FMV games, this event allows you to take a crack at making your own full motion video.

How should you make the videos?
We're providing some sample footage that you can use. All we ask is that you somehow involve that. There aren't any prizes to this challenge, so the rules are pretty darn loose.

Rules:
https://support.humblebundle.com/hc/en-us/articles/215590188-Humble-Green-Screen-Challenge

YT demo clip: https://www.youtube.com/watch?v=BnyZHvZya7I&feature=youtu.be
My demo clip: https://youtu.be/_jfySBKSjQM
A bit like those DVD games where the DVD plays a clip then asks you a question, if you press "left", it plays another clip, if you press "right" it goes a different way. A bit like the make your own story choice skip to page X novels.

Stuff I learned along the way:
How to do Dolby in VideoStudio : https://www.youtube.com/watch?v=GIR7ljJh7eE
How to get 6 tracks (Dolby 5.1) from a stereo track in Audacity : https://www.youtube.com/watch?v=zu37UaVlLJE
The audio results are not great- mostly due to not having any Dolby or surround equipment.


Chroma and background sources:
  • https://www.youtube.com/watch?v=uL_Q0uRxMOA : Alex Free Stock Video Footage - Full HD - Fast Night Street
  • https://www.youtube.com/watch?v=O9KYVLKCovU : Alex Free Stock Video Footage - Full HD - Animation - Disco Light 
  • https://www.youtube.com/watch?v=Bo7flVvnCgw : Alex Free Stock Video Footage - Full HD - Highway - Italy - Monte Carlo - GOPR0255
  • https://www.youtube.com/watch?v=UOqJrllL2Ec : Ufo Alien Spaceship Fly By - free green screen 
  • https://www.youtube.com/watch?v=_RV8DkZqXI4 : fond vert ovni HD - Greenscreen UFO 1080HD
  • https://www.youtube.com/watch?v=R3aA6TqvNg0 : Free Stock Footage_ Fish Swimming in Ocean Kelp Bed
  • https://www.youtube.com/watch?v=--ze-88FZY4 : Galactic Journey in Space - Royalty Free Footage

Scoring time!

How do you rate my clip against some of the other subs?

Wednesday, 20 January 2016

Cambridge Lean coffee | Towers Watson

After not seeing the crowd of happy testers over the hectic Xmas break, a trip to Sawston was a welcome way to kick start 2016 with a drive-by to the south of Cambridge.
The "Testing" started, when I got picked up on my visitor registration badge right after arriving, because I had dated it 2012. Which was a good thing, because if I had dated it 2015, I would have been investigating the occurrence of an "off-by-one" defect.

The "checking vs Testing" did not stop there, but let's crack on.
We covered the topics which I paraphrased badly in order to fit them in a hurry onto the well scoped but limited surface-area of a post-it. We formed 2 groups, so these notes are from Chris Georges' table only.

Why pay to have a tester?

Or rather, at which point do we need a tester? Some companies test in the traditional way - they have automated unit tests and things are just fine for them right now. Some teams if small enough will get by just fine for a while. But without the specialist skills a specialist tester brings, all you have is someone who knows how to check stuff and how to write stuff. A professional tester is a integral part of the team and will be involved with requirements, which design review, and be able to get the correct level of detail in a test plan. You do have a test plan? right?
A professional will have the bandwidth to execute all the testing in the background when the developer is busy trying to fix a large list of bugs 2 days before the release deadline. This might also be called shielding your developers - something your support team might be doing right now already.
Did I mention, testing does not actually stop after the ship-party? Having a person on your team who knows that testing is not 100% about running test cases, but is also about helping you judge risk as well. A dedicated tester allows you to get the right detail level in your QA, because it enables a different perspective.
A good tester is a important part of a team, like a cog in a clock, it's important to make sure it is unique and just the right size for the job.

How do I automate legacy code testing?

It's really hard to do, and I can offer some tips on how to do this using clever instrumentation in ways that does not require code changes all over the place. But the question elicited these responses.
1. Prioritize your testing : P1=urgent , P2=less urgent and so on. This lends structure to what you are doing as well.
2. Be methodical - look at the test script (you have a script, right?) and analyze it for high probability blockers - try to ensure that you run things that can block as early as possible. This lets you push blocker into the developer early and buys DEV more time to resolve a blocker while you test down a different path.
3. Do session based testing. This is going to let you work through a weak test plan and by logging your session you will improve not only future test iteration estimates, and thus be able to time the testing to fit a release closedown. but it will also let you see which sessions and thus which features are the most needing testing based on how many bugs you recorded in a session. Excel is a great tool for recording.
4. Traceability - this is going to come out of the above steps.

Ultimately a deep understanding of what features are dependant on what components of the product will guide you to estimate which areas do not need more re-testing due to simple lower risk. risk is driven almost entirely by code churn. So components with minor change tend to break less- but only because of the interface or environment effects.
My tip on how to avoid re-testing legacy code, is to catalog how the environment impacts the features in the product. If environment plays a big part, study the impact and adjust your plans accordingly.

Specific to automation, instrumentation is an avenue worth exploring as a way to automate testing of legacy code, without touching the code-paths. Maybe I'll write something on this in future.

Which GUI tests should I automate?

Since this is a very common automation question, and the dangers are understood, I'll talk a bit more about ROI.
1. Paring it back , taking a good look at what to not automate by identifying the high priority cover areas
2. What things are hard to test manually, automate those first. What tests deliver most value if automated - things like product install /deploy or launch can be easy to automate and unblock your product development (CI system) quickly.
3. Talk about testing earlier - by forcing devs to thing about testing (manual and automated), you involve dev early, and get them to think more like testers. Make the end-application easier to test also makes end-users lives easier too in many cases.
4. Don't automate unit tests - basically system test, test the behavior, not the code!
5. Don't burn out your testers! Gettign testers to run manual tests all day will drive them a bit nuts, identify tests that drive them nuts and try automate those.
 I used a score-sheet (Excel to the rescue again) to decide when to automate. It looks like this.

























We have 3 dummy cases here
Each test case or "TCD" will have a script (paper or electronic).


 Score each question (criteria) from 1-5. anything that scored less than 5 overall is just never automatable, anything getting over 50 might be, and so on. You get the idea. This screenshot omits the "weighting" applied and a few other "gating" criteria which link in with the PDLC used where I work at the moment (Citrix ltd.) . But you get enough of the picture.