A Case For a Software Testing Undergrad Major
colinneagle writes "I have spent the last couple of days at the StarEast conference, listening to people explain to a roomful of testers about modeling workflows and data transitions, managing test environments in the cloud, writing automation scripts for regression tests, best methods for exploratory testing, running mobile test lab. And as I look around the room at the raw intelligence of the people who are not only absorbing that information but probing deeper into it during the Q&A sessions, I have to wonder how much easier their careers could have been if they had been able to major in Software Testing in college. It's time to give employers a testing workforce that is competitive and trained so they can stand toe-to-toe with the development team. Imagine the power of being able to hire a recent college graduate who has been taught how to develop system diagrams, build complex SQL, run log analysis, set up a cloud test environment, and write automation scripts. No more crossing your fingers that this eager young face in front of you can really pick up those skills, and no more investing so much time and money in training them on the job. We ask no less from Technical Writing and Development. Why do we have such different expectations for one of the most important functions on the team?"
People get this major, get a job, blow brains out...
It is fairly common to see electrical engineers specialize as either design or test engineers, in function if not career. But as far as I've seen, they still have the same academic training. I'm not sure that software would need to be done differently, at least at the undergrad level. Although I do think that having more course work available on testing would be a good thing.
much of left-wing thought is a kind of playing with fire by people who don't even know that fire is hot - George Orwell
Imagine the power of being able to hire a recent college graduate who has been taught how to develop system diagrams, build complex SQL, run log analysis, set up a cloud test environment, and write automation scripts.
If I can do all this, why would I want to remain a tester? Why wouldn't I get into development?
Lets make something clear Verification and Validation of Software != Testing Software. .... well, you just hire bunch of Programmers from India.
Verification and Validation requires PhD or MS.
Testing Software
It's time to give employers a testing workforce that is competitive and trained so they can stand toe-to-toe with the development team.
But then you'd actually have to pay them like developers.
Also, I think this is a good example of 'career training' VS 'education.' Do you really want to graduate from college, after paying all that money, and have your primary skill set be "to develop system diagrams, build complex SQL, run log analysis, set up a cloud test environment, and write automation scripts?" That sounds like a couple semesters at DeVry.
"First they came for the slanderers and i said nothing."
It's about starting kids on a path that will take them through the remaining 70 years of their lives, not a jumpstart on the job market for the next 5 years (after which a lot of what they learned will be obsolete and not very interesting to employers). Of course, there are professional schools and technical schools that focus on the latter.
No more crossing your fingers that this eager young face in front of you can really pick up those skills, and no more investing so much time and money in training them on the job.
So, basically, you think it's time for someone else to conduct your on-the-job training at no cost or risk to you.
"Anyone who [rips a CD] is probably engaging in copyright infringement." - David O. Carson
The best QA testers are usually the people overqualified for it. They're not doing it because they want to, they do it for a paycheck while waiting to land a dev job. If QA testers start needing degrees then why would anyone choose studying QA over CS when the skills overlap but most of the fun and pay is in CS?
You mean you actually have to train people! OMG stop the presses. Another company that can't bothered to train it's workforce....
and the rest of the non-tech business infrastructure is probably the bigger question.
In my experience, the business wing of most companies has little interest in testing. Works/doesn't work is far less important than building brand, driving sales, and so on. I haven't seen many cases in which a "show stopper" was really a show stopper that held up a launch or a release, or in which anything that was broken at launch or release was ever worked on again.
Before launch/release it's "we can't hold anything up, just release and we'll fix it later" and after launch/release it's "numbers were adequate even with that 'issue' in evidence, which means that it doesn't critically affect sales and we shouldn't spend anything to think about it; let's work on new features."
STOP . AMERICA . NOW
About the author:
For more than 25 years, Lorinda Brandonhas worked in various management roles in the high-tech industry, including customer service, quality assurance and engineering. She is currently Director of Solutions Strategy at SmartBear Software, a leading supplier of software quality tools. She has built and led numerous successful technical teams at various companies, including RR Donnelley, EMC, Kayak Software, Exit41 and Intuit, among others. She specializes in rejuvenating product management, quality assurance and engineering teams by re-organizing and expanding staff and refining processes used within organizations. She has a bachelor’s degree in art history from Arizona State University.
"Anyone who [rips a CD] is probably engaging in copyright infringement." - David O. Carson
The primary purpose of higher education is to develop individuals who are capable problem solvers, who are capable of understanding complex ideas, and who have a broad base of knowledge for the context of those ideas. We need such individuals to have a thriving society and robust democracy. Few people seem to realize this.
Developing skill sets for the workplace is a decidedly secondary task of higher education. This isn't unimportant, but it isn't the primary purpose. This is why we don't have classes in plumbing or home finance, although those subjects could easily be taught at a university. Purely technical skills are valuable, but only to the degree to which they are generally applicable to a wide field.
A few years ago I was talking with a Prof at Univ of Memphis and he was talking about starting a program, because FedEx was in looking to to help. They were looking for better quality control. I do not know if it was started, since I have moved 3 years ago away from area.
In my past, though, the best QA person was a gentalman that had a degree in Anthropology. He could find bugs that no one could find, by taking every single keystroke and option. Plus he had great stories to tell of different locations around the world.
"Fitting" or "coincidentally" (even "unfortunate coincidence", even if you're Canadian) is not "irony".
It might be ironic if she had been an advocate of less-or-no education, and now she was advocating for a very specific focus with a high education. It might also be ironic if she was calling for more testers to have a highly specialized degree she herself had, yet she was never in QA because she had this specific education.
But even if she was in QA because she lacked a particular education, that's still not particularly ironic, just simply coincidental with some real-world experience and a well-informed opinion.
Blizzard Entertainment's QA department is widely reported to be the gateway to entry level developer, artist and producer positions. Low level dev and art tasks are occasionally given to aspiring programmers and artists in QA. All with QA management's blessings and cooperation. This is embedded in the company culture. Some very high ranking folks started in QA as a tester.
While I will not debate the fact that Software Testing is an important job (protecting my own job here), it's also not the hardest job you can do. Sure you can make it complex when you get into running test labs and automating your approaches, but it's nothing that you shouldn't be able to pick up on within a year. The problem with teaching testing methodology is most often you resort to having to teach the theory behind testing. What goes does knowing how to best tackle things like equivalence partitioning when you don't even know the basics of C#? And if you know how to write code, you probably already understand the things that make Software Testing "hard". I'd have to agree with the sentiment that, while there are some people out there that do enjoy testing, the majority of people "in test" are just here as they transition to/from dev. Also I've been hearing rumors around the board that certain big-houses like Microsoft are just getting rid of test; everyone will be a "integrated developer" in due time - you test what you dev and dev what you test.
Universities are not technical schools. Ideally, they provide a broad theoretical framework that allows people to develop a career over the next few decades following their graduation. What the article is suggesting is that people be forced to pay for narrow training, pigeonholing them into a career path which may or may not exist (or be practical) in 20 years.
University education is meta-education. It enables life-long learning. Businesses expecting fresh graduates to have received (and paid for) training in technology-dejour is a disturbing trend in the software industry.
Why are their poor hiring practices indicative of a problem with the available degree programs to students? Of course, all in-between type jobs would be easier to train for if there was a degree specific to those jobs... but do you really think that anyone went into journalism or art history because there was no software testing degree program available? If they were interested in working with computers, why in the world would they not major (or even minor) in computer science? At best, I could see software testing being being a concentration for students with technology related degrees.
This begs the question: why aren't they hiring fresh, or underemployed CS grads, or people with unrelated engineering backgrounds, to do these jobs, to begin with, if they're finding that the people they hire don't have the appropriate technical skills? I'm guessing that they don't want to pay them well enough to use their expertise. Once they get a degree specific to that field, however, wouldn't they cost just as much as CS grads?
This article is using the fact that they hire people with no relevant training whatsoever, to advocate for a degree in something that should be purely vocational, or on-the-job training. In this job market, it must seem, to recruiters, that their wish are prospective employee and trainer commands, because people are so desperate to get an edge, even in the most basic jobs. This person airing their perspective on the matter shows how skewed their perspective is.
Industrialists will favor "getting Airbus Industries certificate 747-400 in Synergistic QoS Management using Microsoft Photoshop OS-X Enterprise Edition version 4.1.8.7b or later", academics, (who are mostly the ones setting and designing courses) will tend to favor the "learning how to learn" approach. So you have to ask yourself, are you asking the right question? Is college a place to get certified for some specific job, or is it a place to build the skills required to do any job in the field? This is the difference between academic and vocational training.
Education should hone an individuals ability to think and learn throughout their entire lives, and apply those skills to every domain they may encounter.
Sorry, but this is just another in a long line of corporate pushes to strip away "real education" about science, math, the liberal arts, and culture from high schools and colleges and replace it with "vocational training" about narrow specialties so that they no longer have to pay for it. Fuck that; we need a well-educated populace. If we want a nation composed of poorly educated people working in virtual sweatshops to compete with an unlimited supply of both skilled and unskilled immigrants who drive down wages* to make those jobs less appealing to natives, we're sure well enough down that road by now without hitting the gas every time an employer wants new kinds of vocational sheep.
*: Harvard economist George Borjas has demonstrated conclusively that for every 10% increase in the labor supply, wages are driven down by 3-4%. Think about that every time someone says, "We need more [skilled/unskilled/whatever] immigration to compete." That job would pay more, and thus attract more Americans into that part of the labor market, and/or be subject to greater automation with skilled American operators overseeing it, if not for the already-high levels of immigration endemic in the given field.
"It's a damn poor mind that can only think of one way to spell a word."--Andrew Jackson
Methinks perhaps that the author of TFRA (the effin' referenced article) is very confused about the difference between vocational training (like refrigeration technology and automotive repair) and college education (like computer science and anthropology).
.
Vocation training entails learning the specifics about one technology as a depth-first traversal of that one particular topic.
.
A college education, whether you major in a liberal arts field or an engineering field or a hard science field, requires learning various other disciplines alongside majoring in one specific discipline: a partial depth-first traversal of the major with a breadth-first traversal of the basic liberal arts or science curriculum. This allows a wide exposure to the "classics" (if you go to UC, the chicago one) or the "basics" or "foundation" (if you go to one of the UCs, the california ones).
.
Creating a college major in "software testing" would be as silly as making a college major in "Oracle Database technologies + usurpation of JAVA 2009-present". Too fucking specialized and not generally educative / educational enough. The author did not make the most of her college educational experience herself if she does not recognize this essential difference.
[..] a piece of paper from college does not prove anything actually at this point[...]
Amen to that..
except that you are a sheep that goes to the slaughterhouse with the rest of the herd.
Whoops and now you sound silly.
What is the difference? (I probably should know this.)
All of the "new" ideas in software testing have been used in the quality managment and industrial engineering fields for at least the last 50 years. Instead of the latest "TDD BDD xDD in a nutshell" garbage, read about Sarasohn + Demming. Forget about "agile" nonsense garbage and instead read about proper INCOSE Systems Engineering.
Am I alone in thinking that development and testing should go hand in hand? A developer needs to write his own test cases for unit testing, write stub code to test them out, work with the team to get the integration test cases ironed out.. with someone from the automation team just providing support for writing test vectors. Of course, this is just wishful thinking. In real environment, the developers barely get time to do some real UT, IT testing consists mostly of test cases that the a separate team of testers thought about and tests to check the bugs reported by the users in the last release. This decoupling of development and testing introduces a chasm where the bugs slip through.. and thanks to the crazy deadlines, it is not going anywhere. Let us not further widen this gap by teaching testers differently. Testing is an extension of development and should be handled as such.
I don't see the basis for a B.S. in Software Testing... it's not a broad enough discipline or practice
Within a C.S. Curriculum, you would need to take the core courses - applicable pretty much anywhere...including
- Data Structures
- Compilers
and a number of electives. All the relevant math courses... including Calc. I, Calc II, Discrete Math, Linear Algebra, probability, statistics, and others...
I see software testing fitting in a as a possible elective after all 2nd and probably most 3rd year/required courses were completed. I wouldn't feel someone would be capable of understanding how to properly test software (in general), unless they already had the math and cs basis for computer science down first.
There are also colleges/universities offering a B.S. in Software Engineering. Again, I don't see the value of teaching software testing until they understand how to composes and architect sw systems properly.
When I was doing my masters in S.E., I did take a class in software testing. One of the textbooks was written by Dr. Musa. There was some significant use of math involved, and other texts as well. It wasn't a simple hands-on class to see where software integration would experience faults due to mismatched parameters, etc. The class covered a significant amount of substantial material in one semester. I don't see the (general) need for more than this - and if a student wanted to specialize in this at a graduate level, a special/independent - study would probably be the best way to achieve this. If there were demand, a Software Testing II could be offered. But, I don't see any basis for it to become even a 3 or 4 course concentration.
(same guy, backup account)
Silly? So you think it is not silly to incur a huge debt rather than going to work right away and not getting into debt but instead getting experience, using the same 4 years to gain knowledge at work?
Well, if that's silly, then fine, call it that.
I DID go to university, but I only took 7000 of debt in the first year, found job in the profession in that first year, started working and was working all the way through the 5 years (I took a bit slower). I paid off the 7K in the first year after finishing the studies.
If I had take a house sized mortgage, I would not have gone at all, I would have just found that SAME job that I found in the first year and kept doing the same thing. I was making 12.50 an hour for the first year and a half, then 16 bucks, then 25, then 40.
By the time I finished I had an 80K salary and bonuses. I quit the job and went for contracts, doubling the rate right away.
What's the difference for me, I could have done EXACTLY THE SAME THING without college, except I would had more sleep and fun during those same years.
MY OTHER COMMENTS
Validate for completeness (are we doing the right things? all the things required?), verify for correctness (did we do things right? did we implement the design correctly?).
I'm guessing that a fair part of the readership here are creative developers, who specialize in finding solutions, elegant code, clever hacks, etc.
For those of us, testing sucks. The "fun" is in finding that it can be solved, actually solving the problems to the satisfaction of happy users is deadly dull.
What a degree or certificate in Software Testing would do is help properly select for the type of nit-picking douchebags that are capable of sinking their teeth into an intractable bug, and making sure it gets found, characterized, and fixed or warned against (e.g. don't tell anyone that if you switch games you can get a 10X payout).
It's a similar case to Project Management -- a different class of nit-picking douchebag that has to wheedle us into getting work done on clear goals, rather than exploring the interesting parts of the APIs or rasterbating a stylesheet into getting those prompts to line up in a more pleasing way.
Design for Use, not Construction!
We were having an interesting discussion about this at my company last week.
I have been writing harnesses and scripts for testing code for decades. Some have been CLI, some have been GUI harnesses. Some have executed pre-written series of commands, while others have relied upon me sitting down and entering a bunch of test stimulus.
I have always referred to these as "unit tests." I've gotten pretty good at writing decent code, using these "unit tests." It's maybe not always textbook perfect or mind-blowingly awesome design, but I have very, very few bugs.
However, I have been told -quite firmly- that these are no longer considered "unit tests."
In order for them to be considered "unit tests," they now have to be CLI constructs, specifically written as alternate targets in the IDE/development system.
It is a common misconception that testers are failed developers.
pushing human culture forward; fostering the next new thing; getting humans out of the stone age; ensuring that the next generation of humans knows more than the previous one. It's not about job training.
But then you'd actually have to pay them like developers.
Many testers are. Correction - many good testers are.
Do you really want to graduate from college, after paying all that money, and have your primary skill set be "to develop system diagrams, build complex SQL, run log analysis, set up a cloud test environment, and write automation scripts?" That sounds like a couple semesters at DeVry.
Agreed. Computer Science is what you learn in university, programming and use of products (such as SQL) is self-learned. If you can't self-learn, you go to Devry.
I will never again hire a software developer who comes to me without experience in testing. And I don't mean writing a couple of unit tests for her senior capstone project. I need people who understand that their job is to make sure I can do mine. I can't do my job with software that hasn't been tested; my job isn't to test the software. If CS programs provided an option to minor in testing infrastructure or something similar, then I would hire right out of a BS program. But until that's the case, I'll be hiring software developers who've successfully built testing environments in the real world.
Everyone downmod roman_mir's sockpuppet. KTHX.
It's about starting kids on a path that will take them through the remaining 70 years of their lives
No that is what grade school is for. By the time your 18 your a little to old to learn life leasons.
I'm getting pretty sick of everyone shoving specific job stuff into undergraduate programs (this has gone out of control lately in my home state, to the extent that the new Governor has been caught agreeing with some local nutcases that some liberal arts programs should not be part of the state university system just because they don't obviously lead to jobs). We have a place for job-related courses. It's called Community College. I've noticed that some folks with bachelor's degrees have been taking very specific job-related courses at local community colleges and successfully applying those new skills. There's still a little stigma about attending CC after having 4 year degrees, but hopefully that's going away, because it's absolutely the right place for it. I'm only intimately familiar with the CCs in NC and VA, so maybe that doesn't fly so well elsewhere, you tell me. Please stop trashing universities with the "Jobs! Jobs! Jobs!" chants.
Testing work is seen as a horrid job in my opinion. I see more tester jobs posted than any thing else in my field due to turnover and a reluctance to fill the positions from within the company. What makes the matter worse is that since most engineers will only apply for the positions when they have no other option so it attracts B grade talent. Given this I would not higher someone with a Software Testing degree since I would see them a low grade talent no matter their performance.
To reduce the test team size and tighten the schedule I instead push for test driven development. The tester team should only have to pass off one the tests that the engineers already developed and crack the whip.
Nothing "requires" a PhD or MS, unless you're too dumb to learn on your own.
Make it industry standard that software needs to be tested by a certified tester. Then make a certification system/test that testers can take to be certified to test software.
EXACTLY. These MBA types (like the author) all over these days don't want to actually do anything for their inflated salaries. Cost externalization is their main dogma. Short term planning is also a big problem. They don't care if education is destroyed or if their whole company goes under as long as they maximize the benefits during their tenure. (I know MBAs, they develop a talent for shifting responsibility. They'll blame the market when an economic hiccup puts their over-leveraged business into bankruptcy. )
Part of the job of management (traditionally) is to deal with employee training and attempt to RETAIN employees they invest in. They all want to make employees disposable human resources and that is at the heart of their whole MBA religion. They forget that competition and making money is NOT the sole purpose - the system was the best thing we had for uplifting society (it has changed, it is not the same as it was.)
Most jobs are unnecessary and we have far too many people needing jobs; so we engineered a consumer society (post WW2) to invent meaningless jobs. Despite all that effort, we still have almost 2 billion in poverty, because we have too many people and not enough resources to keep them all busy making disposable shit to feed socially engineered consumer addicts. You can't fix poverty because its a symptom of the over-burdened system. If you don't want communism or whatever comes next you'd be for employing people at jobs machines can do instead of making millions work like slaves in order to undercut the machines... the machines will eventually surpass serf labor in all sectors and make inroads into "thinking" jobs like general medical practitioners (they'll still need cheap nurses.)
The truth sucks doesn't it? Ignore me and go shopping and watch your "reality" TV you'll forget all about it by tomorrow... Ignorance is bliss until reality surprises smacks you in the face. You'll be outsourced or automated...or layed off for a younger person who only knows SQL but doesn't understand database theory.
Democracy Now! - uncensored, anti-establishment news
I manage an office full of University students that are doing a wide variety of QA /Software Testing/ Development for our clients. 26 students working 20 hours a week while attending class. The kids are eager to learn and out perform the full time employees of the client 75% of the time. We have 5 offices with almost 150 students through out the Midwest, with rates that are competitive with off shoring. When the student graduates the client has the opportunity to hire a completely trained employee. It is a model that we can drop into any school for any company in the US.
I'd say a course specializing in testing procedures would be excellent. I'd even go so far as to say it should be part of the required curriculum. But I'd say an entire major in this would be overkill. It might even limit future career growth.
That is what they are there for among other things. I was one quite some time ago and even then much of that was included.
However, I get where you are coming from, some of the advanced testing might be missing. This is gained from work experience.
The main problem isn't education, it is a corporate culture that has testing as an after thought. Usually rushed, and basically garbage. So yeah, if you hire a bunch of inexperienced low paid labor to do all your testing, then look out. Additionally project lengths, and rushed development doesn't help either. Employers have said the same thing for years: "You should build a university degree, so when they graduate they can do all the things someone with 10 years experience can do!" Doesn't work that way.
I do a fair amount of testing myself. By the time it gets to me, it should have already been tested by the contractor developer, and the also by the internal systems folks. I should only be finding the really hard stuff to pin down. However more often than not everything seems to fail, basic stuff. It really makes me mad, as it is a huge waste of my time to continually send stuff back, after clearly identifying an issue and documenting it, then having it returned to me as "fixed" only to repeat the procedure on the same issue ad nausem. I can't even understand how the developer is even coding, when it doesn't run at all, and simply trying would identify that. Not to mention that it supposedly goes though a battery of standard testing at the system level, but they don't seem to actually catch anything.
Anyway as I said, I don't think it is an education thing, but a corporate culture thing, and I can't see that improving unless priorities are seriously re-evaluated.
Software testing is a component of Software Engineering and need not be a separate major. Fragmenting Computer Science into too many sections is not an advantage. I see Software Engineering as the applied science arm of Computer Science and therefore encompass Software Testing.
Come on.
Software engineers seldom get the chicks.
You think software TESTERs are going to do any better?
Colleges offer majors to address a market. How big is the market of high school juniors slavering to become testers?
How about ZERO?
There really needs to be a software engineering major too. Where I went to school, the CS curriculum really didn't cover how to break problems large problems down into logical structures and pieces manageable by small teams, or how write maintainable code, etc. And from talking with others, I gather this is pretty true for most colleges. So don't feel bad.. .it's not just the testers that lack formal education... the developers are often self-taught or learn on the job as well.
No more crossing your fingers that this eager young face in front of you can really pick up those skills
Sorry, but that's the case with any inexperienced new graduate, regardless of the major. You simply can't tell from a diploma alone whether or not someone is going to succeed.
Apparently wizard is not a legitimate career path, so I chose programmer instead.
Most of the QA engineers I know (even the good ones) got into QA through tech support. It's simply a natural step up if you succeed in tech support and are looking for a better job. It's not a job that anyone really aspires to, it's just a decent job that you might enjoy doing if it's already in your career path.
Apparently wizard is not a legitimate career path, so I chose programmer instead.
No, I mean it's silly to say that getting a college degree is akin to "sheep going to the slaughterhouse". I agree that college degrees aren't really worth much.
You just sounded silly taking a fine statement and stapling some hyperbole with it.
Also, backup account? wtf?
B...brain surgeon?
A Software Engineer should have the full software life cycle, which includes testing.
Problem here: Not everyone is suited for testing (many hate it, are not good at it, or are just lazy and don't bother).
Further: A degree in CS doesn't necessarily make you a good programmer
and there are no majors for that in college, either. Quality has always been assumed in engineering. CS, if its associated with the College of Engineering, has simply adopted this blind eye to Quality. I dunno why.
andy
we need to rethink the old college system and not stack more on to it with out changing some stuff at the base level.
IT / TECH needs to have some kind of apprenticeship system and at least some kind of tech / trades school / badges system that is not a fixed 4+ years plan loaded without all the filler and fluff that comes with the old college system.
also the curriculum and the teachers in college can be far from real work settings with lots of theory that can be very top level or very low level (in places where for lot's of tech jobs is not as helpful as learning more hands on skills)
I disagree with the conclusion of the article that we need yet more specialization. That said, I do agree with an issue hinted in the text: hiring managers can be lazy and cowardly. Instead of seeking candidates that are smart, versatile, and industrious, they are looking for buzzword matches between the rec and the resume. They are lazy because it is very hard work pouring through big piles of resumes looking for such versatility and intelligence, and they are cowardly because hiring a buzzword match is more defensible to their managers should the candidate wash out. The "he looked good on paper" defense is the last retort of a manager forced to admit they made a hiring mistake.
Computer science as a field of study has grow too large for any four year program to prepare a student for everything. But, that should not be the aim. The degree should not be a "union card" that says the candidate should be effective in this narrow toolset or that. The degree should be an indication that the candidate can move, perhaps with effort, from niche to niche as necessary. Work history on the resume should confirm this.
Students/candidates/programmers must be willing to do the drudgery as well as the exciting. They must continue to learn technologies that are key to their employers success--or search for a new employer. Understanding software testing methodology, requirements capture, configuration control and release engineering objectives, and everything else that would make dull party conversations should be a requirement for all engineering resources, not just those few who test, release, or specify software.
Overspecialization and compartmentalization is crippling the industry. Building intuition and skills across the board for all engineering resources is the better answer. Recognizing those skill during candidate searches by hiring managers, even if the buzzwords don't completely line up, completes the circle.
It is already taught (although mainly theory) in most decent universities. Software engineering courses usually cover testing. There are only 4 years in the Undergrad study.., not enough time to go too specialized, and you don't want to pigeon-holed people at that stage (i.e. young adults)
I own a (very small) company specialised in testing. The thing is, the craft itself is very much in development. There are methods such as ISTQB and TMAP. These are however under heavy debate by the concept driven test 'school' as too commercial and outdated. So what would you teach them? Perhaps BBST?
Regardless, the motto of my company is that you can teach a technically trained/educated person how to test. But it is much harder to teach someone trained in testing to be a technician. And there is a big demand for technical testers.
I would advocate a class in testing, but for an undergraduate major in my view there needs to be more consensus on what good testing is. Such a class would be a good addition especially if you don't want to be a tester. It is good to realize it is not just 'trying if it works' or if you can break it. But in all fairness, the basic ideas behind things like the V-model, testing techniques (as debatable as they are) should be enough for those who do not want to be tester. If well educated person decides to become a tester the rest can be done via courses and following and participating in the debate on what professional testing really is.
---
> Imagine the power of being able to hire a recent college graduate who has been taught how to develop system diagrams,
Using which tool?
> build complex SQL,
For which implementation?
> run log analysis,
On which platform?
> set up a cloud test environment,
On who's cloud stack?
> and write automation scripts.
In which language?
Sure, it would be great to hire someone who could do all that right out of college. But 5 years later, he'd be unemployable because all the specific skills he learned will be obsolete. What is he supposed to do then, go back and get another BS in software QA?
Hire people who know the fundamentals. Choose people who can learn new skills. Train them.
Sure, they won't know the specific tools and environment your particular company uses. But you have to invest in people to get the most out of them. The more highly specialized the job, the more time and money you need to invest in training them. If you concentrate on hiring those who can learn, rather than those who happen to match your particular requirements at the moment, then they can do more than just the one job on the current project. Imagine not having to fire people when the project is over, but instead just move them to something else, even if it requires a different skill set.
> No more crossing your fingers that this eager young face in front of you can really pick up those skills,
> and no more investing so much time and money in training them on the job. We ask no less from
> Technical Writing and Development. Why do we have such different expectations for one of the most
> important functions on the team?"
If you can't tell whether or not the person you are hiring can learn the skills needed to do the job, you need to revise your interview process. Sure, there's no 100% way to tell the gems from the lemons, but you should be able to consistently identify applicants who can do the job.
The fact that development jobs often demand a high degree of specialization is, IMHO, a bug, not a feature.
Perhaps because they have been or already are developers. Any good developer is already a tester, engaged in Test Driven Development, using xUnit family of tools, running their tests continuously with CI.
If he's on the ball he's using Behaviour Driven Development to script complex scenarios that function as both his development and test harness.
He's testing his Web Services integration with tools like SOAPUI + Groovy from Smartbear from the article and using it to do dynamic mocking for both the client and server.
He's targeting the end system, using tools like WebDriver to execute his test scripts using all the major Browers, IE, Firefox, Chrome, Opera and Safari.
If he's doing all that and running his tests from the cloud to load and performance test the SUT; he might just have the technical skills to match a typical automated test engineer.
Anybody that thinks testers today are just using the Application is frankly cross ignorant of what is happening to automate the test specialism.
Test automation is the undiscovered country for developers that have done it all before a dozen times.
Also, backup account? wtf?
- look at the comment above yours in this thread and follow the links to my accounts, you'll know.
Why would a US university develop a BS in software testing when all those jobs will be outsourced to Bangalore, Shanghi, or Moscow long before anyone in the US could finish the program?
American business are so narrow minded they refuse to use American workers who are already trained and knowledgeable enough to do these jobs. The only reason to have anyone major in software testing has more to do with the fact no other part of the industry still exists in the US. Let CS departments either shut down or merge back into math, physics, engineering, or accounting.
With undergraduate unemployment rates at 50% in the US why does anyone want a Bachelors degree in anything? Anyone who has a brain knows the Math-Science-Engineering-Technology shortage is manufactured by business morons and the glorious chamber who aren't even smart enough to know what they have done! Spare all of us the whining, shut the department down, and spare our children the expense of an education they will NEVER actually be able to use, or pay for.
There is NO possible way anyone with a technical degree will be able to find a job with the US Congress poised to pass laws disguised as immigration reform which allow 250,000 more H1-B visas per year.
Post enough idiotic flamebait, and you can't post anymore for a while.
roman_mir is just doing us all a favor to make sure he has spare accounts so he always has a mouthpiece for whatever important idiotic flamebait he must spew.
Amen. There were engineers before there were accredited engineering programs. There were business professionals before there were business degrees. How was that even possible? Universities taught students to think well. After that, anything was possible.
When a project is late, why have a major in the first thing that is going to get cut?
Since most companies have this stupid idea that you just get people who aren't couldn't hack being a developer to do QA. (And pay them accordingly. QA people have to be as smart as developers to do a good job.)
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
While a CS degree is probably overkill for the types of skills the author is describing, a Mgt Information Science/IT degree is probably about right. They usually have better communication & biz skills than a CS grad and have had enough programming exposure to handle the tasks mentioned.
Anyone who would describe what they learned in college as "starting...on a path that will take them through the remaining 70 years of their lives" is a fucking liar or delusional. What classes did you take that taught you anything about how to live? I seem to remember a lot of classes on testing, design, computational theory, and mathematics, but shockingly few(0) about what to do when I'm 23, much less 90.
Whatever, I guess your emotional fetishization of the liberal ideals of the education system is incredibly 'Insightful'. Every impractical part of the education system is supposed to be there for the intangibles, unless it's something conservatives believe in, then we need to stop wasting money on things that don't produce results. Not that I'm a supporter of abstinence education, but it's amazing how that NEEDS to produce qualitative results, but when a technology education isn't doing that, "well it's not even supposed to anyway, college isn't even about that."
About 9 years ago, I applied for a job at a community college -- I even got a haircut, as it was a management type position. My reason -- the position would have some say over curriculum development.
Just like there's no structured job training for 'software tester' there's also none for 'system admin'. Yes, there are certificate courses, but how do you know if someone breezed through it, or just managed to pass it after taking it 12 times? Some of the best sysadmins I know had degrees that had nothing to do with IT. Some were problem solving (engineering, sciences), others were drop outs (one worked construction for years).
The only ones I know who have certifications are either (1) completely useless; (2) do consulting work or (3) did it because their job required it or promised them a promotion for it. For Oracle DBAs, class #1 wins.
Some of the best sysadmins I know worked progressively more difficult jobs, more like you'd expect in the trades than in university education, but don't have some piece of paper from some institution claiming they actually know anything.
My hope was to pull those taking comp.sci courses, recruit those that had the right personalities for the work, and build up an internal pool of candidates, have 'em work various jobs maintaining the local systems, then place 'em in the various businesses / government agencies in the area (DC metro).
But I never called back for that interview ... oh well ... maybe it's for the best. I still think that community colleges and the like are better for this sort of thing -- 2 years to completion vs. 4 means that you can better respond to the needs of the prospective employers. And some of these tasks are just better taught on the job rather than than sitting in a class reading books about the perfect implementation (that will take forever to build or be too expensive).
Build it, and they will come^Hplain.