Slashdot Mirror


What Does a Software Tester's Job Constitute?

First time accepted submitter rolakyng writes "I got a call from a recruiter looking for software test engineer. I'm a software engineer and my job is development and testing. I know I mentioned testing but I'm pretty sure it's totally different from professional testing practices. Can anyone shed light on what a software test engineer's day to day responsibilities are? They said they'll call me back for a screening and I want to be ready for it. Any tips?"

228 comments

  1. Ummmm by eternaldoctorwho · · Score: 0, Redundant

    Just a guess, but: Testing software?

    1. Re:Ummmm by tripleevenfall · · Score: 2, Informative

      Taking builk testing responsibilities off developers so they can work on more important stuff.

    2. Re:Ummmm by stanlyb · · Score: 1

      Try again. Repeat.

    3. Re:Ummmm by fooslacker · · Score: 5, Insightful

      Reading and understanding requirements....Writing testing strategies, test cases, and low level testing scripts that can be traced back to the individual requirements that they test....Understanding which test cases map to which functional blocks of a system....Identifying which test cases should be part of a regression pack and keeping that pack fresh through various versions of the software....running that regression pack when requested during future development cycles...performing change impact analysis to select subsets of the regression pack to test various changes...etc.

      ....and if it is a manager position then add in all the people stuff on top.

      ...and of course executing test cases and tracking the results.

    4. Re:Ummmm by Akratau · · Score: 1

      Definitely! You are checking a list of features,however you don't get the features list solely from the software - you get it from the Business Requirements Document - you are testing that developers have delivered what has actually been asked for by the people who are doomed, sorry, destined to use the software.

    5. Re:Ummmm by Anonymous Coward · · Score: 0

      3 test cases, our company has about 1200 test cases for our software written between powershell vbscript ruby and javascript. Our software is a backbone to a lot of corporation allowing them automation of their repetitive tasks. Therefore we have to QA every possible SP and version of windows, and most major unix/openvms systems

      The key is versatility and dependencies. Not only do you need to look at your software, you have to look at the underlying components and basically expect failure at every angle.

    6. Re:Ummmm by Altheron · · Score: 1

      Taking builk testing responsibilities off developers so they can work on more important stuff.

      More.. important.. stuff, than making sure their code works?

      I mean, I guess "a developer" is someone who "writes code" regardless if it works well, or at all? By that reasoning, "a thousands monkeys on a thousand keyboards" is the gold standard for programming excellence?

  2. it means by gangien · · Score: 1, Flamebait

    telling the developer he's right about everything and the product is never broken, or the tester will get a tongue lashing.

    1. Re:it means by tthomas48 · · Score: 1

      Sounds like someone's got a case of wanting to be a product manager instead of a tester.

    2. Re:it means by Lunix+Nutcase · · Score: 2, Funny

      Sounds like someone is butthurt because he got chewed out for filing shitty bug reports that were vague and useless.

    3. Re:it means by Ambiguous+Coward · · Score: 0

      Oh, come on, "It's broken" is perfectly accurate! Not terribly precise, but definitely accurate!

      --
      Their may be a grammatical error, misspeling, or evn a typo in this post.
    4. Re:it means by Anonymous Coward · · Score: 1

      The skills you learned on the playground when you were eight years old help, as in this sample dialog:

      QA: The build is broken. I'm opening up 11 new defect reports.
      Eng: Wait! Did you get the latest fixes from last night?
      QA: I installed it this morning. None of my test cases work.
      Eng: You must have a configuration problem. Or you did something wrong.
      QA: No, I did everything right. The build is broken.
      Eng: No you messed something up.
      QA: Did not.
      Eng: Did too.
      QA: Did not.
      Eng: Did too. Anyway I'm preparing another checkin for tonight which will fix most of the remaining problems, but what you have should already basically work.
      QA: Well it doesn't.
      Eng: Well you're not testing it the way you're supposed to. These are probably mostly user errors.
      QA: No, they're not.
      Eng: Yes, they are.
      QA: No.
      Eng: Yes.
      (etc)

    5. Re:it means by CptNerd · · Score: 1

      I learned early on as a junior developer to be paranoid when it came time to code the design. There are a few rules that I learned to keep in mind that have allowed me to pass more unit and system tests.

      One, don't trust the data that comes into your method/function/subroutine.

      Two, don't trust the data that comes back from methods/functions/subroutines that you call.

      Three, assume that other users will not trust the data that you modify and/or return from the function/method/subroutine that you're writing, and therefore accurately report to them anything that goes wrong.

      I've noticed a trend in the past few years in younger developers, that they tend to develop with the best case scenarios in mind, believe that users will always enter valid data, that functions are always correctly documented and always require and return exactly what their documentation states, and that therefore the developers' code will never break unexpectedly. There is the idea that error checking isn't needed anymore because it's a waste of effort and time, that Java will always throw exceptions when something really bad happens, and rebooting/restarting the software will fix everything. I have to tell them that Java can't report failures caused by violating the business rules behind the design, that it's important to check for valid data and valid execution.

      Of course, since I'm old and "unable to keep up" I'm now working maintenance on a big system, but I've found several show-stopper bugs that would not have shown up had the developers been just a bit more paranoid in the design stage. It would also have been cheaper to find the bugs before deployment, but the testing staff is overworked and understaffed, and stuff gets through, and so we have to get the trouble tickets from senior management in the customer's organization (USGov) when critical things break. People who when they are unhappy enough, take contracts away from the developers who make them unhappy.

      --
      By the taping of my glasses, something geeky this way passes
  3. Boring test cases by Anonymous Coward · · Score: 1

    It consists of repeatedly running slight variations on predefined use-cases. Basically following scripts and recording your experiences.

    i.e. boooooring.

    1. Re:Boring test cases by Anonymous Coward · · Score: 5, Informative

      Posting as AC but I've been a tester for over 10 years at different companies, many of them contract work. I very much enjoy the work.

      Let me clarify many of the things about being a software tester (which can also include embedded software/firmware). From my perspective:

      Following the test script as written is only a small amount of the big picture.

      Issue characterization. It's not good enough just to report the issue. How often is it reproducible? Device specific? Configuration specific? Timing specific? Line by line steps to reproduce, what was the observed behavior, what was the expected behavior. Is it only on first time launch? Does it reproduce on a variant? Localization form and fit--even if the language is not fully understood, when checking localized builds for form and fit, is there any trucation or overlap, does text go outside the button areas? Does it always reproduce, or how many times out of how many attempts?

      Severity determination--not everything is going to be a showstopper but properly rate the ones that are showstoppers. Also, a low severity defect can still have a higher priority if more than 50% or so of users will see the issue.

      Exploratory testing skills are equally essential. Even after running the script line by line in order, what else wasn't covered? What if a different file is used, a purposely corrupted file--is the software still robust?

      Quick turnaround on resolved issues. Verify the issue is fixed and close the issue, or reopen the issue with additional information as to why the issue still occurred. However--if the issue was fixed and a new issue is a side effect of the fix, then the issue resolved gets closed and a new issue gets submitted with many testing teams. They do not usually add the new issue to the existing issue except as a comment, so that closing one issue does not lose the other issue.

      Teamwork--collaborating with other testers, developers, managers, maybe even conference calls with outsource vendors.

      Test case authoring. Even in a pure manual testing environment, existing test cases need to be updated (or removed if a function no longer exists), new test cases need to be added for new functionality, best coverage in the least amount of test cases is the goal.

      Automated testing--developing test scripts in the automated testing environment. This is programming for testing purposes in many cases.

      It all varies from company to company, project to project--but in a lot of cases being a software tester is not about just go to the next test case and mark it pass, fail, or blocked/not possible for each working day, every day.

      I hope this helps.

    2. Re:Boring test cases by shish · · Score: 3, Informative

      If your test is simple enough that it can be turned into a script for a person to run, turn it into a script for a computer to run, and then go test some other more interesting part of the system

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
    3. Re:Boring test cases by Anonymous Coward · · Score: 0

      Testing/BA for 7 years. I would like to add:

      Requirements traceability - making sure the test script is testing the fit criterion of the business or functional requirement. This is important to make sure the test is testing the right thing.

      Design traceability - making sure the requirement fits the overall goal of the program. Testing is the LAST STOP before production. Often when a defect refuses to go away it is due to conflicting or inaccurate requirements because the BA didn't trace correctly.

      Prioritisation - knowing which test scripts are more likely to fail, and testing those first. The prioritisation methodology (e.g. MoSCoW) has generally been applied from the business perspective based on the relative importance of requirements. But you /must/ apply your development knowledge from a technical perspective as well. For instance, you might be testing a Java program and you have better insight into how a Java program is likely to break - so test that.

      Here's my last bit of advice: If testing is getting grindy and feels more like WoW, you're probably testing the wrong things. Move to exploratory or make some new scenarios, if you're just running scripts to tick the boxes then you are wasting your time.

    4. Re:Boring test cases by ESD · · Score: 1

      Following the test script as written is only a small amount of the big picture.

      More importantly: writing the test script yourself and not letting other (mostly non-testers) do it for you. If you have nothing to say about what will be tested and how, you won't be able to test thoroughly. If they won't let you write your own test script, you won't be a tester, you'll be a real QA Scapeg-erm-Engineer: you'll just be there to assure that there is 'quality' (What _is_ quality, actually?) and have your ass on the line if it turns out there isn't because your job description says _you_ assure everyone there is. You cannot guarantee perfection as a tester -- you don't have full freedom to change shipping schedules and you're not allowed to change the code -- so you cannot assure quality. You can at most provide valuable advice about the state of the product to the people that can make those decisions: that's the difference between a QA Engineer and a Tester.

      Exploratory testing skills are equally essential. Even after running the script line by line in order, what else wasn't covered? What if a different file is used, a purposely corrupted file--is the software still robust?

      Effectively you are also testing your own test script... Where is it incomplete? Did you miss requirements (it's not just your product requirements documentation that provides the requirements, you also have standards, user expectations, laws and many other sources that are typically not referenced in product requirements but are vital to making a good product.)

      Automated testing--developing test scripts in the automated testing environment. This is programming for testing purposes in many cases.

      If you even need to test something more than once, do it the lazy sysadmin way: automate it. If you are expected to test multiple releases of the same program: prepare to spend at least 50% of your time automating (I usually start from automation, which has the added advantage that over time you build a library to quickly set up large parts of test scenarios, even for manual testing if you interrupt your automation scripts in the right spot.)

      For much more information and better explanations, my advice would be to check the blog of Michael Bolton (http://www.developsense.com/blog/), who links to other great software testing minds that use the same ideas like Cem Kaner, James Bach etc... (I usually read Michaels blog though, mostly because I like his writing style.) They definitely brought more fun and insights into my testing work.

    5. Re:Boring test cases by Anonymous Coward · · Score: 0

      I did 2 years in test after college before switching to development, and this post is about right. If I might add (note: I have not read all of the comments, so this may be covered)....

      - If you automate your testing and provide development with the scripts, expect them to code to the scripts. This may not be a horrible problem, but it may result in people forgetting what the documented specs are.

      - The people who instituted this later denied that it ever happened, but when I worked test it was required of the testers to solve the problem for the developers. Maybe not say "here are the changes that need to be made", but at least find the line of offending code. While I see value in such action, I could also see more arrogant developers taking offense. I've only seen this from the test side, so I don't know how offended I might be if a tester did such a thing and presumed to do my job. I would like to think that I found it helpful as long as the tester presented it well. Basically I am saying that you should explore the defect within reason, but remember that the developer's ego may be fragile.

      - On that note, there are two other points worth noting. The first is that documentation is important. Step by step how to recreate the issue is essential, but just as essential but often over looked is "why is this a bug". There will be issues that are legit bugs pushed back by development that probably should be considered bugs, but they will argue "Working as Designed". State your case, let them decide and accept the choice; document if possible. Sometimes you have to accept that it's better to leave a bug in place than to fix it but as long as you've properly explained your stance your job is done.

      - Second, and maybe this is just my experience, but accept that you will be looked down upon as a tester. I don't mean simply by developers wanting to feel superior but by future potential employers as well. I personally accept that some people are good testers and some people are good developers and never the twain should meet, but as far as I'm concerned both groups (overall... on average... whatever) should be fully capable of either job. I personally have have applied for test jobs only to have hiring managers confused as to why since I have primarily development experience and I've seen other people been hired as developers inspite of their past in test. There may be differences in approaches and scope of work, and, as I said, those that excel in either may not be able to do the other as well, but the skill sets are so closely related that it shouldn't matter. Sadly it seems that it does.

      - Automate anything that you can. I hate the idea of automated regression test for many reasons, but I can't argue against it's results. Border cases, known passes, and known fails are reasonable tests to run every time simply because development sometimes will break stuff. I am not going to suggest exhaustive tests going for 99% of all possible inputs or conditions, but if you can make a computer waste it's time checking things that should always work, there really isn't a reason not to check the edge cases.

      - I'm going to say it again, documentation is your friend. How do you reproduce the bug and why is it a bug. Make those steps clear and loud. Past that, if you worry about it, you'll get nothing but frustration. Developers returning bugs saying that it works fine for them, it works fine in the current release (which has zero changes that should have fixed it), or it is working as designed.... shit like that is going to happen and you'll just need to accept it. I worked with testers who just said whatever and plugged along and with ones that started making noise and poking higher ups; The former got more work done and the latter started to realize that he needed to dial it back a bit.

      Overall, my 2 cents is that testing is like good documentation. Good testing is amazing and you don't know how you can ever live without it and everything is unicorns and rainbow farts. B

    6. Re:Boring test cases by Anonymous Coward · · Score: 0

      Ok, you are good.

  4. What Does a Software Tester's Job Constitute? by Anonymous Coward · · Score: 5, Funny

    A: Suffering

  5. scripts by X0563511 · · Score: 1

    To paraphrase an AC, you basically follow an established-by-development script over and over and over and over and over and over...

    You do not think, you do not troubleshoot. You perform prescribed actions and check marks on your... checklist.

    --
    For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    1. Re:scripts by Dastardly · · Score: 2, Insightful

      Which as a developer I hate. What I really want testers to do is write automated tests. The only hand test a tester should do is one to see what the automated test should do. Yes, reality ends up being a mix, but reality should be informed by the ideal. It irritates the hell out of me that testers are doing the same thing over and over, that is what computers are for.

    2. Re:scripts by chuckfirment · · Score: 5, Informative

      I have to disagree. I've never worked somewhere like this, and I've been in SQA for many years at many jobs.

      If you want to be a low-paid button pusher, yes. Do the same thing over and over, all day long with no deviation. If you want to enjoy your job testing, test the software. Try to break it. Troubleshoot. Do things the developers wouldn't expect. (After all, who expects an apostrophe in a name field? "We only expect regular text, right Mr. O'Hanlon?")

      The job of a software tester (tester, not button pusher) is to try to find all the defects in the software and report them to development so they can be fixed.

    3. Re:scripts by Gamer_2k4 · · Score: 2

      Do you not have an interface on your product? If you do, manual testing is absolutely crucial. Automated test coverage is an excellent thing to have, but it can't replicate the user experience.

      I say this as an automated tester who absolutely hates manual testing. I can't deny its importance, though.

    4. Re:scripts by Anonymous Coward · · Score: 0

      +1 for this.

      If you can write an automated test that can perfectly replicate the human experience while interacting with the UI of a computer system, you have probably made an amazing breakthrough in AI.

    5. Re:scripts by Anonymous Coward · · Score: 0

      Ha, this reminds me of the email field on our online app. We didn't know an apostrophe is an allowed character in emails until after deployment and a user complained. Even after that we had to look up the email rfc to confirm its just not a rouge email server somewhere.

    6. Re:scripts by BrokenHalo · · Score: 1

      Even after that we had to look up the email rfc to confirm its just not a rouge email server somewhere.

      How can you tell what colour your email server is from an RFC? In any case, a rouge server should stand out among all the beige boxes...

    7. Re:scripts by jgrahn · · Score: 1

      Which as a developer I hate. What I really want testers to do is write automated tests. The only hand test a tester should do is one to see what the automated test should do. Yes, reality ends up being a mix, but reality should be informed by the ideal. It irritates the hell out of me that testers are doing the same thing over and over, that is what computers are for.

      It irritates *me* to see testers executing thousands of automated tests of dubious quality, inherited down from their predecessors. You don't learn anything that way, and you never touch the functionality which those testers of the past didn't cover. (Not that I recommend doing the same thing, with humans as the automats: that's just as stupid, and also cruel.)

    8. Re:scripts by Anonymous Coward · · Score: 0

      I think you missed the part where he said test "Engineer". You're thinking of the no-degree, limited experience, high-school aged testers that are so prominently featured in the (awesome) web-comic "The Trenches". Black box testing is for weenies.

      Engineers are the ones that you want to be. They're the ones that design the test plans, develop the frame work, write the scripts and all in all, not only ensure that the product being sent out is quality (hehe QA, get it?), but build a system that allows the designers to make changes to the code base with the confidence that they aren't breaking things three modules away.

    9. Re:scripts by Dastardly · · Score: 1

      The tester should not be executing automated tests either. I was probably too succinct when I said "writing automated tests" That involves deciding what the test should be, validating the test, improving based on feedback, trying other things to see if the coverage is good enough and writing the actual automated test. And, as the other reply said there is the initial test of does the interface look right, because it is hard to automate that. On the other hand once you get it right the computer can check the output and warn everyone when it changes because of an unforeseen interaction.

    10. Re:scripts by Dastardly · · Score: 1

      True. Although, I am expressing my irritation at the fact that is such a small part of what testers end up doing because they end up spending time on testing things that would be better automated. And, if they miss it we end up with regression problems. But, once there is happiness with the UI, automation should make sure that it does not change unexpectedly, that way the tester can spend their time working on the new stuff instead of checking to make sure there was not an unexpected interaction between the old stuff and the new stuff.

  6. BREAK IT by phrostie · · Score: 4, Insightful

    Go down a list of features.
    make sure they work one at a time.
    then try to break them anyway.

    1. Re:BREAK IT by Anonymous Coward · · Score: 1

      No, not one at a time. Not always. You need to test interaction as well. Try "soap opera" testing.

    2. Re:BREAK IT by Darinbob · · Score: 2

      Also you must do this formally and rigorously. That's the real challenge. Read all the specs, or write them if none exist, create a detailed test plan, etc. Very often the testers are the true experts in a product. The devs may understand their little corner of the product but often don't understand the product as a whole. QA is often a liaison to many other groups as well, being asked to replicate bugs that customers or labs found, getting first products from manufacturing and testing those. They QA people know how to configure everything and will be asked about it. Need to keep track of all software releases and remember which bugs were in which, because people are going to ask you this stuff too.

      Automated testing is a very useful skill for QA as well and knowing this stuff can be very helpful in getting and keeping a job. Then there's performance testing, security testing, unit testing, end-to-end testing, integration testing. And meetings.

      Development experience can help too, in that you often have better ideas on how to break things and what corner cases are (of course your job is not really to break things but to verify that they're working, breaking stuff is just a nice perk).

    3. Re:BREAK IT by Ichijo · · Score: 1

      Go down a list of features.

      If you're very lucky, the software will already have a list of requirements. And if you're almost as lucky, your first job will be to create it.

      If you're not even that lucky, then you're pretty much screwed.

      --
      Any sufficiently unpopular but cohesive argument is indistinguishable from trolling.
    4. Re:BREAK IT by wvmarle · · Score: 1

      How about usability testing?

      And maybe accessibility? (this one is particularly of concern for web sites)

      All I see in this discussion is how to find sofware bugs and issues that crash the software - important sure, but that doesn't mean the software is easy to work with. Having a design team that designs the UI beforehand also doesn't mean there are no bottlenecks there.

      Good software for me means that the software not only does what you expect it to do, but that it's also easy to use.

  7. Testing scripts. Lots o' em. by Kenja · · Score: 2

    There are several different industry software testing platforms which allow for the creation of complex automated testing scripts. These scripts can be very complex and constitute a programming language in their own right. The idea is to be able to provide a script that the developer can run to recreate a set of error conditions so they can be fixed. Likewise you would end up with a series of scripts, that when run (often over the course of a day or more) will test all aspects of the software and check for new errors or confirm functionality. These scripts will have to be updated as the application changes, so if done right its a full time job.

    --

    "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    1. Re:Testing scripts. Lots o' em. by afabbro · · Score: 2

      The job is probably somewhere between these extremes:

      1. As Kenja describes, managing a complex software testing platform, installing the software, licensing it, configuring it, writing the scripts for it, working with the dev team to make sure your testing is in sync with what they're doing, etc. Simply managing a complex product and all of its organizational interconnections could easily be a fulltime job. Besides the product, you'd probably have to know whatever programming language(s) are being used (Java, C#, whatever), plus the app's own scripting language, plus possibly some ancillary languages - perl, SQL, etc.
      2. Having a Word doc with a bunch of tests you are supposed to run every time they are ready to release a new version. You manually go through all these tests and send emails or enter a problem in a bug-tracking system once something breaks.

      If they didn't say "we're looking for someone with GronkTest 3 experience" it's more likely to be nearer the latter than the former.

      --
      Advice: on VPS providers
  8. Software testing by Anonymous Coward · · Score: 0

    It means:

    a) Planning software testing (Which is the hard bit)

    b) Testing the software (Which is the boring bit)

  9. Just say no by Anonymous Coward · · Score: 2, Insightful

    If you are a software developer, do not take the job. Development is usually considered more skilled.

    If you want to try just ask for your current salary and than you will have no problem since they will say no.

    In short they are looking at you as a sucker who will accept less pay with more skills.

    1. Re:Just say no by Anonymous Coward · · Score: 2, Interesting

      It depends. Often if you are moving to a better or bigger company they will start you in test. A lot of people move on, but test can be great.

      You typically work less hours.
      Test Automation can often be more difficult that the Engineering positions.
      The pay can be just the same.

    2. Re:Just say no by tgd · · Score: 2

      If you are a software developer, do not take the job. Development is usually considered more skilled.

      If you want to try just ask for your current salary and than you will have no problem since they will say no.

      In short they are looking at you as a sucker who will accept less pay with more skills.

      That depends entirely on the company. Some of the big software companies, like Microsoft as an example, pay equivalent salaries to people who are SDE or SDET at any given level, and its fairly common for people to move back and forth over the course of their career. (Microsoft, to use the example again, has both SDET -- software development engineer/test -- and a very small number of STEs -- software test engineers. The latter are basically click testers, the former are software engineers.)

      A lot of it comes down to what testers are doing at a given company. A good engineering firm, the difference is someone who writes code for customers versus writes code for internal quality uses. The skill, education and experience bars are the same between the two. Often times the actual engineering is more complicated, more interesting and less driven by customer BS doing SDET work.

    3. Re:Just say no by Anonymous Coward · · Score: 0

      No-no-no, This is how you write flamebait :p
      A dev knows one thing very well and only has to read a PART of all the analysis docs that make up a project, the tester has to cover it all, and has to know his way around dotNet equally well as sql. And if you're starting to write automation you're actually developping for yourself on top of it. In a third language. BTW I write my scripts fully OO, as opposed to eh, well every dev on the team. They code as if the concept of code-reuse has fallen out of style >.
      I'd answer to this in more detail, but I have cruise around in my BWM and fap my superiority complex.

    4. Re:Just say no by Anonymous Coward · · Score: 0

      If you live in the PNW and you get a dreaded T in your job title after already being a developer, you are considered questionable. "Why would a good developer go back down to test?" You can thank MSFT for this attitude. Also if the company you are going to work for is offering stock options, you'll get about 5% of what developers get who are working on the product you are testing .(No I am not shitting you. Testers you should all be aware of this.) Once you start into test, it will be hard to make your way back to being a developer full time, ever again.
      People that have been doing testing for a while are given leeway, but people new to testing are expected to join the crowd of "Testing can be 100% directed." Which of course it can't, but that crowd then uses that myth to generate a huge hierarchy of people to do infinitesimal component testing. With each person testing their piece.
      Short answer: You'll hate it, you'll not be able to leave, you'll find yourself in hell.

  10. THAT SHOULD BE by Anonymous Coward · · Score: 0

    Of ... What Does a Software Tester's Job Constitute?

    PULL UP !!
    PULL UP !!
    PULL UP !!

  11. Depends by Anonymous Coward · · Score: 0

    If you're a contractor, expect to be abused. You might not be just responsible for testing.

  12. You are going to be the one who knows the software by roman_mir · · Score: 4, Insightful

    The truth is that if one wants to find out what software does under different conditions, he shouldn't go the designer or the developer, he should go straight to the tester.

    The job of a tester is to put together a meaningful plan - understand how the software is going to correspond to the business needs and test the main logical paths as well as some optional and failure paths and find out what the software really does as opposed to what people think it should do.

    If the difference between what the software does and what is required is such, that the business will suffer because of it, this should be fixed, so this goes back to the developers.

    Testers prepare test plans and test the software.

    Good testers prepare the data and seed it, so that it is the same at the start of similar tests in each iteration.

    Intelligent testers use various tools so that they don't do this by hand.

    Excellent testers figure out what the business needs and actually provide good user-like (but better) feedback to the development.

  13. I used to be in FVT &SVT at IBM by Anonymous Coward · · Score: 0

    I tested OS/2 Warp (That was when they took OS/2 1.3 and recompiled it under Visual Age for 32 bit) and OS/2 Power PC (IBM Mach kernel).

    FVT - Function Verifiction Test - basically an app programmer that would create apps that makes sure APIs do what they're supposed to do. SVT - System Verification Test: follow a script - day in and day out. Click on button, click on menus - down to every single one.

    The FVT job was kind of fund. I learned things about app writing and OS internals that you'd never learn in school. I had to debug the OS many times.

    SVT was boring as all Hell. Mindnumbingly monotonous.

    For both deptartments, we had a script. FVT you'd write a program that did the script and SVT you did the script manually is what it comes down to.

  14. makes COBOL look like a paradise by spiffmastercow · · Score: 1

    I pity our poor testers.. I have to assume that they must develop some sort of mental detachment capabilities to be able to sit there and test the same thing over and over and over. Go back to your cube. Spending hours trying to get the damn login screen to work in every browser might seem painful, but it's nothing compared to the hell that is testing.

    1. Re:makes COBOL look like a paradise by gestalt_n_pepper · · Score: 1

      That's why the good lord invented GUI scripting systems.

      --
      Please do not read this sig. Thank you.
    2. Re:makes COBOL look like a paradise by Nerdfest · · Score: 1

      If you plan on testing something more than once you're probably wasting your time if you're not automating it. It's wasteful, unreliable, and makes it very expensive in time and money to release new versions, or even patches for old ones.

    3. Re:makes COBOL look like a paradise by Brian+Feldman · · Score: 1

      I'm sure there are also testers that think development is like this, a big inevitable slog. You are both wrong.

      --
      Brian Fundakowski Feldman
    4. Re:makes COBOL look like a paradise by spiffmastercow · · Score: 1

      If you plan on testing something more than once you're probably wasting your time if you're not automating it. It's wasteful, unreliable, and makes it very expensive in time and money to release new versions, or even patches for old ones.

      We automate what we can, but there's quite a few things that aren't well suited to automation. A big problem for us is the various display issues with different browsers, or bugs in our stylesheets. That's not something you can automate easily.

  15. Are you Sure you are a Software Engineer? by wwbbs · · Score: 3, Informative

    I've never heard of Software Engineer that did not now what a Software Test Engineer does. Perhaps User Acceptance Training? Your the middle man that takes requirements from client and makes sure that what the Developers produce works within the framework the client provided. Generally you create mock ups and run through the data until all the results and the interface are what the client expects.

    1. Re:Are you Sure you are a Software Engineer? by arkane1234 · · Score: 1

      I was thinking the same thing.. it's like an auto mechanic taking the job of a salesman, and wondering if someone could give him tips on how to show someone whats under the hood...

      --
      -- This space for lease, low setup fee, inquire within!
    2. Re:Are you Sure you are a Software Engineer? by wisnoskij · · Score: 1

      Your right, you cannot become a SE in any worthwhile college without a course or two mentioning testing and specifically the job of Software Test Engineer.
      That is stuff they start teaching in SE 101.

      --
      Troll is not a replacement for I disagree.
    3. Re:Are you Sure you are a Software Engineer? by Anonymous Coward · · Score: 0

      I am sure that graduated from a state college CS or an IT mill...

    4. Re:Are you Sure you are a Software Engineer? by Anonymous Coward · · Score: 0

      Exactly. A real developer tests his own stuff first. QA merely should exist to rubber stamp it, unless the developer was sub-par or lazy. Testers are however useful for regression testing. To tell a developer that he doesn't know testing is or ought to be ridiculous.

  16. Pretty wide berth of possibilities here. by Lashat · · Score: 4, Informative

    Anything from glorified mouse-clicker and result recorder on up to programming test cases and developing an automation framework.

    The line blurs depending on WHO you work for and WHAT you work on.

    My best suggestion is to ask the person offering the job what they have in mind for someone of your skillset.

    --
    For every benefit you receive a tax is levied. - Ralph Waldo Emerson
    1. Re:Pretty wide berth of possibilities here. by jtara · · Score: 1

      Best answer so far!

      I once did a contract job for Conexant, devloping software to acquire and stuff test results into a database, format reports, etc. (for Docsis cable model qualification). Now I wish I'd never put that on my resume, because I get calls for "software test" all the time.

      At Sony I got to see game testing. Now THAT was a three-ring circus! Signs posted about no sleeping in the halls, and no hats or sunglasses... Some of that testing actually is just playing unreleased games and recording your reactions to the game play.

      I'm pretty good at "monkey testing" (pounding on a keyboard to try to make the software break) but I find writing test plans and test cases tedious. I've actually done monkey testing, and there are cases where it's appropriate.

      Rails programmers, of course, all write their own tests. (Riiiiiiiiiight!)

      There really is no way to know just what the term means, because it applies to such a wide variety of activities.

    2. Re:Pretty wide berth of possibilities here. by Anonymous Coward · · Score: 0

      jtara - you know you can always update your resume to eliminate the word 'test'. Sure, there are recruiters who will still have the 'test' resume, but you'll eliminate any new ones from starting.

      Edit that linked-in profile!

  17. Some developers appreciate their QA people by perpenso · · Score: 5, Insightful

    telling the developer he's right about everything and the product is never broken, or the tester will get a tongue lashing.

    As a developer who was fortunate enough to have an internal QA department I can say that your opinion is not universal. Hell, myself and fellow developers were annoyed when our QA people were moved to an adjacent building. We preferred having them one floor away in the same building so that we could more easily walk over to their cube to see what they see. Of course our QA people were trained, part of the company not contractors, etc.

    1. Re:Some developers appreciate their QA people by stanlyb · · Score: 2

      Seconded. If i have to choose between having a manager and QA team.......i would not even try to think.

    2. Re:Some developers appreciate their QA people by Dastardly · · Score: 4, Insightful

      I am a developer and I tell my testers to consider me to be evil, lazy, and malicious. They must assume I am actively trying to fool them into thinking the application is working even if it is not with the minimum amount of work possible. That generally gets them to find the defects.

    3. Re:Some developers appreciate their QA people by dotrobert · · Score: 5, Insightful

      I'm a QA engineer and I *do* consider the app developers to be evil, lazy and malicious. Well, not really, I just agree that I should assume so for testing purposes since they are humans. Also, in response to the parent comment, I'm REALLY glad that we work in parallel and directly with app developers. It gives them *and* us tremendous advantage.

    4. Re:Some developers appreciate their QA people by rickb928 · · Score: 1

      My QA tester was a contractor, and very good indeed. Among other things, he was totally invested in the process of delivering a great product. Contractor or not.

      And he was let go, as we are making QA and UAT the developer's in-house responsibility. Don't bother to tell me how lousy an idea this is, management has their reasons, without consultation. We would normally predict failure, but it turns our they are releasing a beta of an entirely new product to replace this failed product within 2 months of the expected UAT completion. That's clearly a nasty ploy to escape the steaming pile that they have been making for us for 7 years now.

      Don't ask. I can't tell you more anyways. It's just pus.

      --
      deleting the extra space after periods so i can stay relevant, yeah.
    5. Re:Some developers appreciate their QA people by gangien · · Score: 1

      As a developer my OP was more of a joke about my dislike of the arrogance of developers in general. and what seems to be all to often the talking down to the testers.

    6. Re:Some developers appreciate their QA people by greg1104 · · Score: 1

      I tell them I'm full of laziness, impatience, and hubris. And it's all true.

    7. Re:Some developers appreciate their QA people by Anonymous Coward · · Score: 0

      Lol...Really?
      As a developer you thought you would have a pop at yourself?
      Wow! You have some issues there ;)

    8. Re:Some developers appreciate their QA people by Anonymous Coward · · Score: 0

      Is it considered talking down when the QA team has people on it that log bugs for my application when their computers have viruses and attempt to redirect internal pages randomly to "coolwebsearch" but is blocked by the company proxy/filtering software

    9. Re:Some developers appreciate their QA people by Creepy · · Score: 1

      As both a QA person (professionally) and a developer (OSS mostly, though I do systems engineering and automation scripting for my job), I find the job of programming to make something work. I find the job of QA as do everything I can possibly do to break the code I'm given. It is a bit different mentality - one I follow the happy path, and the other I often follow deep, dark roads. For instance, doing some access control list testing I may have some very convoluted access list with 30+ rules, whereas the developer only has 3-4 rules (and in fact, just did that and it breaks - badly).

      As for seeking a job, I'd be curious what methodology is used - I started as a waterfall and was hired as an automation developer, but I got moved to manual testing when those jobs went to India (and got very, very close to being laid off - everyone below me got cut). I worked full time waterfall manual testing for 4 years (with various QA methodologies, most of them forced by ISO and other standardizations) and moved to an Agile testing team, which is much different - often I help developers code in the beginning and they help me test at the end (and we have built in automation).

    10. Re:Some developers appreciate their QA people by Anguirel · · Score: 1

      As long as you don't QA your own code, and they don't QA their own code, that can work out ok in an Agile environment. I've found that you lose a bit of the objectivity and outsider perspective that aids in QA work when you have a more direct hand in content creation, and in particular it's difficult to QA your own work thoroughly (you'll have already considered how you'd break it, and will have those cases covered). That said, I really enjoyed having a direct line of input in the planning stages of development to ensure testability of components is considered (e.g. build me a tool if it'll be nearly impossible to test manually - particularly of use when reproducing issues in systems that have some pseudo-random function in the middle), and to do some "paper-debugging" to catch defects in design before any code gets written at all.

      --
      ~Anguirel (lit. Living Star-Iron)
      QA: The art of telling someone that their baby is ugly without getting punched.
  18. QA by khellendros1984 · · Score: 1

    We call them "Quality Assurance Engineers" (QA). Ours talk to the software engineers to build applicable test cases, and then continually run the tests on the platforms they've been assigned to work on.

    Most of the job is fairly mindless, just reporting errors to the main developers as bugs so the devs can work on fixing them.

    --
    It is pitch black. You are likely to be eaten by a grue.
  19. a lot recruiters talk out of there ass / have no i by Joe_Dragon · · Score: 2, Insightful

    a lot recruiters talk out of there ass / have no idea about job some times there is not even a real job there.

  20. It is not well defined. by stanlyb · · Score: 1

    The real tester should have some developers skills and:
    1.Run predefined scripts.
    2.Follow predefined scenarios (in case it is not possible to use scripts)
    3.Try to "crash" the program, and document it, i.e. prove it that it is repeatable.
    4.Being able to read the source code and even correct it, if the changes are insignificant.
    5.Actually, you could say that the tester is "juniour software developer" who for one or another reason cannot move to the next level.
    ...........
    The reality is that nowadays you have to do only "1" and "2" to be considered a tester. Good luck.

  21. Testing is applied epistemology. by gestalt_n_pepper · · Score: 1

    You have software with expected behaviors. First you verify that behaviors occur. If they don't, you have a fail. You formulate a theory as to what might cause the fail and you test to see if you can reproduce it. If you can consistently create the fail, you report it to development, who may fix it if it's severe enough. It's somewhat analogous to scientific method, albeit writ small.

    That's the box top explanation. In practice, of course, it's *much* more complicated.

    --
    Please do not read this sig. Thank you.
  22. YMMV by alesplin · · Score: 1

    Wow. Sounds like some test engineers out there with sucky jobs.

    My last job was as a development engineer. We tested our own code while in development, then turned it over (along with any relevant and useful test cases) to the QA team.

    I recently took a position as a Software Test Engineer at a different company. Our philosophy here is that we own the quality of the product. Granted, it takes a little more creativity to write tests to break an OS than an application, but my job here is quite challenging, with very little of the "run script, make checkmark" drudgery so many others seem to endure.

    To the OP: ask lots of questions about what you'll be expected to test and how. Nobody likes drudgery, and being given a certain amount of leeway and ownership makes the job much better.

  23. you are the person to blame by cod3r_ · · Score: 0

    Gota blame someone.. easy to get a tester and just blame them for not catching something.

  24. I am a software tester. by CannonballHead · · Score: 4, Informative

    I'm a software tester for data moving products.

    While a lot of testing is repetitive, the repetitive stuff can often be automated. For example, there's functionality that exists in every release ... so automating those testcases such that they are easy to run hands-off is good. This automation is often something the tester will be doing.

    For new features, what typically happens in my group is that the developers will explain how they implemented a given feature and how it should work. We are responsible for testing this feature - with any tips that dev gives us - as well as trying to put it through various scenarios that cause it to break.

    In my product's line, for example, we do clean reboot and power cycle/crash testing. What happens to our product when the power goes out? What happens to the data that was being moved? Does it recover? That sort of thing. This requires thought - and, contrary to some comments here, since we all want our business to SUCCEED and make money, which means customers need to be happy with the product, development is happy when we find errors or scenarios that they did not plan for in their coding. The earlier we find them, the better.

    Day to day activities? Well, I'd break it into two major sections.

    Planning

    The test group, in my case, is responsible for reading through the planned product's features and changes and coming up with a test plan accordingly. This is then reviewed by developers, the test group, etc. Usually, during this time period is when a lot of work on automating previously-manual testcases can be done, in preparation for the next release. Also, planning for what testing environments will need to be setup and starting to set them up... it depends how big your group is I guess. Since mine is relatively small, all the testers help out with setting up various machines for testing, too.

    Testing

    During testing, the test plan is executed. Day to day activities include test environment setup, manual testing, automated testing, discussing potential issues with developers and opening work requests (WRs) if it's decided that it is really an issue and not a weird environmental problem etc.

    1. Re:I am a software tester. by Anonymous Coward · · Score: 0

      As a software engineer, it sounds like you do exactly the same thing as the testers at my company do, and it sounds like you're in the same industry, too.

      Except we call them Change Requests (CRs) and not WRs.

  25. Need more input by K.+S.+Kyosuke · · Score: 1

    "Can anyone shed light on what a software test engineer's day to day responsibilities are?"

    Making yourself very unpopular among your fellow developers! :]

    Seriously, that really depends on what exactly is being tested and how the testing is organized. I've seen people with the description of "tester" sitting in a single room doing totally different things. Have some more input data?

    (But one virtually bulletproof hint is: If you don't know Python, learn it. It might save your life if you ever decide to test anything.)

    --
    Ezekiel 23:20
  26. The epitome of a tester by AliasMarlowe · · Score: 3, Funny

    Any tips?

    Study the techniques of Bob the Bastard in testing hardware. Apply analogous techniques to software. Software developers will fear and respect you, and tremble at the mention of your name.

    --
    Those who can make you believe absurdities can make you commit atrocities. - Voltaire
    1. Re:The epitome of a tester by Anonymous Coward · · Score: 3, Funny

      Any tips?

      Yes. Review the Anonymous Coward posts in this thread. Many of them were written by software test professionals who don't want to speak frankly where their employers or others can associate it with their name. Many AC comments here are very good.

  27. Variety Pack! by Isarian · · Score: 4, Informative

    As a software tester at my job, my work includes:

    - Building test scripts for each application (I use Google Docs spreadsheets) that we develop
    - Perform feature-specific or fix-specific regular testing of applications during development cycle
    - Argue with developers over severity of bugs
    - Coordinate full-scale software testing before each release
    - Update documentation when developers fail to do so
    - Argue with developers over importance of different features in terms of development time

    A big part of what makes or breaks you as a software developer is the willingness to go off the beaten path. For example, when I test, this is what I consider:

    - Hmm, that's an interesting text field, and it's meant for an IP address. I wonder what happens if I type "abc::1234**!!whymeeee" into it (input validation)
    - This is a resizeable dialog - if I resize it absurdly in vertical/horizontal, do elements in the dialog scale correctly?
    - Here's a text area that's meant for a paragraph or two of text. If I put the Iliad into it, does the text run off the page? (bounds checking, text limit checking)
    - Here's a dialog that has to validate text - what are all the possible errors it could encounter, and are the error dialogs properly implemented for each? (check all error condition handling possibilities)
    - This dialog is localized into 15 languages - is the page sized/formatted correctly in all languages?
    - This program is meant to be installed to C:\Program Files\Blahcompany\Product - what if I install it to a nonstandard location?

    This will ultimately put you at odds with a lot of developers because your job, every day, is to make the assumption that they have made mistakes that you will find. I enjoy it, and find it to be a rewarding experience, but that's because I work at a company that highly values its software testers and takes QA as a serious priority. Try to get a feel for how this company treats QA, because if all they're doing is using you as the fall guy for bugs you made them aware of before a release, it'll be no good.

    1. Re:Variety Pack! by Ralph+Spoilsport · · Score: 1
      GOOD LIST! I would add that there are other aspects as well-

      There's a "horizontal" distinction in testing, by colour: Black Box, grey box, and white box.

      Black box is what the post above is doing - everything "under the hood" is not to be looked at, only the results. This is the easiest form of testing. It can be automated using scripts, if the UI's field order is stable. I like Black Box - you just get to "fuck shit up". My fave was to copy and paste the Unabomber manifesto into everything and watch the fireworks. Also, in the early stages, Black Box can have a lot of say in the design, because if the UI is crap, the black box tester will notice immediately - workflow is retarded, or there are too many clicks to a result, or similar issues. Also, Black box usualy entails running the daily build server, and doing a daily test of the build to see if it meets minimum criteria. If it doesn,t then the programmers are informed to not use that build and stick with the old one until it passes muster.

      Grey Box is in between - you're looking at the code when you can, and you're developing test scenarios for scripting engines of other systems. For example: you need to test load balancing - so you need to know where in the code stuff goes in and out and how the server takes the data, processes it, and sends it out - that takes a bit of programming - the programmer can write that for you - and then it's your job to suss out what the results mean. Also, when something breaks, you need to find where in the code it's broken. How to fix it is not your job or problem - but you need to be able to say "this is where it divides by zero and causes the computer to puke blood".

      White Box is where you're managing low level testing of each software component (after the programmer runs it to see if it works at all) and if it doesn't work, you need to be able to flag it properly and send it back saying "it broke here because" kind of stuff. I find white box even more stressful and difficult than actual programming. You have to be a "programmer's programmer". Pain inth e ass, and rarely worth the money or hassle.

      I like doing black box testing. It's a blast. I love to just fuck shit up. It's a trip. It's a bit like doing detective work. Grey Box is more intense, but can also be fun, dpending on the app you're testing and the team you're with. IF they hired by the "No Asshole Rule" then grey box can be rewarding - it pays better than black box and it often includes a lot of black box.

      That's how it was when I left software dev in 2005. From what I gather it hasn't changed that much - it's more automated than before, but only after the app is mature enough to withstand it.

      --
      Shoes for Industry. Shoes for the Dead.
    2. Re:Variety Pack! by Anonymous Coward · · Score: 1

      This is pretty much spot on. I'd include:

      • Automated testing suites and analysis of functional test results.
      • Planning, executing, and reporting of performance and load tests.
      • Regulatory compliance testing and documentation. Tell them you are a Verification and Validation Engineer and your pay will be double :)
      • Bug investigation and reporting on categorization/repeatability/severity.
      • Risk/hazard analysis and mitigation for legal compliance and regulatory compliance.
    3. Re:Variety Pack! by imgunby · · Score: 1

      I'd like to add a few more examples of what we think when looking at a feature/web page:

      - Here's a required field, if I post the form and omit the name-value pairs, does the application reject the call?
      - Here's a date field, does it reject dates too far in the past or future (01/01/10000) and reject/convert dates that don't exist (02/29/2000 or 03/54/2012)
      - Here's an input field that holds text that will be shown on other pages, what happens if I put HTML in there?
      - Here's an input field, will it correctly handle new name-value pairs (&this=that&)?
      - Here's a signin form, if I enter a bad username or password, will it provide hints that can be used to mine usernames?
      - Here's a forgot password form, can it be used to mine valid email addresses?

      But people also need to keep in mind that we're *assurance* and not *insurance*. While we can catch a lot of bugs before the end-users see them, it really is up to the developers to produce quality code in the first place. There are few things harder, more expensive, and time consuming than trying to test quality into code.

    4. Re:Variety Pack! by tlhIngan · · Score: 1

      - Here's a dialog that has to validate text - what are all the possible errors it could encounter, and are the error dialogs properly implemented for each? (check all error condition handling possibilities)

      Don't forget in this case to try Unicode text and make sure it comes out or errors out appropriately.

      This is especially important if one of the tasks is to adapt the information for another system which may be Unicode-unaware - how does the output come out on the other end, and does it still work? Or does the illegal Unicode input make it through (even if you use proper validation frameworks, they may guarantee the output is valid Unicode and not say, ASCII).

      Especially try the bidi override characters to see if your output suddenly goes weird.

    5. Re:Variety Pack! by ESD · · Score: 1

      Yup, that's a good list... some more things:

      - I assume GP meant a test plan instead of a test script: a test script is closer to automating (push button x, check value y, ...); a test plan describes what you are going to test, what you have tested and what the results were, usually starting as a very rough overview of the feature, how it works, which area should be tested in which way, which sources you used to determine what counts as 'correct behavior'... As you work on the feature, you start refining the test plan, adding tests for issues you didn't think about before, areas that turned out to be involved which you initially didn't see, dropping tests that turned out to be unnecessary, ...
      - Investigating (buying of/errors with) test tools (in my field you need some pretty high-end devices to be able to simulate large customer environments and a lot of these devices tend to be limited or broken in very unexpected ways.)
      - Testing whether the product will hold under repetitive use (endurance)
      - Testing whether the product will hold under high stress (scaling/performance)
      - Testing whether the product works well within the environment for which it is intended (lots of software needs to interact with other hardware or software, but you usually don't have control over those other products)
      - Testing whether the product is internally consistent and if your feature works well with other features in the same product (on a large project, this aspect of testing tends to explode as the number of features increases. That is when you'll need your testing and product experience to quickly filter out the risky combinations.) If the product is intended to be upgradeable: testing whether for instance data files stay usable between versions.
      - For highly available products: check that all aspects of your feature keep working if it has to switch to the backup system
      - Testing whether the product is secure
      - Discussing (I wouldn't call it arguing) with developers and product management whether issues you found are actually bugs and if the feature as designed (or sometimes even as requested!) will even solve the customer's problem. (You can make a perfectly functioning screwdriver in request for a 'device for mounting fastening materials), but if the customer was looking for something to drive in a nail, chances are it won't sell to that customer.)
      - Regularly checking the results of you automated tests and seeing if a failure is due to an intended software change or if it's a regression bug.
      - Senior testers where I work are also regularly involved in feature design together with product management and development.
      - Pushing the product to its limits (memory exhaustion handling, starvation from lack of other resources, timing issues, ...) and checking that resources are properly freed (nowadays the runtime environment usually takes care of this, but not always; some products still need very low-level coding where you cannot spare the cycles to do those tests at runtime.)
      - Working with high-level support to determine the cause of issues coming in from the field. If you have a good support group, whatever comes to the highest level there is something that needs test and development expertise to get solved. (Our highest level of support actually mostly consists of former test engineers.)

      In response to the black/grey/white box testing (I actually prefer 'transparent' instead of white; a white box is still opaque): you'll usually work somewhere in between, starting from black box and going deeper if you get a bad feeling about the code you are testing (or if you need to give the developer a very detailed report about what's going wrong.) Full transparent-box testing is more akin to unit testing, which is the developer's responsibility (at least where I work).

      If you are at odds with developers over the issues you find, somethin

  28. Testing != button pushing by Anonymous Coward · · Score: 0

    It can vary wildly. I work for a very large software org, and our test team is so varied in skill set and role that it would be hard to quantify it succinctly. Everything from scalability testers, who manage the scaling of our products to 1000s of instances and servers, and 100000s users... to interop testers who create realistic wide scale deployments based on customer feedback and test product interop... we have formalised functional testing to break/test/fix software, and we have automation engineers who create repeatable, structured tests which can run many times per day as changes are made to the codebase. Consequently, our test teams are some of the best paid engineers going - and can easily progress into senior management and director roles within the wider development team.

  29. Suicide by 19thNervousBreakdown · · Score: 1

    hth

    --
    <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
    1. Re:Suicide by Anonymous Coward · · Score: 0

      You are in the wrong forum for this type of advice.

    2. Re:Suicide by Anonymous Coward · · Score: 0

      the stupid translation there is all screwed up.

      The names are Elizabeth Petsilia and Anastasia Koroleva.

  30. Testing is as testing does. by Anonymous Coward · · Score: 0

    Testing software can mean different things. It depends on the sponsor of the testing. If you are testing on behalf of a customer, it is more evaluation oriented: is it good enough for our needs. If you are testing on behalf of a development sponsor who's intent is to sell it, they may want a more rigorous process that can include automated testing (writing code to exercise the application and demonostrate fitness), bug hunting (including corner cases, user simulations, etc), stress and load testing (make a bunch of worker threads and pound on something, be it library (e.g. a .dll) or a service (like db or web site). You may also get involved in ways you can help improve the code's testability, which is to examine the source and find ways to structure, configure, and expose it in ways that let you do more specific testings.

    You might be testing in a small office, doing whatever the program manager wants. That is often the case. You may write test plans and test cases. You almost certainly will discover, write, and resolve bug reports and report that to your sponsor.

  31. Simple. by dalmor · · Score: 1

    Obvious statements are obvious...come on guys, sure a software tester can just simply follow a checklist. Can't say what a screener is looking for(i.e. scripted responses), but as an interviewer I would look for...

    1) Passion to understand things and constantly digging deeper
    2) Natural distrust of quality of code
    3) Passion for security as well(it is another form of bugs)
    4) Someone who is willing to stick to their guns(can believe 100% they are right) as much as willing to back down(not 100% ego).

    Following scripts or going down features...anyone can do that, but if you don't have at least some of the drive as listed above, you will get burned out fast.

  32. It could be something good ... by perpenso · · Score: 1

    It could be something good. At a past employer we had software engineers who developed the product, six figure telecommunications boxes, and software engineers who were part of the QA team. Those who were part of the QA team wrote code to test sub assemblies during manufacturing, to test fully assembled boxes before delivery to customers, regression tests to exercise the development team's software in simulated environments (i.e. testing development versions of code before approving the code for release), etc.

  33. It's all about Agile! by Anonymous Coward · · Score: 0

    There is a book called Agile Testing - read that. Also, read a free pdf called Scrum and XP From the Trenches. After that, learn about the paradigms of different testing: A/B Testing, Automation, and the standards around how test cases are come up with.

  34. Automation or manual testing? by chuckfirment · · Score: 5, Informative

    OP is correct - the job of a software tester is to try to break the software. I've enjoyed working in software quality assurance (SQA) for over a dozen years now. I get paid to break things all day, and when I do break it - I don't have to fix it.

    SQA is very different depending on where you go and what you're testing.

    Web Applications - you'll want programming experience so you can write flexible automated scripts. You can test manually for every supported browser/OS combination, but it's tedious.
    Desktop Applications - Sometimes manual testing is enough. If the software is large, you'll likely want to automate.

    Large companies that move fast will want automation. Small companies that move fast will want automation, but might not realize it. You can get away with manual testing at small slow companies.

    You don't need automation skills to be a software tester. You do if you want to become a software tester with a high income.

    1. Re:Automation or manual testing? by Anonymous Coward · · Score: 0

      But you need to test to verify and test to break.

      Test to verify: making sure the software does what the design documents say it should. The test plan/test suite test cases should be written around that.

      Test to break: use outside the boundary conditions, invalid input, files too large, corrupted files, etc.

      Hate to say it, but if one only tests to break (for example entering -1 in a numeric field that was intended to accept positive numbers) and doesn't test for the correct outcome (for example, entering 5 in the numeric field and verifying the result is correct) then the software has only been tested halfway.

      Also, no one has mentioned some of the testing milestones in a formal testing environment:

      * Smoke test (features intended to be tested are testable or they fail smoke test... too many failures the build is bad and not testable).

      * Module testing--in a multimodule software environment each part gets tested alone.

      * Integration testing: the modules are tested together as a complete software package.

      * Functionality testing: ensuring the software behaves as the documents state it should.

      * Stress, Errors, Load testing--testing the application under stress (e.g. low memory), testing the robustness of how it handles errors (does it just crash or display a meaningful error message), in a server environment testing conditions such as many users submitting data to the same field all at once, and so on... there are lots of other possibilities I just mentioned a very small number.

      * Qualification, release candidate testing--the final testing phase to qualify the software before it is released.

      And of course, there are phases in between those, depending on the company and the project.

  35. Depends on the company and the software package. by Vandilzer · · Score: 2

    If they have a good regression system setup, it will mean you will write a test case once and it will automatically run for you, and you are good, you will automate all of this is it is not already done. You will only go back to look at these if something breaks.

    You will also likely get the specifications for a new component and a script and be expect to try all possibilities, the better once know how to program and thus do thing that they know we likely miss. Bad testers are a dime a dozen, good tester are golden.

    Generally think about it like being the first customer and having to learn a new components all the time. A person who's job it is to figure out all the ways to use something within the rules given (not that much different then hacking, actually if you think about it hackers are just really good testers, they win when they find a bug).

    Testers are also involved often in customer deployments and trials here where I work because they have the most experience using new software. Developers know how to write thing, testers know how to use it (Big difference).

    In the end, you will make what you will of it. Go talk with them, all you have to lose is a bit of time.

    Best of luck,

    ---
    I'm a programmer not a English major, if you have a problem with my writing, write a better grammar and spell checker, then we can talk.

  36. Being dumb by rsilvergun · · Score: 1

    Seriously. The job of most software testers is try the software and then complain it's too hard to use so the UI guys can tweak it down to a 3rd grade level or so. I guess there's regression testing too.

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
  37. Golden Rule of Testing. by Modern · · Score: 2

    Those who can, do. Those that can't, teach or QA.

    While not always true, you have probably heard the above statement many times. Testers in many cases are responsible for bringing the whole project together. Other departments might make portions, a graphics/animation department, software programers, maybe math groups or database, however you are the one who has to test all the components together. For all this responsibility you get the least amount of pay, and are expected to know everything about all the parts and pieces. Blame QA is the common cry heard among companies, when something gets out buggy. The job itself could be ungodly script running repetition, or pretty cool new project stuff that has not been automated and the bleeding edge of the companies new products(with ungodly script repetition to follow later).

    It tends to be a pretty thankless job, but in some cases it could be a good way to get into the company and use the job as a stepping stone for a better paid, less responsible, software developer (or otherwise) job at that company.

  38. Developers often make poor testers by perpenso · · Score: 5, Informative

    Taking builk testing responsibilities off developers so they can work on more important stuff.

    Not quite. Developers often make poor testers. Software tends to get debugged and tuned for the way developers use the software, which is not necessarily how others (in particular customers) will use the software. How many developers have written a piece of code, tested it conscientiously themselves, presented it to others expecting no problems, and watched these other folks find serious bugs within minutes?

    Having dedicated testers between developers and customers yields better products, even when the developers take testing seriously.

    1. Re:Developers often make poor testers by Firehed · · Score: 4, Informative

      Indeed. Some stuff happens from weird ways that users try to do things that developers simply wouldn't think to test. Case in point, bug I found today: someone bought a six-month subscription by entering 0.5 as the quantity on a 1-year subscription. Our code wasn't expecting non-integer quantities, but happily did the math to get the line-item subtotal. When the data was stored, the 0.5 quantity went into an integer column, which the database cast to an integer by rounding down and suddenly qty * price != subtotal. It was caught and quickly fixed by a data integrity check, but a QA/dedicated testing person that thinks of weird user interactions like that could have prevented it from going out to production in the first place.

      Now we have one more thing added into unit tests so it won't happen in the future, but there you go. The code was not untested, it was just used in an unpredictable way.

      --
      How are sites slashdotted when nobody reads TFAs?
    2. Re:Developers often make poor testers by networkBoy · · Score: 4, Informative

      Yup.
      I write test software, specifically software that acts on firmware. The majority of our devs do unit tests, but once the whole thing is assembled together and used as a system interactions show up that are not ideal.
      You need some form of QA department between Devs and Customers.
      As someone who is already familiar with software engineering you likely would be an ideal candidate for test engineering, because you know how software generally works, and can write meaningful bug reports.
      For an interview, if they ask you for strengths, I would focus on your development background and ability to write meaningful bug reports.
      -nB

      --
      whois gawk date unzip strip find touch finger mount join nice man top fsck grep eject more yes exit umount sleep dump
    3. Re:Developers often make poor testers by Anonymous Coward · · Score: 1

      It's the same reason authors need proofreaders. When we create something our natural inclination is to "hope for the best". That means we will unconsciously ignore small issues because we are concentrating on the "happy path". A software testers mindset is completely the opposite (or should be). They are not there to create, but to destroy. It's helpful to have that kind of mindset when testing software. You have to analyze the software and generate test cases that you think may exercise parts of the program specifically to cause problems. Things like stress testing, edge case testing, and user acceptance testing are not something that your typical programmer performs day to day and may be completely missing from her tool set.

    4. Re:Developers often make poor testers by asliarun · · Score: 5, Informative

      Taking builk testing responsibilities off developers so they can work on more important stuff.

      Not quite. Developers often make poor testers. Software tends to get debugged and tuned for the way developers use the software, which is not necessarily how others (in particular customers) will use the software. How many developers have written a piece of code, tested it conscientiously themselves, presented it to others expecting no problems, and watched these other folks find serious bugs within minutes?

      Having dedicated testers between developers and customers yields better products, even when the developers take testing seriously.

      Actually, that is not necessarily true. I get what you are trying to say, but you seem to gloss over the differences between QA, manual tester, and what the OP was referring to: Software Test Engineer.

      To highlight some of the differences:

      QA is responsible for "assuring quality". This is different from QC which is "checking quality". More often than not, a good QA is a process expert, with the assumption being that good processes ensure good quality. Their goal is to avoid the problem, not to detect the problem or fix the problem. Where the line gets blurred is the fact that a QA often performs the role of a manual tester. This usually depends on the size of the team.

      Manual testing is usually QC - understanding what to test, how to test, and going ahead and testing it. They start off by translating the requirement specification (or user stories if you are agile) into a suite of test cases, add other test cases that might be non-functional or regression related, and finally test the system manually every time before it is released to customers.

      Generally (although not always true), a "test engineer" is more of a developer than a tester. They are usually tasked to develop test frameworks using third party tools or even creating their own framework. The former usually involves scripting and lightweight coding and the latter can involve full blown coding. They can be developing a test framework for executing and managing unit tests and functional tests (often white box), and integration tests, regression tests, and performance tests (often black box). While many project teams skimp on devoting this much engineering to testing, it can give huge returns, perhaps even better returns than development can after a certain point.

      To be fair, the OP has not mentioned anything else beyond "software test engineer" so the role might very well be manual testing. However, the word "engineer" leads me to believe it is more of a automation role. Having said this, companies often embellish their titles with "engineer" to make it sounds weighty.

    5. Re:Developers often make poor testers by Javagator · · Score: 4, Interesting
      Developers often make poor testers

      Sometimes professional testers make poor testers. I worked on a project with a professional tester who did her job conscientiously, wrote test procedures and methodically exercised the software. We also hired some college kids during the summer and assigned them to test the software. They just tried things. The kids found a lot more bugs than the tester.

    6. Re:Developers often make poor testers by Anonymous Coward · · Score: 2, Funny

      Input testing. I imagine most testers have a love/hate relationship with it. It can be one of the most boring forms of testing as you throw in endless permutations of seemingly random data. But it also where you're most likely to discover the most satisfying kinds of bugs; ones that don't crash the software, but instead trick it into following the most absurd scenarios. Discovering that you can enter scientific notation in a field limited to 10 characters and create loans that cost more than the entire net worth of planet Earth? Oh yeah, that's the good stuff. (Bonus points for the developers though...no overflows!)

    7. Re:Developers often make poor testers by Slavik81 · · Score: 1

      What happens if they enter 'inf' or 'nan' as the quantity?

    8. Re:Developers often make poor testers by CokoBWare · · Score: 2

      A1 comment. networkBoy knows what he's talking about. I transitioned from software developer to test developer, and it's a different animal, but highly rewarding. Knowing how software works is a boon. You know how to write better bug/issue reports.

      Test planning and devising scripts is big where I'm at. I do far more documentation and planning WHAT we need to do than looking at code. I do participate in informal and formal software reviews though to keep my mind fresh with code.

    9. Re:Developers often make poor testers by mikestew · · Score: 2

      One of your mistakes is rating by bug count. Another is thinking that a tester's job is to find bugs. What you ignore is the quality of the bugs your professional found. I'm willing to bet she found bugs the college kids would have never found. She also verified that the software does what it says on the tin. If she's spending her days filing bugs on BS defects like typos and "this button doesn't do anything", you're wasting money and boring her to death with crappy code.

      Finally, if some random college kids found a bunch of bugs by "just trying things", I'd consider taking a look at your development process. Most bugs should be harder to find than that, with the caveat that I have no idea what kind of a system you're talking about.

    10. Re:Developers often make poor testers by wisnoskij · · Score: 1

      But if your job is to test then you are not going to just fiddle with the program for a while and then give it a pass.
      As a professional tester you come up with boundary cases and test rigorously.
      And it is not necessarily on a gui level.

      --
      Troll is not a replacement for I disagree.
    11. Re:Developers often make poor testers by networkBoy · · Score: 4, Informative

      I maintain the test infrastructure kernel. It's a constant battle to keep up with dev changes, they change a struct, I change the struct, for the most part they are well linked (we import their headers), but there are some things that simply cascade downstream bad enough to prevent us from even compiling, it's a niche job, half maintenance coder, half lone cowboy. I really like it, but most people don't last on my team. We have three devs that have been at this one job for more than 3 years. Everyone else either goes to just test development (our customers, and sounds like where you are), the rest go to the dev side of house (you can always tell which ones are going to leave outright because they bitch about the maintenance coding).

      One word of advice to new test devs out there: Parent post is right, most test development is spent on documentation, a full 3/4 of your coding time is likely to be some form of maintenance coding, deal with it well and you will not hurt for money or employment. Bitch about it and your co-workers will not like you all that much, which makes for very long working days.
      -nB

      --
      whois gawk date unzip strip find touch finger mount join nice man top fsck grep eject more yes exit umount sleep dump
    12. Re:Developers often make poor testers by midicase · · Score: 1

      We can spend months developing a new feature on one our embedded systems. Once we are done, one of our company owners will have it broken in under 5 minutes. We call it the "Kevin Bug", aptly named after said owner.

      Sometimes we toss an early and intentionally broken feature at him, just to get the Kevin Bug out of the way since that tends to be most stressful stage of the feature cycle.

    13. Re:Developers often make poor testers by Anonymous Coward · · Score: 0

      or MAX_INT + 1
      or 0
      or -0

    14. Re:Developers often make poor testers by uncqual · · Score: 3, Insightful

      It's the same reason authors need proofreaders.

      Similar, but there's a big difference here. The proofreader can catch every actual error so a sloppy writer can be saved by a proofreader. A tester can't test every case (assuming that they are not going through the code line by line, but that's really a development job) so a tester can't save a sloppy programmer, just mitigate the damage they do. Yes, testing is VERY important, but you can't test quality into a software product - you have to develop it in.

      Things like stress testing, edge case testing, and user acceptance testing are not something that your typical programmer performs day to day and may be completely missing from her tool set.

      Stress testing and edge case testing are exactly the sort of testing I expect software developers to do some of and be good at. They should know what the tricky bits are and know how to bend the system to make things fail in minutes and hours instead of months of testing. Without that intimate knowledge of the internals (again, testers could have that, but it's very rare), a lot of stress testing just keeps testing the same thing over and over - not very useful.

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
    15. Re:Developers often make poor testers by M1FCJ · · Score: 1

      Untrained testers will behave like monkeys with typewriters and sometimes find bugs. The quality of the bugs will be questionable. Professional tester will actually consider what can go wrong (like using boundary value analysis) and catch the issues where they are harder to track down. Also the tester will document the process (use case, testing scenario, test results) in an accountable manner and can save you from being sued at one point.

    16. Re:Developers often make poor testers by David+Gerard · · Score: 2

      Testers must have cackled with glee (and C++ developers cried) when fuzz testing was invented.

      --
      http://rocknerd.co.uk
    17. Re:Developers often make poor testers by BrokenHalo · · Score: 1

      Similar, but there's a big difference here...

      Another difference is that for the most part, unless both author and reader are very fortunate, proofreaders rarely exist any more, unless they are willing to do the job for no pay. Few publishers are willing to pay for proofreaders or editors, which is at least partly why so much poor prose makes it into print.

      (Incidentally, I quite enjoy proofreading, and I consider myself to be good at it. But my only recompense is the occasional bottle of single-malt Scotch...)

    18. Re:Developers often make poor testers by msobkow · · Score: 2

      Developers shouldn't test their own code, but some of them are viciously effective at testing other people's code. For example, I knew a fellow who would regularly do perverse things during testing like pasting GIFs and JPEGs into text fields, trying to open binaries instead of XML files, and other such perverse things that regular users do by accident all the time. Very, very few people produced application code that this man couldn't break.

      But he had a bit of history in testing. When he was working for the Navy designing tests for anti-missile and anti-aircraft gun systems, he came up with a nasty little test.

      The hard-wired two Tomahawk cruise missiles together and launched them at the test ship. The guns aimed at one, then the other, trying to decide which was the bigger threat and had to be taken out first. Because a guidewire was keeping the two Tomahawks running in tandem at the same speed and distance from the ship, the gun system had a fit, spasmed the barrels back and forth for a few seconds, then gave up and put itself into "idle" mode.

      They added a random "just pick one" step to the algorithm to fix the problem.

      --
      I do not fail; I succeed at finding out what does not work.
    19. Re:Developers often make poor testers by hey! · · Score: 1

      If it's not repeatable and reproducible, is it really testing? Or is it *critique*?

      It seems to me there are two kinds of testing. On one hand there are the many variants of smoke testing ("plug it in and see if smoke comes out"). On the other hand, there is the kind of testing that involves carrying out a plan where each step has success and failure criteria that have to be checked off in order for the software to pass.

      Developers can't smoke test their own work effectively because of the human cognitive bias toward seeing the expected result. They could probably execute a well-designed test plan, although you'd still prefer someone more independent. As for designing the test plan itself, if you've ever tried to write a comprehensive test plan, it's a big, mind-numbing job.

      I believe that in an ideal world the foundation of the test plan would be laid when the system is conceived (non-functional requirements, use-cases).Naturally you'd stipulate that the acceptance test for each task in a use case be performed a representative user under representative conditions. You wouldn't have a web form designer do that test because he knows where all the necessary widgets are tucked away. And throughout the planning, design and implementation of the system, before you started to do *anything* you'd devise a test for success.

      But I happen know that in the real world that most people only start thinking about testing as the delivery date approaches -- at least until they've got burned.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    20. Re:Developers often make poor testers by crutchy · · Score: 1
    21. Re:Developers often make poor testers by crutchy · · Score: 1

      mod parent up. all true and relevant to OP

    22. Re:Developers often make poor testers by toddestan · · Score: 1

      Good idea. Forcing them to read XKCD would probably stop the users from doing that in a hurry.

    23. Re:Developers often make poor testers by Anonymous Coward · · Score: 0

      Is also important to note that the recruiter may be asking for a test engineer but in reality is asking for someone to fill *all* of the above roles. I am a test engineer and have been so for the past decade and have done all the above roles at some point in time. I've been in companies where I am the entire test and QA team to a member of a team of dozens. No matter what the recruiter may say, at some point in time a test engineer will have be a manual tester and a QA depending of the stage a project is at.

      No matter what kind of testing a developer has done in their career, its not as easy as it sounds for them to just start testing as a manual tester. Its not rocket science but it does take a bit of a methodical approach to be able to test effectively. Lee Copeland write a good book on software testing and goes through situations and what techniques apply. A former team leader once told me, "A good tester tests methodically and may find issues, a genius tester can read minds."

    24. Re:Developers often make poor testers by crutchy · · Score: 1

      its funny how often the obvious things get left behind in software development, but not quite as funny as that joke

    25. Re:Developers often make poor testers by DaveV1.0 · · Score: 1

      That the kids found more bugs than the tester reflects poorly on the design process because the design process did not properly account for test cases.
      And, it reflects poorly on the developers for not properly coding for expected input and against unexpected input.

      --
      There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
  39. Be very carefull by nrasch · · Score: 1

    I think you ought to be very careful about going into QA. At many jobs that simply means pushing buttons and running the software. You certainly won't be adding any development/code writing skills on your resume at a job like that.

    Also, they more you do something, the more companies will only want to hire you for that one thing. So, if you want to be a developer or remain a software engineer I'd think twice before filling your resume with QA positions. You'll likely only be considered for that position going forwards.

    My $0.02, and good luck with whatever direction you end up going. :)

    1. Re:Be very carefull by Anonymous Coward · · Score: 0

      You are right, nrasch

  40. Are you out of work? by Anonymous Coward · · Score: 0

    Going into QA is career suicide for a software engineer. Seriously this is a big step down.

  41. Huh? by Anonymous Coward · · Score: 0

    Wait. You're a software engineer and you don't know what a software tester does??

    1. Re:Huh? by Anonymous Coward · · Score: 0

      Which means he's perfect material for being a tester! 99% of them don't know what their job is either. Most of them think their job is just to point-and-drool.

  42. Test Engineer by chrismcb · · Score: 2

    A tester tests the code. A test engineer typically will write code to test the code. These aren't unit tests they are writing. But test scripts. Testers tend to test the finished product. They are the ones doing integration testing. If you are currently a programmer you probably will not want to be a tester.

  43. from Project Management perspective... by charlieo88 · · Score: 2

    What Does a Software Tester's Job Constitute? Well, from the perspective of Project Management for my off shore outsourced projects... NOT A DAMN THING!

  44. comic by MagicM · · Score: 1

    Everything I know about testing, I learned from The Trenches.

    Oh, and doing it myself, of course. Of course I test my code. Why? Who's asking?

  45. Re:You are going to be the one who knows the softw by LesFerg · · Score: 1

    The job of a tester is to put together a meaningful plan - understand how the software is going to correspond to the business needs and test the main logical paths as well as some optional and failure paths and find out what the software really does as opposed to what people think it should do.

    Yeah. What he said. Sure, misconceptions abound, but when the role really is "software test engineer", the job is a lot more important than just running scripts and trying to make the software break. I think this may vary vastly between employers, and in some (or most?) situations the management themselves probably don't understand what they should be asking for from their testers. The reality is destructive testing only covers a portion of the job, while to do the job well a lot of knowledge and imagination can be needed to grasp the entire scope and complexity of the software, knowing what goes on in the back-end data, what the users see and believe is going on with the particular parts of the s/w that they use, how action in one person's role effects what is seen by a user in another role - the tester needs to see the entire view which individual users may never be involved in.

    I have great respect for the testers I work with (not least because they can handle a grumpy developer without hitting me) and often prefer to go to the tester instead of the B/A for answers. Development environments may differ, but when I have a nasty bug to hunt down which requires data to be set up in multiple integrated software solutions to get just such an error to occur between them, I can't imagine what I would do without somebody there with the knowledge and patience to go thru the entire scenario to reach the point where he can say "now press that button and watch what happens".

    Sure, its still annoying when the tester comes back and tells me that little Bobby Tables just broke my database, but yeah, they do need to do the simple basics first as well I guess.

    --
    If I had a DeLorean... I would probably only drive it from time to time.
  46. One part of the job... by Anonymous Coward · · Score: 0

    I worked testing software for phones (many different Android phones mostly) for awhile and often the test instructions were "Play with it for 30 minutes and see if it breaks." And fairly often it did.

  47. BEWARE! by DontBlameCanada · · Score: 1

    Once you have a "testing" job on your resume, its pretty dang hard to get anyone looking for a coder to consider your application seriously. I've run into at least a dozen hiring managers who discard resumes for dev positions solely because the last job someone held was as a tester.

  48. more thorough by Anonymous Coward · · Score: 0

    Having dedicated testers doesn't relieve programmers of their own testing duties. A programmer writes tests for the data they expect, and programmes for that data. A tester writes tests involving all kinds of data. He's expected to be pretty well trained on security issues and will get to know how the program will react to different circumstances as well as or better than the programmers. He works closely with software architects and others in translating storyboardsinto automated tests too.

  49. It's just what it says it is.... by NotSanguine · · Score: 2

    Software test engineer was my first technology job, so I was pretty junior. Your responsibilities might be more extensive if you have more experience. That said, my responsibilities included:
    Overseeing the build process
    Maintain build scripts/makefiles, manage software repositories
    Grabbing the latest code from all modules and building from source
    If the software didn't build properly, identify the source of the problem and (if I could) fix it, otherwise provide feedback to the responsible developer

    Integration testing
    Create and maintain test environments and scripts
    Once the software was built, test major functionality to ensure that new code didn't break anything
    Test whatever functions had been modified (new features, bug fixes, etc.)
    Debug any issues and (if I could) fix them, otherwise provide feedback to the responsible developer(s).

    Troubleshooting
    Reproduce bugs that had been escalated to the dev team
    Debug the issue and identify the source
    Fix the bug (if I could), otherwise provide feedback to the responsible developer(s).

    Software Releases
    Build release versions (Beta and production) for distribution to customers and manufacturing
    Regression test release versions

    Other Stuff
    Create test reports
    manage bug tracking
    Set up dev environments for the developers
    Design and set up test beds for testing and troubleshooting

    Developers were responsible for unit testing their code before releasing it to me for Integration. That may or may not be part of the job you're looking at.

    HTHAL

    --
    No, no, you're not thinking; you're just being logical. --Niels Bohr
    1. Re:It's just what it says it is.... by Anonymous Coward · · Score: 0

      Reader's Digest Condensed Version: All the shit the developers didn't want to do.

    2. Re:It's just what it says it is.... by Anonymous Coward · · Score: 0

      It sounds to me like you were a Release Engineer who also did testing. You should have asked for more money.

    3. Re:It's just what it says it is.... by NotSanguine · · Score: 1

      It sounds to me like you were a Release Engineer who also did testing. You should have asked for more money.

      Yeah. I thought the $140,000 I was getting back in '92 was a little light. Thanks for the suggestion.

      --
      No, no, you're not thinking; you're just being logical. --Niels Bohr
  50. A QA Engineers testing tools and skills by dotrobert · · Score: 2
    What software/application you are working on can really change the equation, just as it does for the application developer, but here is a short list of software and skills I use in testing a publicly available web application, I'm sure I'm missing things, just a quick list...
    • Tests are written in Java.
    • TestNG for managing what gets tested and defining the data providers
    • Jenkins for continuous integration and scheduled testing
    • Selenium to drive the web app ( a proxy that gives us pretty darned complete access to a web page )
    • SQL most often from the java code, but sometimes manually in a SQL Query client to verify data.
    • Linux - general knowledge to help track down the source of problems on occasion. We dont like to throw "dumb" reports back to the devs.
    • Apache/Tomcat - we write log parsers to verify some activities, and sometimes just tail/grep them in narrowing down the cause of a bug.

    And of course we manually test, too. But, damn, is that boring... :)

  51. Run! by turgid · · Score: 3, Insightful

    I was looking for work recently, too, and got lots of calls from recruiters looking for Software Test Engineers.

    I've worked very hard to get to being a developer, so I resisted and eventually got a better paying and infinitely more stimulating development job.

    Software Test Engineers are sort-of developers, but the emphasis is on understanding requirement to be able to implement a "test matrix" that will (perhaps exhaustively) exercise a system (hardware and software as a whole) through all of the "use cases" that a user might be expected to do i.e. how J Random Luser will use the product.

    Practically, this means implementing hundreds (or maybe thousands) of automated tests driven from something like Fitness. If you're lucky, you'll get to implement your test cases in something like Ruby. If you're unlucky, it might be C#...

    It's quite a skilled job. You need to know a bit of statistics (statistical significance, confidence levels, variance and all that), about Combinatorial Testing (test coverage) and a bit about scripting and good software design. You would also need to understand the difference between white- grey- and black-box tests and when they are appropriate.

    There are two ways in, from being a "tester" upwards or sideways from being a developer. (Note I didn't say "down." It's a skiled job, but I've done it for a few weeks for the experience and I got bored quickly).

    In the spirit of cost-cutting, most Western companies are offshoring their testing. For example, Xerox just got rid of their manual and automated test to HCL in India. McAfee have done the same.

    Stick to development unless you're starving/about to have your house repossessed or want a little extra experience on the side (which is a good thing for your CV as long as you don't make it your whole life).

    One last thing: clueless recruiters see "Test-Driven Development" on your CV and think, "Aha! A software tester!" I had hundreds of phone calls under that misapprehension. (They also don't know what a kernel is (Windows and Linux both have one so they must be the same, right?) or the difference between C, C++ and C#...)

    1. Re:Run! by Anonymous Coward · · Score: 0

      In the spirit of cost-cutting, most Western companies are offshoring their testing. For example, Xerox just got rid of their manual and automated test to HCL in India. McAfee have done the same.

      Responsibilities may include fixing mistakes from outsourced testing, and going to India to handhold them through the testing process.

    2. Re:Run! by turgid · · Score: 1

      Responsibilities may include fixing mistakes from outsourced testing, and going to India to handhold them through the testing process.

      ...If there's anyone left from the original team with the knowledge.

      Testing is one of those "costs" that PHBs and Bean-Counters love to cut continually since, to them, it is only cost that could be diverted to profit. They don't understand the importance of testing. After all, if the engineers (who are now a commodity) are doing their jobs properly, everything should be perfect and there should be no need to test things thoroughly, right? In the mean time, the testing that is done can be carried out by inexperienced and under-qualified people that have never done it before since they are cheaper.

  52. Make sure the position is crystal clear by Keith111 · · Score: 2

    At Microsoft, for example, there are 2 test positions which sound the same but are VASTLY different. "Software Development Engineer in Test" and "Software Test Engineer" are the two positions, but SDET is given a lot more responsibility and gets to do a lot of development and works very closely with the developers and others on the team. STE generally gets little development and is all about making sure the test environment that actually execute tests is working and making sure the infrastructure is happy and the network is working. So my advice would be to make sure that you ask about other testing positions and discuss the differences and make sure you are getting the right thing. Testing is awesome and fun and very important and usually more difficult to do right than development but not all testing positions are created equally.

  53. At our company... by Anonymous Coward · · Score: 1

    Our company uses Agile as our development methodology. A task for our testers, from start to end, usually looks like this:

    1. A new bug fix or feature request gets created in Jira (task management system). If it's a bug, the tester tries to reproduce it on their system. If they can't, they discuss it with the submitter until it's reproducable, or determined to be user error.

    2. In the backlog grooming (thinking about and estimating the time cost of new feature and bug fix requests), the tester asks questions about what the final system will look like and do when finished. In the sprint planning meeting (assigning tasks to developers) they try to get a list of requirements that are, well, testable.

    3. When the tester leaves the meeting, they start writing some test cases. "User clicks here, this happens. User enters this value, this happens." This includes lots of corner cases, like opening files stored in locations where the directory has a space in the name (i.e. "C:\Program Files"), or inputting negative values for things that should only be positive, or clicking outside the dialog window. They then code up some test scripts that with Marathon, using Jython.

    4. When the developer marks the feature as resolved, the tester gets the latest updates from subversion, runs it with Maven, and starts going through the test cases they wrote. "When I clicked here, did this happen? When I entered this value, did that happen?" They also run the Marathon test scripts.

    5. If the feature or bug fix passed all tests, the issue gets marked as being closed in Jira. If it doesn't pass all tests, then it gets kicked back to the developer who is responsible for the changes. Sometimes the requirements need to be renegotiated with the product owner.

    This involves a lot of collaboration with the developers, product owners, and product support personnel. Qualities possessed by successful testers are: an attention to detail, perfectionism, creatively thinking outside the box, imagining what a user might do, imagining what a stupid user might do, communicating observations, comprehending vague requirements, writing documentation, and being able to politely goad developers into finishing their tasks well before the deadline so you have enough time to test. Notice that coding is not part of this? Also note that unit tests are the developer's job.

    In case you're wondering, I'm a developer. My team's tester has a background in writing technical documentation, and has nearly completed her Masters degree in Project Management, but has no background as a coder. She's extremely good at what she does.

  54. Good Test Engineer == Dev/QA Toolsmith Automator by PureFiction · · Score: 1

    Your development background will be very useful in a QA / Test Engineer role, assuming you are considering joining a technically competent organization.

    I say this because many companies have an antiquated view of "testers" as low skilled keyboard jockeys able to bang keys and input fields like monkeys on ritalin. Avoid these places like the plague...

    A premium QA/Test Engineer will apply development and other solid technical skills to:

    - Provision test systems spanning wide varies of operating systems, network configuration, applications and settings, in short: be able to build everything you need to test the systems tasked of you.

    - Obtain a deeper understanding of the system under test; able to dig into code to discern logical errors and oversights, triage down to root cause and even suggest a fix/patch.

    - Integrate test automation technologies into the software process so regression and performance testing is part of a continuous integration & test lifecycle. Manual testing should only be a part of your efforts, as software systems continually expand in scope and a manual-only test process will eventually be overwhelmed by progress.

    - Extend and apply third party tools, ranging from code performance analyzers to network traffic capture/replay, code coverage analysis and unit test frameworks, fuzzers and chaos monkeys, etc.

    - Understand security risks and defensive coding techniques to identify deficiencies in a code base or implementation/design which introduce vulnerabilities. Catching these defects before a product goes live is very rewarding and can be exceptionally cost effective.

    - Develop internal tools or customize existing software using Shell, PERL, Python, Ruby, Java, C/C++, and other languages as required or appropriate for the task at hand.

    - Communicate effectively with multiple stake holders in an organization: development, product support, marketing, administration, operations. These will all be interfacing with you and the ability to tailor the technical depth and nomenclature of your written and oral communications to each of these groups is critical to being an effective QA/Test Engineer.

    And many other skills and capabilities I've not listed, depending on the context of your role in the group and the domain of the organization you work for.

    Many people still consider QA a less important or prestigious occupation compared to other technical professions, like software development. While the prestige may be lacking, the job satisfaction of a competent QA/Test Engineer who applies development, operations, and security analysis skills to improve a product is significant.

    The many varied resources you should incorporate into your tester toolbox is too long to list here. Many sites exist devoted to QA toolsmith / test automation / security analysis roles, and you're going to want some skills and tools from all of these specialties at your disposal.

    Good luck! I hope you consider the switch; the world needs more competent QA/Test Engineers.

  55. Re:Depends on the company and the software package by Anonymous Coward · · Score: 0

    This. It's incredibly variable.

    I work for a company that produces an app that uses a MS SQL backend and a Visual FoxPro frontend (yes in 2012, we still use FoxPro). We have *no* automated testing. Testing is done by reading a bug report / feature request and making sure that the compiled version meets the specification. Of course, because we have no automated testing this means that we manually have to use the feature how we think a customer might use it.

    Because our codebase is so old and filled with spaghetti (and because we have no formal test cases -- and sometimes some behavior is simply undefined due to oversights in the specification) the QA people have to constantly try to keep the program in working order via manual regression testing. Manual regression testing is mind-numbingly boring. You really want to kill yourself after running the same test over and over again, month in month out.

  56. QA Engineer or QC tester? by Anonymous Coward · · Score: 0

    Being a QC tester or QA Engineer can be anywhere from monkey grunt work, clicking through menus and following test cases while writing up bug reports to establishing test cases, standing up testing environments and developing scripts and metrics to configure those environments and take benchmarks. To me QA Engineer leans more to the latter and a QC tester leans more towards the former.

    The kind of qualifications the recruiter is asking for is probably a good indicator of where on that scale you'd be but a QA engineer will some times do some of the grunt work a QC tester will do if the department is small enough but a QC tester rarely does what a QA engineer does because they tend to not be qualified. A lot of software companies will hire in house from QA engineers to be new developers because they are a lot more familiar with the coding standards and practices of the dev team than more qualified people from outside the company.

    Our department's QA engineer has basically been working two full time jobs right now fulfilling the roles of both a QA engineer, establishing test cases and testing processes and a QC tester, doing the grunt work of going through hundreds of tests multiple times across various environments. We're taking on a small team of QC testers in the coming quarter and he'll be able to take on the full time role of QA engineer. There is definitely a difference between the two and often recruiters and employers will muddle the terms.

  57. What my friends have told me ... by Skapare · · Score: 1

    ... is that I should have been a software tester because it seems every program I touch I always find something wrong with it or manage to break it somehow.

    --
    now we need to go OSS in diesel cars
  58. QA responsibilities by Anonymous Coward · · Score: 1

    Day to day responsibilities for a Software Test Engineer or QA can involve several things:

    Design test cases (think of ways to test the requirements of the software and document that knowledge),
    Submit bug reports and feedback (find an exception, crash, incorrect data or calculation, usability, "it's ugly", performance),
    Design/write automated scripts,
    Design test harnesses (write utility programs and interfaces that hook into the software being tested to get to data or features that are otherwise unavailable or not Directly testable by a person),
    Verify code changes for new feature implementations or bug fixes,
    Manual scripted testing,
    exploratory testing (manual, non-scripted testing).

    These are still just generic descriptions. For instance, my day to day testing tasks can include packet sniffing, manipulating a UI, messing with a web page query strings, querying a database, crafting an overload scenario for a feature, cloning alot of client software to bombard a server, writing code, manipulating hardware configurations, testing network connectivity, using a stopwatch to track page load times, and managing an IIS server.

    It will depend heavily on the maturity of the team doing the work and the software being developed, as well as skill of the person doing the work of course. You may find that it is more efficient to manually test certain features or functionality when first starting out, but as progress you are able to automate your tests. Or maybe what you are testing has no UI at all, in which case you'll have to write test harnesses or automated scripts from the start. Some features don't lend themselves to easy automation, and vice versa for manual testing.

  59. As Far As I've Been Able To Tell... by SageMusings · · Score: 2

    A tester needs to be prepared to take home less pay and expect high turnover in his/her dept (if he/she doesn't leave first).

    We have a QA dept and they don't stick around more than a year, tops. By the time they really get into the product, they're either fed up with the pay, the hours, or they get switched to another product. QA catches few important bugs because we (a) treat them as second-class citizens and (b) we don't involve them at the beginning of the design cycle.

    I've also seen some pretty brutish egos among fellow devs wear out QA staff. Do you want to subject yourself to that?

    --
    -- Posted from my parent's basement
    1. Re:As Far As I've Been Able To Tell... by Anonymous Coward · · Score: 0

      A tester needs to be prepared to take home less pay and expect high turnover in his/her dept (if he/she doesn't leave first).

      I write as an AC, but I am a software tester and my salary was over $96,000 last year. I expect any job I get in the future will pay the same or more, and possibly have a shorter commute.

      At the low end testers can make $25,000 (in an economically depressed area) and I've seen around $130,000 in a tech-heavy area.

      Also - read a lot of the AC comments. Though low score, most of them are written by people in the industry who don't want to sign their name to the post. Much of the AC info in this thread has been extremely valuable.

  60. Constitute? by dmomo · · Score: 1

    Among other things, a software tester's job CONSTITUTES the software development process. I think you mean "consist of"?

  61. Re:You are going to be the one who knows the softw by no-body · · Score: 1

    ...

    The job of a tester is to put together a meaningful plan - understand how the software is going to correspond to the business needs and test the main logical paths as well as some optional and failure paths and find out what the software really does as opposed to what people think it should do....

    That's incorrect - a tester follows a test plan and performs the test steps. This can be a program and the tester will evaluate the program output if it conforms to specs.

    A test plan is part of the design process and should run parallel to development.

    What you describe is ad-hoc testing - finding additional defects by going outside a structured, predefined test plan.
    There is no way that more complex systems - banking, Internet, manufacturing etc. would function without a highly structured approach including testing.

    The term "Engineer" is undefined - can mean anything.

  62. Don't try it by Anonymous Coward · · Score: 0

    Having been in quality for over 20 years, both in manufacturing and software, I will tell you this--if you are a developer, and you actually have to ask what a tester does, don't bother trying it--you'll never get it, because you are either too immature, too stupid, or just haven't been paying attention.

    In the real world, great developers and great testers don't play Kindergarten games, and call each other useless or unprofessional. They understand they each have unique skill sets, and work together to produce awesome stuff. I've worked with great developers and great testers. We did some great shit.

    For the most part, good luck finding such developers and testers. Most are content with pissing on one another, I guess because their mothers didn't love them enough. Who knows.

  63. Different everywhere by Anonymous Coward · · Score: 1

    Tester roles vary widely with the company. Here at MS, testers are supposed to do 30% development: either writing their own test tools, or researching (if not fixing) bugs for the regular developers. One I know said he went into testing rather than developing because he got to write more code with less process. Being a MS SDET requires pretty much the same skillset as a developer, and people switch between the two occasionally.

    At another large Seattle company, the testers knew little to nothing about the internals of the product, they basically ran the software periodically and tried to break stuff. Automated test runs (a major secret weapon for MS, BTW) were pretty much unknown: BVT's were a manual script. (Of course, this was just one group, and the products were not all that complicated; still, a BVT run took hours, and therefore didn't happen every day.) Most of the testers were young and I suspect the company wanted (cheap) quantity instead of quality.

    The main characteristic of testers is the desire to break stuff; I can't do it because I want stuff to work. There is also some admin stuff (like test plans) that you might not have seen much before (MS teams usually have elaborate templates that make it pretty easy, elsewhere it can be anything from a bullet list in an email to a formal document.)

    The takeaway is that you need to find out exactly what your job will entail, from the team, before signing on. Don't assume anything.

  64. You like kind of job? Well... by poppopret · · Score: 1
    If you actually like blackbox testing, I might have a job for you. It's USA only. Basically you look for security issues in all sorts of apps on all sorts of platforms. It helps to be comfortable looking at disassembly for different types of CPU. You make things crash and then look at the program memory, or you stare at the binary in a disassembler, or you do some more exotic analysis. Alternately you could help develop the exotic tools if you are comfy with writing stuff that can get meaningful data out of a binary blob.

    Any takers?

    I have a gmail account, doubleplusgoodalbert, to which you can send a resume.

    1. Re:You like kind of job? Well... by Amouth · · Score: 1

      require or have option for clearance? full/part time?

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    2. Re:You like kind of job? Well... by poppopret · · Score: 1

      Existing clearance is a plus, and you ought to be eligible, though for the right person we can find other projects. It's full-time, overtime not required, overtime is paid (normal rate), extreme flex-time.

    3. Re:You like kind of job? Well... by Amouth · · Score: 1

      ... tempting...

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
  65. TPS by trolman · · Score: 1

    Probably will involve TPS Cover sheets.

  66. I am a software tester who works on complex system by chuckfirment · · Score: 1

    There is no way that more complex systems - banking, Internet, manufacturing etc. would function without a highly structured approach including testing.

    For the last few years I've worked in SQA testing a very complex piece of banking software. We use a lot of automation, but without extensive exploratory (or ad-hoc) testing, our software would be in bad shape. Automation is used to verify things are working as you expect them to - it typically takes a while to set up. Exploratory testing is a way to quickly check, "I wonder if the developer thought about THIS THING," then trying that thing.

    I don't code automated tests to make sure _every_ single field has a field text input limit. But I have checked them all at some point manually just to see what would happen. Non-critical functions of non-critical areas don't get extensive automated tests - it's not worth the time/money. But looking at them once, ad-hoc?

    "A test plan is", or "The job of a tester is"... Both of these have very different answers depending on what company you work for, and who in that company you ask.

  67. You don't want software testers... by ATMAvatar · · Score: 1

    ...you want quality assurance. Testing is a part of the whole. Good QA is involved throughout the process and involves more than just "pressing ctrl-a while in high-DPI mode with the program maximized caused the DVD tray to pop out instead of display an about box."

    --
    "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
  68. Re:Depends on the company and the software package by Anonymous Coward · · Score: 0

    I too will be posting Anon.

    This AC isn't in a rare circumstance - it happens far more than you think. It's happened at companies I've worked for, and partially at the one I'm at now.

    It's horrible. It's legacy applications. It's "old guard" thinking that gets a company into this position and it's very hard to get out of.

    I researched automation packages until i found something that would work for us, talked the company into spending $4,000, then spent six months getting some basic regression tests together. During the next six months I would mention when automation caught fatal bugs that wouldn't have been noticed with manual testing.

    It's now over a year later, and the company is accepting and happy with automated testing. It's been a very challenging experience due to corporate culture.

  69. Re:You are going to be the one who knows the softw by roman_mir · · Score: 1

    That's incorrect - a tester follows a test plan and performs the test steps.

    - aha. And a developer follows a design and performs necessary steps to build the software.

    And a BA follows necessary steps to collect all of the necessary business requirements.

    And a DBA follows necessary steps to ensure that the data model is correct and the database configuration makes sense for the project.

    And a PM follows the best practices and whatever steps to ensure that the project is on time and within the budget and it delivers what it promises.

    And the sales follow the necessary steps to ensure the customers are buying what they believe they need.

    And the marketing follows the necessary steps to ensure that the offerings are of value to the customers, partners, clients and what not.

    The top management follows the necessary steps to direct the company towards a successful vision, etc.

    And no company fails to achieve its goals.
    And no project fails.
    And no design decision is amiss.
    And no developer makes mistakes.
    And QAs never find the unexpected.

    And banks don't fail.
    And governments don't fail.
    And Challenger didn't blow up.
    And countries don't fail.

    Give me a break. Things don't work the way they are 'supposed' to, a good QA will catch problems even if nobody thought of them and whatever plan that everybody thinks is the shit today, is shit tomorrow, just not that kind of shit. Even in the banks and insurance companies and investment businesses and medical companies and utilities and manufacturers and telecommunications and who knows what else.

  70. Testers can't code by Anonymous Coward · · Score: 0

    Those who can't code, test and those who can do either, supervise and say Mmmm-kay

  71. Re:You are going to be the one who knows the softw by chuckfirment · · Score: 1

    There is no way that more complex systems - banking, Internet, manufacturing etc. would function without a highly structured approach including testing.

    For the last few years I've worked in SQA testing a very complex piece of banking software. We use a lot of automation, but without extensive exploratory (or ad-hoc) testing, our software would be in bad shape. Automation is used to verify things are working as you expect them to - it typically takes a while to set up. Exploratory testing is a way to quickly check, "I wonder if the developer thought about THIS THING," then trying that thing.

    I don't code automated tests to make sure _every_ single field has a field text input limit. But I have checked them all at some point manually just to see what would happen. Non-critical functions of non-critical areas don't get extensive automated tests - it's not worth the time/money. But looking at them once, ad-hoc?

    "A test plan is", or "The job of a tester is"... Both of these have very different answers depending on what company you work for, and who in that company you ask.

  72. Job is to break things and say how you did it by Anonymous Coward · · Score: 0

    Oh, and make sure you find ALL the ways to break them.

  73. Leisure Town by Anonymous Coward · · Score: 0

    Dude. Have you never read QA Confidential? It starts out as the job of a lifetime, but it all ends very, very, horribly.

  74. Seriously, this... by barfy · · Score: 1

    Create and propagate information that helps people to create and ship the software...

    Everything else is details on this. I was the senior software tester for multiple projects. I got paid more than most everyone else, because I owned the above. I helped and did everything, and spent as little time as possible, NOT doing anything else.

    However, most people spent tons and tons of time NOT doing the above. The created very little new and useful information, and propagated very little. The company would make up for this by hiring LOTS of people, to try and create more information. Lots of time, people were given my stuff, in an attempt to expand on it.

    Personally, I spent a very small fraction of my time on regression testing. A little more on verification. But most of my time creating and propagating information.

    I would spend time creating models and predictions, and watching carefully what would happen. I would look at errors, user expectations, standards, behaviors and functionality. And barf stuff out as quickly as possible. And some percentage of time was coming up with larger and better explanations.

    I was never done, and I never could work enough to find them all, and I was never satisfied. There was always rich veins of information to be uncovered and passed on.

    At some point it shipped anyways...

    Sometimes I was there for the next version, sometimes I did other things.

    My personal satisfaction, was knowing that I had a substantial impact on what shipped. And that it was better for me being there.

  75. How is that a criticism? by LrdDimwit · · Score: 3, Insightful

    Criticizing someone by saying that they got less done than a group of other people is a pretty lousy criticism. All you've really done is establish that there's a benefit to two types of testing: methodical testing, and let's-just-mess-around-with-it stress testing.

    Just messing around is way faster, and it will quickly catch a lot of bugs. But it's no substitute for methodical testing. How many bugs did she find that the entire group of other people would have never noticed?

    I feel sorry for her. It seems like she did a pretty good job, and it sounds like she did exactly what the business hired her to do, yet it doesn't sound like she got any respect for it.

    1. Re:How is that a criticism? by Javagator · · Score: 1

      I’m afraid I didn’t do a decent job of explaining myself. I didn’t mean to say that the tester did a poor job. She did a very professional job. It’s just that users will use the system in ways that can’t be predicted. This was a complex system with a flexible user interface. The kids (two of them, not a big group) used the system in unexpected ways, just as users sometime do.

    2. Re:How is that a criticism? by Anonymous Coward · · Score: 0

      Your professional tester "methodically exercised the software".

      Your interns "used the system in unexpected ways".

      Both are obviously needed, but good luck getting either to do the other as well.

  76. Some more thoughts by xxdelxx · · Score: 1

    Much interesting stuff ahead of this, one or two more things

    QA is basically the meeting place of business/customer requirements and the developer's interpretation of that. So - as a software test engineer you should be able to create a test environment that will sufficiently (and there's a critical value judgement right there) mimic the customer environment. That environment needs good enough controls that it can automatically run through enough of (another value judgement) the functionality to ensure that there are no regressions, it needs to report well enough (ooh look - another value judgement) so that you can write a useful bug report when things go wrong. This needs a historical context of actions so that a good developer can look for a generalized fault (the bad ones just generate point fixes that make that specific problem go away) and enough of a data variance to establish some boundaries for the known good performance envelope for the product.

    Having done all that - you need to do enough of a business analysis and provide enough domain knowledge to craft a set of test cases which aim for optimal coverage with minimum effort.

    For the new stuff - don't bother automating until it becomes relatively stable, use automation for the things that you think (value judgement - are we seeing a trend yet?) won't change much because people are not good at repetitive tasks so that manual key bashing testing is doomed to expensive failure. Save the warm brains for the new stuff where you are trying to make sure that what the customer ends up with will actually do what they want.

    In essence, assuming you avoid the human monkey organisations, you can expect to do everything a developer is called on to do - and then more. Although you may not go to the same depth in any particular sub-field you will be expected to wield a much broader skill set on a day to day basis. If you get lucky and work with good developers then it makes a great team. Of course - there is a more than adequate supply of assholes on both sides of that fence to make that a crapshoot.

    You can also expect to be 4th line support once the thing ships - because by that point you will probably have (or at least should have) more practical operating knowledge of the system than anyone else.

    Oh - and one other thing - broken by design is still broken :-)

  77. Entry Level by Anonymous Coward · · Score: 0

    Software testing is typically an entry-level position.

    Very little coding is done, and most of the time is spend writing bug reports, generating test-cases, scripts, and lots of manual mouse-clicking.

    If you are indeed a software "engineer" and a recruiter is offering you this position, you either:

    a) have not been in your position very long
    b) are still a student
    c) blindly looking for a "programming" job
    d) some combination of the above

    It's entry level work, for entry level pay, with little chance of real upward mobility.

  78. It's like a belt sander in the toilet by ChrisGoodwin · · Score: 1

    Throw a belt sander in the toilet, then turn it on and leave it.

    You'll note that it does a lot of noisy grinding, though achieving very little of value, while being shat upon at random. It will continue doing this until it burns out.

    This is the life of a software tester.

    --
    Pretend there is some witty statement here.
  79. Avoid it. by NilleKopparmynt · · Score: 4, Informative

    I have been working in the testing field for almost 20 years but after a 5 year stint at Microsoft I found it to be such a horrible experience that I will never work with testing ever again. There are numerous problems and here is a selection.

    1. As a tester at Microsoft your main use is as a scape goat. If you find a big bug then it is all your fault. No matter when you found it, you should have found it earlier. It is a pretty wierd experience when you do your job properly and well and you still can be blamed for doing a bad job.

    2. As a tester at Microsoft you really are a second class citizen. You are considered less competent and more stupid. You are also far less important than anyone else since what you do does not explicitly impact the product.

    3. As a tester at Microsoft you do not have a career. It is pretty easy for a newbie to reach SDET2 but very few reach senior level. Where I used to work there was a 1:1 ratio between testers and devs but it was a 1:7 ratio between senior testers and senior devs.

    4. When you point out the problem with testers not having careers it only results in you having to listen to the director of test lying to you for an hour or two regaring how they are aware of the problem and how more testers now are going to be promoted. The result that year was that 12 devs reached senior level but not a single tester reached senior level.

    5. If you are good at your job people are going to hate you. Your job (among many other things) is to find bugs in the product and people really love having someone pointing out all the mistakes they make.

    6. If you have bad luck (like me) then you might end up in an automation swamp where the devs repeatedly break your tests and you spend an enormous amount of time fixing all the breaks. This really murders your competence.

    7. If you have really bad luck (like me) then you might find yourself with a test manager that has nothing but contempt for testers and their competence plus thinks it is really important for testers to do a lot of mundane manual testing.

    8. Also, having tester in your CV is bad if you want to pursue a career in software development. It will make it harder for you to get a job as software developer.

    1. Re:Avoid it. by Anonymous Coward · · Score: 0

      7. If you have really bad luck (like me) then you might find yourself with a test manager that has nothing but contempt for testers and their competence plus thinks it is really important for testers to do a lot of mundane manual testing.

      You and I must have worked for the same manager at Microsoft...

    2. Re:Avoid it. by wild_berry · · Score: 3, Interesting

      I'm a software tester in an organisation which has clear delineation between manual testers, software test engineers who build automated tests and developers (I gotta say that I speak for me and not them here - that's the policy out of the way). The first two of that list need to have a 'question everything' testers' mentality; the last two need to have a technical grasp of how the whole thing works, from the core OS, servers and transports to the libraries used and the UI.

      A manual tester is concerned with the human experience of your software. Typically there will be a script of the exact actions or the class of actions the manual tester is expected to cover. Some firms roll regression testing and new feature testing into the manual tester's role, others have a separate user-acceptance testing team who stand between released software and deployment.

      The automation tester's role is to make the computer test the software, by building a framework around the program and its installed environment to check the system as-a-whole does the intended job. Some automation testers also write unit tests in the core program code; mostly this is left to the developers, who are increasingly being asked to show that their code works - and doesn't break the existing code - before check-in. Some places operate a Behavior-Driven Development (BDD) process where client needs are expressed in testable ways - so that the evidence that your software does what a client wants is written down clearly for the client to see, the tester to test and the developer to build. Some BDD systems even build tests which show that these goals are met, and are known as Test-Driven because the proof of rightness is shown by the tests.

      Preparing for an telephone screening or interview about software test engineer, you will need to show that you're technically-minded, that you've worked engineered a test system before, that you understand the benefits and shortcomings of building such a system (such as knowing when to build tests and when to leave low-hanging test fruit to manual testers), and that you're concerned for the quality of the product more than for building a new toy test rig.

      I disagree with nearly every point made above, but I know this as a tester: there are a lot of people who shuffle into testing because it's the gateway to working in software. That's no bad thing. But mix it with the lack of confidence to apply for and get developer roles, and you will probably harm your sanity and your career. In every job, you need to be competent and confident. On top of that, you need to be personable so, for example, you don't make bug reports critical of the developers who made them (and know how to calm down a dev who's got that idea).

      To be a good tester is genuine hard work requiring the best of your technical insight, pedantry and commitment to high standards, but to be a great tester will call for charisma, kindness, honesty, good working relationships, and the skills to help make a dysfunctional team work right.

      If you're only a tester for a short while and move on to a developer role, you can either blame the economy for not having enough dev jobs (so you compromised in order to fulfill your passion for making software), or you can say that you wanted to improve your developer skills by learning what it's like to be on the other side of the fence as a tester. It's not a black mark if working as a tester makes it a benefit to you and a prospective employer.

    3. Re:Avoid it. by NilleKopparmynt · · Score: 1

      Are you sure you put your answer in the right thread because I cannot really match your answers to my bullets.

      In any way, most of my list is just a collection of my day to day experiences as a tester at Microsoft. There is really nothing to agree or disagree with. If you have much better experience working as a tester at a place where you got steady promotions, endless respect, a lot of appreciation, etc. then please share.

    4. Re:Avoid it. by bmajik · · Score: 1

      I'm currently a software tester at Microsoft, and recently was promoted into the senior band. I'll comment on some of your points, to offer my contrasting experience.

      1. this has never happened to me in my career. The spectrum of responses I get from developers are "why are you bothering me with this" to genuine appreciation. I am not discounting your experience, but know that you were probably in a defective org. They exist, but they are not the rule.

      2. Nobody questions my competence after working with me. Also, if what you do doesn't impact the product, you definitely shouldn't be getting promoted. One of the factors mentioned in my reviews is the impact I continue to have on features and design decisions.

      3. This is somewhat true. The SDET role was unique to Microsoft for a long time, and originally it was basically a ramp-up period to landing a dev job. The idea that a tester would want to continue to test (instead of moving into product development) after showing the competency and value required for several promotions just wasn't something Microsoft ever planned for.

      The result is that Microsoft is struggling to define what makes someone clearly a Senior or Principal level contributor in a test role. This is doubly (or quadruply?) true if you are not currently or aiming to be a manager.

      4. If it's any consolation, managers lie to other managers, managers lie to developers, and managers lie to PMs also. Management and lying are just part of how it works :)

      5. Not true at all in my org. I've had developers buy me lunch before because I was able to help them find bugs we all knew were in there but they couldn't successfully track down.

      6. This can certainly happen. Your job (and what makes you stand out from the other testers) are figuring out what to do about it. Do you refactor your tests to better insulate them from that kind of thing in the future? Do you attend or get feedback from dev meetings and offer estimates of test impact to proposed changes? Do you help make the schedule accomodate test constraints? Do you make the case that you need more help, perhaps some vendors to get through things? Do you show how you can deliver the same risk containment with fewer active tests?

      The difference between career band N and career band N+1 is expanding the number of hardships you can turn into opportunities to demonstrate personal excellence and deliver team results.

      7. So don't do manual testing. __Exploratory__ testing is where the majority of bugs are found, especially in actively developed areas of the product, and for many problem types is the most efficient activity in terms of hours spent vs. defects found. Exploratory testing is also one of the best ways to become domain experts on the product, and makes the automation you write considerably more effective. Read up on "exploratory testing" if you haven't -- it's what people _should_ be doing when someone says "manual" testing. At this point I relegate the definition of "manual testing" to following a script that has been prepared in advance and will not be deviated from. This sort of manual test is something that has enough value to be done more than once but not enough value to be automated (right now).

      8. This is probably true. I've interviewed with other companies and they don't quite know what to do with me. Most people don't realize that SDETs were typically developers in their previous careers. I was a UNIX C++ developer prior to working at Microsoft. Seeing "Microsoft" on a resume can help get you noticed but seeing "10 years doing testing" is a hinderance. Like most jobs, you really need a referral or an inside-advocate to get your foot in the door. Once you have an opportunity to talk about what you've actually done with someone who understands software, it's less of a problem.

      Personally, it's something I enjoy doing and am good at. There are aspects of the job (and the company) that upset me, but the developers on my team get upset by a lot of the same things.

      The world is starting to learn that professional software testing is its own animal, with a different set of competencies.

      --
      My opinions are my own, and do not necessarily represent those of my employer.
    5. Re:Avoid it. by NilleKopparmynt · · Score: 1

      Good to see at least one tester being promoted to senior. The first one for me and I worked there for 5 years.

      One thing I notice is bullet 2 regarding impact. Sure, giving feedback regarding the design and features is part of a testers job but what I found most bizarre was that this was what counted most at review time. If you design a feature or actually code parts of the product (which I ended up doing) then you are doing what a developer or PM should do and that is highly valued. If you for example do a lot of performance testing and find and fix a lot of performance issues then it is not really counted as impacting the product. It is really a bizarre epiphany to realise that if you want to boost your career as a tester then you need to do the job of a PM or dev.

      I am sad to see that my bullet 3 (testers do not have careers at Microsoft) still is at least partly valid. Microsoft should really do something about that. James Whittaker (I do not know if he "invented" exploratory testing or just advocated it) still have his blog left on MSDN and he says something regarding poor promotion prospects for testers at Microsoft in it. It will be a nice day for all testers at Microsoft when that blog entry is not true anymore.

  80. Testing Vs QA'ing by Anonymous Coward · · Score: 0

    In one of the companies I worked for, testing (we called it validation) was part of engineering (this is firmware testing).

    Passing those guys basically meant that QA could not fail on functionalities, but perhaps user experience or much higher level testing.

    These guys (in validation) knew the specs. and products at _least_ as well as us developers.

    Mind you, they were not interesting in debugging our code and failing them was not a happy thing.

    They loved looking for loop holes and corner cases to break us ... they were having fun too and developed their own systems in order to be one step ahead at all time.

    I think of them as hackers in the positive sense ... man they were tough ;)

  81. Black Box testing is fun! by BarfooTheSecond · · Score: 1

    Right, black box testing and exploration testing are the most interesting, it can be like a game. Detective work where good analysis and diagnostics skills are required.

    When you find a failure, you have to investigate further to pin point the defect, to have something tangible and accurate to report to the developers (so that they have no other choice than to believe you ;-).

    You're not the guy who made the code, but as a developer yourself, you know how it works, and you know where developers sometimes neglet to shield their code or what is likely to fail. You don't see what's inside that "box", but you guess. You have a totally different point of view than the coders who made it, so you see things they don't see.

    It can even happen that you end up explaining them how what they wrote works, that you gain a better understanding of what their software does in reality! Think networking for example: with modern high level OO languages, networking is completely burried into many software layers. Opening a remote connection at high level is easy-peasy nowadays, but many programmers (especially youngest ones) don't know (or are not interested to know) what's going on down there on the cable. Your tool will be Wireshark and with it you'll see the live connection, you'll see in details how it works or fails, not how the developer expected it would work.

    Software testing can be much more than pressing buttons and ticking PASS/FAIL checkboxes. It's a domain where you can have plenty of freedom and can use all your imagination and skills. Some tasks such as preparing test cases or writing reports can be boring but it's not worse that documenting code for a developer. Some coders will see you as a fellow who helps them while some others with a large ego might not like you very much, especially when they cause many defects and see your name too often! But being a good tester is rewarding. If you can share this job with some programming, you'll be a happy guy.

    A book I recommend is "Lessons Learned in Software Testing": http://tinyurl.com/86f9q48

  82. Don't sign up without learning about their culture by Anonymous Coward · · Score: 0

    I've been a system tester in the past, a developer and at present I run a large software group for a global company. I've had to set up test groups several times and I can tell you that they only work if the dev org treats them as partners in building their product.

    If however the dev team's culture is to throw things over the wall and move on to better and shinier things, you'll still might get paid, but you won't enjoy your work. Worse is a dev group whose strategy is to blame all problems as test failures and schedule overhead.

    Attrition and morale in test groups has always been a problem. Be aware of that and make a decision.

    As for me, the last independent test group I set up will be my last. Just not worth the people issues.

  83. I'm a QA technician/engineer... by Anonymous Coward · · Score: 0

    I have worked both in the software and hardware industries for almost 20 years (accumulated). The job really depends on what exactly is being tested.

    If it is hardware, than you will be designing software to test different functionality and will likely need knowledge on how to debug failures at the hardware level. Not necessarily microcode knowledge, but enough to reliably produce a reproducible failure in as little code as possible for the hardware engineers to be able to reproduce in their simulated environments at the microcode level.

    If the testing is for a software development team, you will want to be involved with a product design as early as possible to help point out failure points early in the design phase. As the software development progresses, you will want to develop and maintain test that can hook into the software under development and inject test scenarios in an automated fashion.

    Both software and hardware testing will benefit from test plans that include focused tests with fixed data designed to attack corner cases (90% of failures are hiding in the corners - where end users somehow always end up). Another type of testing involves randomization of instructions and tests. This can actually better simulate real world usage, but it can also be much harder to develop and maintain.

    One test I came up with many years ago involved taking data from random queries to our company ldap database, converting the data to a compressed binary stream, and processing it as if it was graphics data using SSE2 instructions to shift a lof of bits at a time. This actually found a bus violation between processor and memory. (The test was later rewritten by someone with a lot more knowledge of the hardware, but it was a cool "outside the box" idea).

  84. Depends on the company by Osgeld · · Score: 0

    for instance at Microsoft it means filling out a piece of paper and playing XBOX all day, or at Electronic Arts oh wait they dont even need them cause all they do is add one to the year and update an xml file, and at apple they do whatever they are told to.

  85. testing is .... by Anonymous Coward · · Score: 1

    Testing is the infinite process of comparing the invisible to the ambiguous in order to avoid the unthinkable happening to the anonymous.

  86. QA is NOT a subset of development by Loopy · · Score: 1

    Software Test Engineer is NOT a subset of Software Engineer.

    Just be honest in the interview. If they ASK you to guess, then guess. Otherwise, just tell them what you know. You might be a perfect fit but you might be missing the particular skills they're looking for.

  87. Re:You are going to be the one who knows the softw by Anonymous Coward · · Score: 0

    You kind of left out the most important element - good testers use not only the requirements document, but user expectations. Yes, I know the "non-functional" requirements should cover that, but if you make that assumption, you will be wrong 100% of the time.

    And you will fuck up the deployment.

    Spoken as one who has developed, analyzed requirements, tested, and been the business owner.

  88. Put on your mean hat by Anonymous Coward · · Score: 0

    I'm a software engineer. I work with our software testing department. They are great and have saved my butt a number of times. Here is what I would recommend if you want to be a GREAT software tester:

    1) Be evil. I don't mean in real life, but at your job. I tell the software testers to put on their mean hats. Think like an attacker. They are the enemy. If you are nice and everything always passes, you are not doing your job. If software engineers are mean to you, tell them to STFU and make better products. If a manager tells you to let something slide so they can meet a ship date, tell them to STFU and pull their head out of their ass.

    1.a) Do not try to re-engineer the product. Your job is to make sure it works as designed, not to redesign. If you say, "Well this new electronic toothbrush is great, but it needs to have 27 configurable patterns, play music, download updates from the web in real time, and run Linux.", then you are not doing your job.

    2) COMMUNICATE EFFECTIVELY! I have a personal joke that bad testers are like chickens, they come into my office saying, "Its broke, broke, broke, broke. Its broke, broke, broke." (Say it a couple of times, it really sounds like a chicken). GOOD SOFTWARE TESTERS TELL ME HOW TO REPRODUCE THE ERROR. They include, what their system setup was. What versions of what they are using. What they did before and during the test, and (most importantly) why they think it doesn't meet the requirement. In turn, I try to provide a reasonable test plan as a starting point. Here's what I changed, here's the feature(s) you should test, here's the regression you should test. But I don't limit them to only those tests.

    3) Automate if you can, but don't automate what you can't. Sometimes software testers (especially newbies) get caught up in the automation process. "Here look, I spent 12 hours writing a test script for this test that reduced its time from 6 to 5 minutes."

    4) Know thy product. The software engineers will have specialized knowledge on their little piece of the puzzle. You on the other hand must KNOW EVERYTHING! (Maybe just not all there is to know about everything.) You are the last line of defense between the lazy devs and the honest, hardworking customer that is laying down their hard earned dollars for your product. The fate of the company is in your hands.

    5) TEST THE FINAL PRODUCT, its your ass on the line. Be tenacious. Do not let a developer sweet talk you into "Oh yeah, I just made this one little change. It won't affect the user. You don't need to test it." Assume if you hear this, he put in a backdoor that immediately will send all confidential info to North Korea. (Remember, the devs are the enemy!)

  89. Testing by SirGeek · · Score: 1

    As some who DOES do software testing, there are a few things good software testers do but it depends on exactly what type of testing they're looking for.

    1. Are you doing functional testing ?
    2. Are you doing business acceptance testing ?
    3. Are you doing unit testing ?
    4. Are you going to be using Automated Testing ?

    Generally, you will need to analyze the business requirements to create functional tests to ensure that you have code coverage and that the code does exactly what the requirements say. If there are variances, they need to be documented and someone has to determine if they are bugs, or omissions of the requirements (and then update the requirements).

  90. Oblig: The IBM Black Team by Anonymous Coward · · Score: 0

    http://a.mongers.org/clueful/20020402-peopleware-blackteam

    and

    http://www.penzba.co.uk/GreybeardStories/TheBlackTeam.html

    A junior engineer in my previous company was a far better tester than a dev. But sw dev has an allure and prestige associated with it that testing doesn't. I sent him these links and convinced him he would make a kick ass tester or a mediocre dev, his pick. He chose testing and in just a couple of years he's become a tester at one of the best companies in networking, testing things that few in the world can even dream of.

    So if you want to break things, have a passion for finding faults in others, can make software shudder when you are in the same room - then testing's for you :)

  91. It varies by Anonymous Coward · · Score: 0

    I think it really depends on your company size and the kind of products they churn out. The life of a software tester in a 20 man code house is probably very different from a software tester in a 200 man IT department.

    I've been working as a "senior software engineer" / "test analyst" at a regional Telco (1.8 billion USD yearly revenue) for the past three years.

    Your job scope in a large enterprise will probably start with the "button-pushing" aspect of testing. Your boss will have a schedule and a quota to meet during the testing phase. "Ok, we've got one month to finish these 400 test scenarios. Let's get it started." And then you will have to attempt to meet the quota by manually executing the test scenarios. Raising defects when the expected results do not happen. This will probably last for a year or two.

    Once you are more acquainted with the business processes and the products, your boss will probably get you to write those test scenarios. You will be given a bunch of documents: User Requirements, High Level Design, Detailed Designs (which most likely will contradict each other). So now you have to assess and work with the various people to confirm what is really needed or wanted.

    When you prove yourself useful to the project managers by identifying the potential design gaps, they might get you on-board for the over all project test planning. You will then be involved in setting up the test environments, identifying the necessary systems involved and some resource planning (What to test, how to test, who will test and when to finish).

    That's pretty much what happened to me during the past 3 years. YMMV.

  92. Re:You are going to be the one who knows the softw by no-body · · Score: 1

    Very interesting what synapses got switched on in your system. Please have all the breaks you need.
     

  93. You can not cram for this particular test by tlambert · · Score: 1

    Your question is too broad and too general to be meaningful, since the answer is going to be "it depends on the role they have in mind for you".

    There is no such thing as a meaningful definition of a "certified software test engineer", and there is no such thing as "best common practices" or anything else that would give a common, formal definition of what someone has called "Software Test Engineer" in a job posting means by the title.

    It means whatever it means to the person who told the job poster to write in the job posting. Usually, job postings have lists of relevant experience, certifications/degrees, and tools familiarities which will give you some clue.

    Most software testing is Ad Hoc (read: "not reproducible without activity logging"), and most automated testing is reactive (read: "sure hope we don't see this bug again, let's write a test which will probably never fail again"), rather than a result of a formal specification to which actual software behaviour can be compared.

    It's possible to get to the point where software testing is a formal discipline, but in general, no one seems very interested in doing so unless you are talking about life support systems (e.g. getting correct results from medical equipment, not sending a reactor hypercritical, or not crashing a Mars probe into the ground). Even then, desire is not frequently reduced to practice, and mistakes are made.

    PS: attempting to cram for an interview almost always leads to bad things: claims on your resume to knowledge you do not have in depth, and can not answer deep questions on, or worse, getting a position for which you are not qualified and futzing everything up for everyone else involved.

    -- Terry

  94. Make the software testers redundant. by Anonymous Coward · · Score: 0

    Save companies money and have the PROGRAMMERS pragmatically code the application in the first place.

    Basically, don't trust ANY input, validate input EXHAUSTIVELY, and catch EVERY POSSIBLE non-user-input I/O error (disk full, socket closed, etc.).

    You are done!

    This is likely what they did when they coded the software for the now-grounded Space Shuttle flight systems. They even went FURTHER than that by designing 3(?) different systems by 3 different groups that ran together. As long as 2 or 3 systems agreed with each other, everything was OK, otherwise the alarm would have been raised.

  95. hang up by baxrob · · Score: 1

    when they call you to schedule an interview, hang up on them.

    there is no path from "software testing" to software engineering, in that paradigm.

    freelance, intern, do anything but "testing". it's a euphemism for .. software custodian -- ie: janitor.

  96. Re:You are going to be the one who knows the softw by stephanruby · · Score: 1

    The job of a tester is to put together a meaningful plan...

    ...and then not use it.

    http://googletesting.blogspot.com/2011/09/10-minute-test-plan.html

  97. A modern software testers job is NOT to break the by Kaenneth · · Score: 0

    A software QA professional reviews the specs before coding the determine potential failures, and has them addressed in the spec beforehand.

    Then to validates that it works correctly, as per the spec.

    THEN you break it. Document the nature of the breakage, and note the issue catagory for future spec reviews.

    Software QA is not just it's own process, it's improving the whole development process.

  98. Be a pain in the ass by Anonymous Coward · · Score: 1

    A testers first responsability is to be a nitpick and a giant pain in the ass for developers. If you aren't you're doing something wrong. I _am_ speaking from experience, being a developer and the best testers were nice guys, but TERRIBLE nitpicks, naggers and know-it-alls, forcing me to improve the software continuously. So there...

  99. The general job ... by Anonymous Coward · · Score: 0

    is to assert the product quality ... so whenever your "developer-self" thinks: "this could never possibly break" -> be even more sure to test the hell out of it :D

  100. I would not hire you... by DeBaas · · Score: 1

    I have been a test manager for years, that includes doing intakes with new testers. Whilst I highly value development skills, the worst testers are those that just do it because there is a need for testers right now. I always look for that the tester: really chose to be a tester, and did not make that choice just because they couldn't land a contract as a developer.
    There will be exceptions, but most are either gone the moment they do get a better offer or worse, when they find flaws in the software, they try to fix it.

    So my tip would be: either simply do not go for this contract, or come up with some real good explanation that you really want to test. The good explanation should not include anything that is based on money/bad market etc.

    --
    ---
  101. bugs in code by gordona · · Score: 1

    Tester to developer: "Your code as a bug". Developer to tester: "Your test code has a bug".

    --
    "Gentlemen, you can't fight in here! This is the War Room!" -- Dr. Strangelove
    1. Re:bugs in code by gordona · · Score: 1

      oops--my response has a bug! :(

      --
      "Gentlemen, you can't fight in here! This is the War Room!" -- Dr. Strangelove
  102. the real job of software testing by Anonymous Coward · · Score: 0

    Tasks
    1) Make sure you make nobody angry otherwise you'll be replaced by a h1b visa holder.
    2) they want developers with qa or qa with development because they want the fox guarding the henhouse.
    3) Regardless of how many bugs are found, the software will be released with bugs because companies don't care about software quality.
    4) And remember: most likely your tester is an h1b visa holder because companies don't usually hire software testers who are US citizens.

  103. Be an advocate for the user by Captain+Hook · · Score: 1

    I know a lot of people are going to say things like unit testing through to user acceptance test and everything in between or maybe taking testing off of developers so they can get on with more 'important' stuff (see first post).

    But all of that is the technical skills and knowledge that you need to do the job. At the end of the day, you are meant to be an advocate for the end user, argue to get bugs fixed, don't accept "Thats how it's meant to work" just because the spec said that is how it will work if that doesn't help the user etc.

    Also, grow thick skin and be prepared for cynism to creep into your view of the world (or maybe good testers are already cynical?)

    It's a job which breeds a negative view of live, you spend your time not producing anything directly sellable and tearing other peoples work apart.

    --
    These comments are my personal opinions and do not necessarily reflect the opinions of the other voices in my head.
    1. Re:Be an advocate for the user by jgrahn · · Score: 1

      [...] At the end of the day, you are meant to be an advocate for the end user, argue to get bugs fixed, don't accept "Thats how it's meant to work" just because the spec said that is how it will work if that doesn't help the user etc.

      Yes, that is how it should work. Clever organizations let their testers acquire that wisdom, and then listen to them.

      Also, grow thick skin and be prepared for cynism to creep into your view of the world (or maybe good testers are already cynical?) It's a job which breeds a negative view of live, you spend your time not producing anything directly sellable and tearing other peoples work apart.

      I somewhat disagree. Not letting bugs through certainly feels productive to me. For many products (maybe not consumer software, but at least those with few and powerful buyers) a high-profile bug in the field can be devastating.

  104. Software Testing by Murdoch5 · · Score: 1

    Software Testing is a very unique job, its not just sitting at a desk and following a series of steps to test a software product. I was a software tester for 8 months as a coop student and I would say the biggest surprise was that software testing had no good formal description. When I did my software testing I used more experimental methods then formal methods. I personally never saw the point to formal testing, formal software testing never made and sense because software never preforms in an exact formal way. if 99.99% of a software's running time is produces output x, y ad z that means 0.01% of the time it will produce x, y and t output. The goal of a good software tester is to find a way to produce the 0.01% case and document it. When you preform formal software testing your only following steps to make sure you produce 99.99% of cases which doesn't really tell you a lot.

    Software testing should NEVER be outlined by the developer, a developer will ALWAYS be biased on how to test there software. It's also important that the developer listen to the software tester, I had more then a few cases were company's told me to screw off when I was able to exploit there software through testing. Software testing is literally like solving a mystery, you know something will happen and you need to find the steps of a bug to get from stable to issue.

  105. Can mean anything by jgrahn · · Score: 2
    (Reiterating some things others have said already, I'm sure.)

    A "Software test engineer" job can mean pretty much anything, and you should find out before accepting.

    It can be focused on finding bugs, or on ticking off a list of tests to have passed before shipping.
    It can be close to the code, or with the product as a black box.
    It can be detailed functional tests, performance tests, or big statistical simulations running for days or weeks.
    It can be work together with the developers, or completely isolated from them.
    It can be manual GUI testing, automated, or with a complex mix of test tools

    The tester can be (perceived as) a low-level grunt, or as the person who knows the product the best; the end users' only representative.

  106. Is this for Agile Testing? by Anonymous Coward · · Score: 0

    If it is, your job gets to be very complex. Agile User stories are usually incredibly loose in specification (Example: In order to do my job better I need the printing to be faster so that I can match my quotas as an Accountant). As a Software Engineer I have one concept of "faster". As a tester you need to have the customer's idea of "faster" in case it doesn't match mine. Worse yet, faster may really mean "ignore the fifty times I punched the print button because I'm under a lot of stress". Our testers also need to present the iteration results to the clients - so that the clients keep believing that they are worth the money they are being paid. You will also need to have the political savvy of a genius - you are telling an overworked Software Engineer that they are wrong, and you are trying to wring technical details out of the representative for a department that may only know their side of the story, and is so focused on the workflow that they are used to that they won't accept a new one, even if it is better... and you also will have to deal with previous test cases representing the prejudices of the previous test engineer. I respect my testers, and try to keep them from going postal as much as possible.

  107. Re:Bullfeathers by crutchy · · Score: 1
    you are an idiot.
    where the hell do you think the US defense budget goes? of course raytheon etc can do tests like this, because they literally have money to burn
    i'm not saying it happened like that, but defense R&D can easily get this bizarre

    Why use the expensive Tomahawk when Harpoons are cheaper?

    if you've been paid to test the capabilities of a defense platform, that's what you do. the op only mentioned testing guns, but the test could easily have included functions of the tomohawk missiles.
    you might as well ask why develop nuclear weapons when a slingshot is cheaper. a harpoon may be similar to a tomohawk, but obviously there are differences (a quick google search reveals that tomohawks have significantly higher range than harpoons, and can carry nukes).

  108. 13 Years in SQA by Anonymous Coward · · Score: 0

    Your primary job as a QA Analyst / Test Engineer is not to make sure the code is perfect. It's not to make sure the developers did everything right. It's not to catch the developers doing something wrong.

    Your primary job, is to give the project team, including the business interests an accurate view of the state of the software. You tell them what's good, what's bad, what could potentially be flawed, etc.

    A good developer could be an excellent tester, but it's a major paradigm shift for most developers.

  109. Test Automation/Developers are in big demand by rosiesherry · · Score: 1

    Lots of advice already given, one point... There are many companies out there looking for testers that can code, often unsuccesfully. So if you can code are are happy to do test automation you could potentially have a strong advantage. Many testers are not coders, they don't always have to be, but as a result it puts uber techie/developers in a stronger position if they are looking for a testing type role.

  110. Actually, it was 5 IBM AP-101s by tlambert · · Score: 1

    Actually, it was 5 IBM AP-101s, four of which ran identical software, with the fifth running independently written backup flight software.

    http://en.wikipedia.org/wiki/IBM_AP-101

    -- Terry