Complete IT Professional http://www.completeitprofessional.com Helping New Software Professionals Get Ahead In Their Careers Mon, 29 Sep 2014 11:30:53 +0000 en-US hourly 1 http://wordpress.org/?v=4.0 How To Become A Web Developerhttp://www.completeitprofessional.com/how-to-become-a-web-developer/ http://www.completeitprofessional.com/how-to-become-a-web-developer/#comments Mon, 29 Sep 2014 11:30:53 +0000 http://www.completeitprofessional.com/?p=2902 Continue reading …]]> How To Become A Web DeveloperAre you interested in becoming a web developer? If so, you’ve found the right place for information. Learn more about this exciting career path in this article.

What Is A Web Developer?

First of all, let’s go over what a web developer is.

A web developer is someone who programs web sites. They write the code, whether it is to display a web page using HTML or to perform complex functions using PHP or another language. They may also need to access a database or other systems in order for the web page to work correctly.

As you might have realised, there are many different languages that a web developer can use. HTML, CSS, JavaScript, PHP, .NET, SQL, and many others. This makes them versatile but also means they need to learn a lot more than other developers.

Web developers may also need to learn design skills, depending on the kind of work they want to do. There is a whole different area of developing web sites related to the design work, which is usually done by Web Designers, but for some small projects or clients, the web developer often does that work as well.

Hopefully that has cleared it up. Let’s get into what you need to do to become a web developer.

 

You Don’t Necessarily Need a Degree

Web development is one of the few IT roles that I’ve noticed that you don’t actually need a degree for. This might be a good thing for many of you, as I’ve had a lot of questions about getting into IT without getting a degree.

Now, this isn’t a firm rule. I’m not saying you can definitely get a web development job without a degree. I’ve just noticed that it’s possible. Many other jobs, such as software development and project management, usually require a degree in Computer Science or something similar. Web Development, on the other hand, can be achieved with experience.

 

Learn the Languages of the Web

The first step on how to become a web developer is to actually learn the required languages. If you haven’t gone to university or college to get a degree, then there are many other ways you can learn the languages needed.

HTML is the big one. It’s what all web pages use to display content. You can learn this in many places – either online, using a textbook, or in a short course. Other languages, such as CSS and JavaScript, can also be learnt using similar methods. W3Schools is a great place to learn the basics.

If you’re interested in getting educated but don’t want to spend the time and money on a degree, you can look into a short course. Here in Australia we have shorter courses, that go for a few months, that can teach web development skills (and many other skills). Other countries may have similar courses.

 

Get Some Experience To Learn How To Become a Web Developer

One of the biggest tips I can provide for how to become a web developer is to get some experience.

When I was younger, I was looking for a bit of extra money and some experience developing web sites. I ended up creating a couple of simple websites for people. I don’t think I even charged for them either – I did it for free. They were for friends and I was more interested in getting the experience instead of making a bit of extra money

So, if you’re looking at becoming a web developer, I suggest getting some experience. You can do this by looking for some volunteer work, by offering your skills for free to develop web sites, in exchange for the learning experience. You can do this in a few ways:

  • Ask friends if they need any websites built
  • Ask your family if they need any built for themselves or for their workplace
  • Find some badly-designed websites and send an email to the owner (this might have a low success rate, but it’s worth a shot)

 

Start a Side Project

Another great way to learn how to become a web developer is to start your own side project. This would be a website that you create for yourself. You can use the skills you’ve developed and learnt earlier and put them to use on an actual web site.

You can either create a public facing website (by registering your own domain name and getting it hosted), or create one locally (by using WAMP or another kind of local development environment). Both of these methods are a great way to improve your skills and to show future employers and clients the quality of your work.

If you’re going to use a local environment, I would recommend also getting some kind of hosting and a domain name. It’s a good idea to be able to show your work to possible employers and clients, and it’s easier to do this if it’s available publicly. It’s easier to point them to a URL instead of showing them how to install a development environment!

 

Get Certified

If you want to go that extra mile and put in a bit more work into becoming a web developer, you can get certified. This is a great way to stand out from the rest of the industry and those who are not certified.

Some of the more common certifications are those offered by Microsoft. The MTA (Microsoft Technology Associate) is a great place to start, and includes a unit on HTML5.

Once you achieve the MTA, you can look into getting the MCSD (Microsoft Certified Solutions Developer), which is an advanced certification for developers.

Getting certified will demonstrate that you have a certain level of knowledge on the chosen topic, and show employers and clients that you’re dedicated to your career, and not just something you do on the side.

 

Well I hope these tips have helped you learn how to become a web developer. If you have any other questions, use the comments section below.

Career Action Tip: If you’re interested in becoming a web developer, set up your own local development environment and practice your skills.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of tiramisustudio / FreeDigitalPhotos.net

Share and Enjoy

FacebookTwitterDeliciousLinkedInStumbleUponAdd to favoritesEmailRSS]]>
http://www.completeitprofessional.com/how-to-become-a-web-developer/feed/ 0
Business Requirements Document Template and Explanationhttp://www.completeitprofessional.com/business-requirements-document-template/ http://www.completeitprofessional.com/business-requirements-document-template/#comments Thu, 25 Sep 2014 11:30:04 +0000 http://www.completeitprofessional.com/?p=2893 Continue reading …]]> Business Requirements Document Template and ExplanationA lot of the questions I get asked, both on the site here and at my job, is about document templates. One of the more common templates is the Business Requirements Document template. I’ve created one for you to download in this post.

What Is A Business Requirements Document?

First of all, let’s discuss what a business requirements document is.

This document is used in software projects to detail the requirements of a project. It is usually written by the business analyst, and after they discuss the project with the stakeholders, they slowly complete this document.

The aim is to provide a clear understanding to the team what is being delivered and what isn’t.

I’ve created this template based on best practices, and some good documents I’ve seen over the years.

You can also download a Word document version of this template at the end of this post.

 

What Goes In A Business Requirements Document Template?

A good business requirements document template has many sections. The template I’ve prepared here has these sections ready for you to fill out. The sections are:

  • Title Page
  • Table of Contents
  • Executive Summary or Document Purpose
  • Project Description
  • Project Scope
  • Business Drivers
  • Current and Proposed Process
  • Functional Requirements
  • Non-Functional Requirements
  • Glossary
  • References
  • Appendix
  • Document History

Let’s go into more detail in each of these sections.

 

Title Page

The title page is the first page that the reader sees. It contains the title of the document, and the document type, in large font. This way the reader can tell exactly what they have opened.

In my template, I’ve included a few extra pieces of information which I think are helpful for the reader:

  • Author: Who wrote and prepared this document
  • Version: The version of the document, such as 0.1, 0.2, or 1.0
  • Date: The date the document was last updated.
  • Document ID: An ID number that may be determined by your document control system.

These can all be filled in by the author, and they are on the first page so they stand out to the reader.

 

Table of Contents

Next comes the Table of Contents. This is one of the most valuable sections in the document. I’ve seen so many documents that leave out the table of contents, and in my opinion, it should be in every document.

The table of contents is automatically generated by Microsoft Word. This means you don’t need to manually enter in the headings and pages. It should already be done for you. You just need to create it once, and update it when you’ve finished. In my template, the table of contents is already there.

The table of contents in Word links to heading styles, so any headings you add into the document will get updated in the table of contents.

 

Executive Summary or Document Purpose

This section can either be called the Executive Summary or Document Purpose. They are both pretty similar.

The aim of this section is to explain what the document is for. Why was it written? What is the point of the document? If someone hasn’t read the document yet, what are they going to find here?

It should be a short section, usually a few lines or a paragraph, that explains the purpose of a document. For a Business Requirements Document, this should be almost the same for each project, and I’ve included a sample in my Business Requirements Document template.

 

Project Description

This section will describe what the purpose of the project is. What is it trying to achieve? Why was the project started? What is the aim?

It might explain the current situation, issues with the current process, why the project is being done, and any references to legal or regulatory requirements if they apply.

This section is usually two or three paragraphs long.

 

Project Scope

The Project Scope section of the business requirements document template is a high level overview of the scope of the project. It lists what is being delivered by the project (in scope) and what is not being delivered (out of scope).

It should reflect the business requirements, but not be a copy and paste. It should be a high level description, so that someone can read this and see roughly what is being done.

If requirements change over time, then this scope section should be updated.

 

Business Drivers

All projects need some kind of reasoning behind them to support why they are being done. Why is this particular project being done? Some possible answers are:

  • Improve sales revenue
  • Improve efficiency in an existing system or process
  • Upgrade of an older system
  • Reduce time or costs in a current process
  • Regulatory or legal requirement

This section can also be expanded with the actual numbers and statistics as to why it is being done. Possible revenue along with the calculations, details of manual processes, cost savings, versions and features and why they are needed, and so on. This information will help the reader understand why the project is being run.

 

Current and Proposed Process

These sections, the Current Process and Proposed Process, detail how the current process performs in the business, as well as how the process will perform after the project is completed.

These processes can be described using either a list of steps, a table, or a diagram. Personally, I prefer diagrams, as they are easy to read and visualise.

I usually do my diagrams in Microsoft Visio, but if you don’t have that installed, you can try Microsoft Word itself, or another diagramming tool.

 

Functional Requirements

This sections is the main section of your Business Requirements Document. It includes all of the requirements of the system, which is each of the functions that it needs to perform in order for it to be successful.

The functional requirements section has a list of priorities. Each requirement is given a priority. These priorities indicate the importance of each requirement, which is helpful to the project team when determining what needs to be done.

My Business Requirements Document template has a table of five priorities, from Critical all the way down to Future Requirement.

The Functional Requirements section is broken down into sub-sections. This is so that the requirements can be grouped up into their logical areas. This also makes it easier to read and easier to identify the requirements. You’ll see what I mean in the example template.

 

Non-Functional Requirements

The Non-Functional Requirements section of a business requirements document contains all of the requirements that don’t relate to functions the system needs to perform. These are typically things that can be measured, such as:

  • Response times
  • Load times
  • Availability
  • Handling of concurrent users

These are also to be defined by the project team, as there may be certain criteria that needs to be met that hasn’t been specified in the Functional Requirements section.

 

Glossary

In many documents, including the Business Requirements Document, there are a lot of terms that are used that can be confusing. System names, acronyms, technologies, and tools are some of the terms that not everyone may know about.

The Glossary is where these terms are explained. This section includes a list of all acronyms, systems, tools, and anything else that may be specific to this project or company, that the reader may not know about. Add in the term, as well as the description, in this section.

 

References

The References section is a small section, but it contains links to any other document or source that you have used in the business requirements document. This could be:

  • Documents on your central document control system
  • Web sites
  • Network locations

The usage of this would depend on how your company or team operates, but I think it is a valuable section.

 

Appendix

The Appendix section contains any extra information that could not go in the sections earlier in this document. It could be screenshots of systems, specifications of software, project timelines, or any other information.

The main thing to be aware of with the Appendix section is including information here instead of a reference. It’s better to include larger documents and certain kinds of information in a separate document. This is so it can change easily outside of this document, and reduce the file size.

 

Document History

This section contains a table that lists changes to the document over time. Each line has a version number, starting at 0.1 and increasing by a minor version number at each change (0.2, 0.3, 0.4 and so on). The name of the person who made the changes, a summary of the changes, and a date, should all be added here.

When a version is published and approved, then it should be increased to a major version, such as 1.0. This means it is consistent and is a signed-off version.

This section can indicate what has changed in a particular version, and who can answer any questions about those particular changes.

 

Here’s The Business Requirements Document Template

So, I’ve explained the sections inside the document. Here’s the link to the actual Microsoft Word document that you can use for your own BRDs:

Business Requirements Document Template

It’s a Word document, with the extension DOCX, so it should work in all Word versions from 2007 onwards. I believe any other program that can work on these, such as Google Docs and Pages for Mac, should be able to open it.

 

I hope this article has been helpful, as well as the template. If you have any questions or problems with the template, leave a comment here and let me know.

Career Action Tip: Download the template above and use it for your next BRD.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

 

Image courtesy of Stuart Miles / FreeDigitalPhotos.net

Share and Enjoy

FacebookTwitterDeliciousLinkedInStumbleUponAdd to favoritesEmailRSS]]>
http://www.completeitprofessional.com/business-requirements-document-template/feed/ 0
How To Earn More Than The Average Business Analyst Salaryhttp://www.completeitprofessional.com/business-analyst-salary/ http://www.completeitprofessional.com/business-analyst-salary/#comments Mon, 22 Sep 2014 11:30:54 +0000 http://www.completeitprofessional.com/?p=2886 Continue reading …]]> How To Earn More Than The Average Business Analyst SalaryBusiness analyst roles vary in experience and salary. If you’re interested in earning more than the average business analyst salary, find out how in this article.

I wrote a post recently about the average Java Developer salary, which had a lot of interest and was something I enjoyed providing to you. I’ve decided to follow it up with a similar post on the role of a business analyst.

 

What Is The Average Business Analyst Salary?

Using the same source as the Java Developer salary article (which was Indeed.com), I discovered some information about business analyst roles.

The average Business Analyst salary in the US as of September 2014 is $76,000.

This number is lower than the Java Developer salary, but I’m not sure why. It could be that there is more demand for Java developers, or that they are more experienced, I’m not sure. Let’s take a look at the breakdown of these numbers by job role.

Senior Financial Analyst Television $          87,000
SAP CO Business Analyst $        102,000
Marketing Analyst $          31,000
Net Java Analyst $          71,000
Senior IT Analyst $        128,000
Contract Analyst Sign UP $          24,000
Online Trader $          20,000
Microsoft Business Intelligence Analyst $          78,000
Technical Business Analyst $          89,000
Business Data Analyst $          64,000
Business Analyst $          73,000
IT Business Analyst $          79,000
Junior Business Analyst $          51,000
Business Intelligence Analyst $          80,000
Intelligence Analyst $          11,000

 

This table lists all of the business analyst-related roles on Indeed.com, and what their average salary is.

 

What Does This Data Show Us?

Let’s take a further look into this table.

  • Senior Financial Analyst Television – this is not a business analyst role, it’s a financial role related to television, so this may be swaying the numbers.
  • SAP CO Business Analyst – this is a BA role with SAP CO, which is the Controlling component within the SAP system.
  • Marketing Analyst – another role that isn’t related to IT.
  • Net Java Analyst – this is an IT role, but it seems to be a programming role rather than a BA role
  • Senior IT Analyst – yes, this is relevant to a BA and has a very high salary compared to the others.
  • Contract Analyst Sign UP – another role that isn’t related to a BA role.
  • Online Trader – this is a financial role and not related to a BA
  • Microsoft Business Intelligence Analyst – this kind of role is related to databases or business intelligence (BI) for Microsoft tools. Similar to BA, but it’s more to do with data rather than requirements.
  • Technical Business Analyst – this kind of role is a subset of a Business Analyst, and means that the BA needs to know technical skills, such as programming or architecture, and be able to work in that kind of role. You can find out more in this article that I wrote.
  • Business Data Analyst – I’m not sure what this is, or even if it relates to IT.
  • Business Analyst – this is the vanilla BA role, the one we’re looking at here.
  • IT Business Analyst – another name for the role we’re looking at here. Similar to a Technical Business Analyst.
  • Junior Business Analyst – these roles are entry-level roles for business analysts, and are usually for those with less than two years’ experience (depending on how a company labels a junior).
  • Business Intelligence Analyst – similar to the Microsoft BI role mentioned above, but not limited to Microsoft technologies.
  • Intelligence Analyst – I don’t think this is an IT role either.

 

So it seems there is a combination of IT roles and non-IT roles in this list. From the IT related roles, it looks like Junior Business Analysts start at about $51,000 and can move up to anywhere between $73,000 and $89,000, depending on where they choose to specialise and what kind of role they move into.

Interestingly, Senior Business Analyst is not on this list. Perhaps the Indeed algorithm didn’t pick up that job title.

So, there are our roles and salary information. How can we earn more than the average business analyst salary?

 

Get Certified

Getting a certification is one of the best ways we can improve our salary. Certified employees generally get paid more. This is not always the case, as it comes down to experience, but if you were to go and get a certification related to business analysis, then it would really help your chances in getting a pay rise. I’ve written more about BA certifications in this article.

Some of the certifications I recommend are:

  • CCBA (Certification of Competency in Business Analysis) – the first of the two BA certifications by the IIBA (International Institute of Business Analysis)
  • CBAP (Certified Business Analysis Professional) – the second and more advanced certification from the IIBA
  • CAPM (Certified Associate in Project Management) – while not a strict BA certification, learning about project management with this entry-level certification can help your career.

 

Improve Your Diagramming and Documenting Skills

Two of the most used skills by a business analyst are diagramming and documenting.

Diagramming, or the process of drawing diagrams, is a good skill to learn. It might seem easy to whip up a picture to show how something works, but to be able to do so effectively and quickly is something that improves with experience.

Knowing how to draw diagrams that communicate the right message, and do it clearly, is a good skill to learn. Also, learning how to use your diagramming tool of choice (whether this is Microsoft Visio or another tool) is helpful.

Documentation is another big part of a BA’s work. Improving your skills ad writing and editing documents will make you a better business analyst. This comes with practice, and knowing the tool of choice (Microsoft Word, Google Docs, or something else).

Some areas you can look to improve on are:

  • Common functions within the word processor
  • Formatting the document
  • Wording the requirements so they are clear and unambiguous
  • Using the right words where they are needed

I’ve also written an article on some important skills that business analysts should learn, which you can read here.

 

Take Better Notes

Being a business analyst means you go to a lot of meetings, make a lot of phone calls, and speak to a lot of people. As part of this, you’ll need to take notes, both about things you need to do and things that are discussed.

To earn more than the average business analyst salary means you need to be above average at your job, and one way of doing that is to be more efficient, which includes improving your note-taking ability.

Your note-taking skills can be improved with practice, and also with a bit of thought. Some ways you can improve your note taking are:

  • Notes are useful when the meeting is over, so make sure your notes are legible, as you might forget what was said.
  • Mark different points down using symbols as to what needs to be done. For example, mark actions with one symbol and key points with another
  • Use an electronic format if possible. Storing your notes on the computer makes it easier to search, highlight, and read.

 

I hope this article has given you some insight into the average of a business analyst salary, and a few things you can do to improve yours to earn more. What other questions do you have? Share them in the section below.

Career Action Tip: For each of the areas in this article (certification, documenting, note taking), identify one area that you could improve on in your business analyst career.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

 

Image courtesy of scottchan / FreeDigitalPhotos.net

Share and Enjoy

FacebookTwitterDeliciousLinkedInStumbleUponAdd to favoritesEmailRSS]]>
http://www.completeitprofessional.com/business-analyst-salary/feed/ 0
Computer Technician – Your Everyday Superheroeshttp://www.completeitprofessional.com/computer-technician-everyday-superheroes/ http://www.completeitprofessional.com/computer-technician-everyday-superheroes/#comments Thu, 18 Sep 2014 11:30:51 +0000 http://www.completeitprofessional.com/?p=2881 Continue reading …]]> Computer Technician - Your Everyday SuperheroesCan you imagine your life without a computer? I can’t. Maybe 10 years ago, things were a little different but the world has changed and we’re more dependent on technology than ever before. But with all the ease that technology brings, it also summons a whole new breed of problems.

We know how to use technology but we don’t know how to fix technology when it fails us. If you were sick you would call your doctor but if your computer is sick, you call a computer technician. They drop in and save the day—they are your everyday superheroes.

I hold a competent computer technician in highest honor. Sometimes I wonder what it would feel like to have that kind of power to heal a machine. Yet computer technicians are not really magicians, they started out as regular people like you and me. Many of them are self-taught and some have received computer technology training. They do so much more than just fix computers. A computer technician is usually well-versed in:

  • Computer Hardware: They stay updated with the latest computer parts as well as the oldest hardware so that they are prepared for any situation. Since you can’t know everything, they know how to find answers to anything outside their purview.
  • Software: They are able to install programs, clean up your computer, reformat and restore your computer. In fact, they are usually familiar with cell phone technology as well. They can work with Mac, Microsoft and Linux.
  • Interpersonal Skills: The stereotypical computer technician is a nerdy guy who is a little socially inept. Nothing could be farther from the truth. Computer technicians need to have good interpersonal skills in order to succeed. Clients like to be treated respectfully even if their ignorance may be the culprit to begin with.

Can you imagine yourself as a computer technician? If you’re looking for a career, this is certainly a worthy option with an average annual income of $46,000 a year and a high job growth rate. Just like we’ll never run out of jobs for doctors, computer technician jobs are only going to increase. If you like computers and are willing to learn, you can do it.

How would you join this elite task force? You can start by enrolling in a school for computer technicians like Career Step Canada that even allows you to complete your training online in a matter of months. While almost anyone can get trained to be a computer technician, I have noticed that the people who really thrive in this career are those who:

  • Love puzzles: This career is particularly fulfilling to people who love a good puzzle because resolving an issue with a computer is just like solving a puzzle or diagnosing a patient. You see the symptoms and try to figure out underlying cause.
  • Love technology: Technology is changing, progressing as you read these words. A good computer technician always learns what’s new. You really can’t do that unless you are passionate about technology. You have to love it.

If you see yourself as a puzzle lover and technology lover then this is the perfect career for you. Pursue it with all you’ve got and you will not be disappointed!

(This is a guest post by blog reader Frida.)

Image courtesy of Naypong / FreeDigitalPhotos.net

Share and Enjoy

FacebookTwitterDeliciousLinkedInStumbleUponAdd to favoritesEmailRSS]]>
http://www.completeitprofessional.com/computer-technician-everyday-superheroes/feed/ 0
What Is The Software Testing Life Cycle?http://www.completeitprofessional.com/software-testing-life-cycle/ http://www.completeitprofessional.com/software-testing-life-cycle/#comments Mon, 15 Sep 2014 20:47:08 +0000 http://www.completeitprofessional.com/?p=2876 Continue reading …]]> What Is The Software Testing Life CycleThere is a software testing life cycle, or software testing process, that is followed in many organisations and many IT departments when it comes to releasing software. Learn more about it in this article.

The Purpose of Testing

Testing is an important part of the software development life cycle (SDLC), as it helps to ensure that a quality product is built, and improve user satisfaction in the software once it is released. Nobody likes to use software that is buggy or doesn’t work, and this is the aim of software testing – to reduce and remove these bugs.

There are many different types of testing, and they are usually run in a certain order. Your organisation may have different names for them, or run them in a slightly different order, but in this article I highlight the general order that the test phases are run.

 

Unit Testing Comes First

To start with, the developers run their own tests called unit tests. These tests are run on a small scope, against an individual function or module. They check that the code works as expected, and provide all kinds of inputs to the function or module to test what happens in different situations.

Back when I started development, most of the unit testing was done manually. We had to write our own test functions – separate functions to test our main function. These days, there are all kinds of integrated tools for unit testing, such as JUnit for Java and NUnit for .Net code, which allow you to write unit tests much easier.

 

Integration and Functional Testing

Both integration and functional testing are usually done around the same time. Integration testing is where several modules are combined and tested to see that they talk to each other correctly, and functional testing is where modules are tested to see if they meet the requirements. Often these two are combined, but sometimes they are done separately and around the same time.

This part of the software testing life cycle can be performed as the software is built, which means you don’t need the development fully complete for all modules for this part to start. Sure, there might be certain bits of code that don’t yet work, or parts that you need to complete functional testing, but in many cases the testing can begin.

Sometimes they are done by different teams. Integration testing is often done by the developer, and functional testing can be done by other team members, such as the tester.

 

System Testing Uses The Full Solution

The system testing phase is the first phase that needs the entire solution built and ready before the testing can begin. It involves testing the entire system to make sure it works, to make sure it doesn’t break, and make sure that it can be used as designed.

Tests are written for all kinds of functionality, but as it is a kind of black box testing, the code isn’t looked at to develop the tests. The tests are designed based on requirements and then performed.

Many teams have system testing as a deadline or phase in the project, as it involves many people and needs all the code to be built before it can commence.

You can read more about the different types of software testing in a recent article I wrote here.

 

Regression Testing

Regression testing is similar to system testing, but it involves more systems. This phase of the software testing life cycle is where the system testing has been completed, and the system that is being developed is tested against other systems that it interacts with, to ensure that all of those interactions are working as designed.

A lot of the time, software is designed to integrate with other software, and when this is done, it needs to be tested. This is especially true in larger companies, as there are many more interfaces and systems.

The system might work fine on its own, as tested in the system testing phase, but once it gets to regression testing, it needs to talk to the other systems. The other systems will need to have an environment set up, along with the system you’re developing, so that they can talk to each other without impacting live users or customers.

 

User Testing Comes At The End Of The Software Testing Life Cycle

The final stage of testing involves user testing. This is where all of the functionality works as designed and there are (hopefully) minimal bugs, and the solution is provided to the users for their testing.

The users are usually non-technical people. They are the people that the solution was designed for, or business representatives, who represent these users and know the subject area.

The reason the user testing is done at the end here is because the system needs to work before the users get to it. The users or business representatives don’t care about integration testing and unit testing, they just want it to work and need to test it based on their needs and requirements.

There shouldn’t be any surprises or unknowns at this stage, as the users would have been consulted along the way, but it’s good to have them test the solution before it is implemented anyway. They often pick up on things that developers don’t notice.

 

Well, there’s a general overview of the software testing life cycle. If you have any further questions on the life cycle, use the comments section below.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of Stuart Miles / FreeDigitalPhotos.net

Share and Enjoy

FacebookTwitterDeliciousLinkedInStumbleUponAdd to favoritesEmailRSS]]>
http://www.completeitprofessional.com/software-testing-life-cycle/feed/ 0
What Is The Java Certification Path?http://www.completeitprofessional.com/java-certification-path/ http://www.completeitprofessional.com/java-certification-path/#comments Thu, 11 Sep 2014 11:30:03 +0000 http://www.completeitprofessional.com/?p=2871 Continue reading …]]> Java Certification PathAre you interested in becoming certified in Java, but are not sure where to start and where it may take you? This article will explain the certification path for Java, to make it easier for you.

Who Provides Java Certifications?

The company that provides Java certifications is Oracle. Java was originally developed by Sun, but back in 2009, Oracle bought Sun, so now it falls under their group of technologies.

If you’ve been around the IT industry and have some Java experience, you might remember certifications being offered by Sun (and you might even have one). But now, after being acquired by Oracle, Oracle are the ones offering the certifications.

There are many organisations that offer Java training or Java courses, but these are different to actual certifications. They may offer courses on how to learn Java or use it in a workplace, but to become certified means taking one of Oracle’s certifications.

 

What Is The Java Certification Path?

The Java certification path starts at the bottom, with the lower level certifications, and works its way up to more advanced certifications, just like many other providers.

So where do you start? I put together a recent post on Oracle Java certification which answered some common questions, but this post goes into more detail on the actual certification path.

As shown in the diagram here, you have quite a few choices.

 

Java Certification Path

 

Where you start depends on what particular stream of Java you wish to pursue, as well as what version.

Also, what’s interesting about the Java certifications is for some of them, you don’t need to start at the lowest level.

 

Java SE (Standard Edition) Certification Path

If you’re interested in working on the standard edition (Java SE), then you have a couple of choices. Working on Java SE 5 or 6 (which are quite old now) means you can either start with the “Oracle Certified Associate, Java SE 5/SE 6“. Alternatively, if you have a bit more experience, you can go right ahead to the OCP level – the “Oracle Certified Professional, Java SE 5 Programmer” or the SE 6 version, which is “Oracle Certified Professional, Java SE 6 Programmer“. There is no requirement for you to take the OCA for SE 5 or 6 before taking the OCP level exams.

Alternatively, you can start on Java SE 7, which is a newer edition. This means you’ll need to start at the lowest level, with the “Oracle Certified Associate, Java SE 7 Programmer“. This isn’t necessarily a bad thing, as it gives you a reward for studying earlier, and is based on earlier topics.

After getting the OCA for Java SE 7, you can then look at getting the OCP – “Oracle Certified Professional, Java SE 7 Programmer“. You’ll need the OCA certification for SE 7 before taking this exam, though, as shown in the diagram.

There’s also a Java SE 8 certification at the OCA level that has just been released (I don’t remember seeing it there last time I checked), which is the “Oracle Certified Associate, Java SE 8 Programmer“. There are no OCP-level certifications for this yet, so if you’re looking for quick advancement, you might need to wait a while.

Once you have the OCP certification for Java SE, you can move on to the OCM level – “Oracle Certified Master, Java SE 6 Developer“.

You might have noticed this is only available in SE 6. That’s correct. Oracle hasn’t yet created a Java SE 7 version, and I don’t think they will be creating an SE 5 version. But, the OCP for Java SE 5, 6, and 7 will all allow you to attempt the Master level certification. A recent post on becoming an OCM can help explain how you might get certified at this level.

I’m not sure how the Java SE 8 certifications will work in the future. Maybe they will create an OCP and OCM specific for SE 8?

 

Java EE (Enterprise Edition) Certification Path

If you’re interested in enterprise edition (EE), then your choices are a little more limited, but you still have some.

Java EE certification starts at the OCP level, with three choices:

  • Oracle Certified Professional, Java EE 5 Business Component Developer
  • Oracle Certified Professional, Java EE 5 Web Component Developer
  • Oracle Certified Professional, Java EE 5 Web Services Develop

They all currently come in Java EE5, and the only difference is the content.

Also, all of them require any form of OCP certification as a prerequisite. So, you’ll need to get one of the Java SE Oracle Certified Professional certifications to attempt the EE versions.

After getting any of the Oracle Certified Professional Java EE certifications, you can attempt the Oracle Certified Master certifications, where you have a choice of either EE 5 or EE6. The thing with these certifications, though, is they don’t require the OCP as a prerequisite (according to the Oracle website)! So, you can attempt them them without the OCP certification first. This is different to the other tracks, and I may be reading it incorrectly, but I didn’t see any reference to it on the website.

 

Java ME (Mobile Edition) Certification Path

The Java certification path for ME (Mobile Edition) is a little simpler.

You start with any kind of OCP, which means you’ll need to get the Java SE versions first. You can use the Java EE OCP certification, but that will still mean you need a Java SE one first.

From there, you have one choice – the “Oracle Certified Professional, ME 1 Mobile Application Developer“. This is the Professional level certification. At the moment, there is no Master-level certification for Java ME.

 

So, there you have it. The Java certification path is not that complicated. There are a few streams and a few levels, but that is to be expected of such a common programming language.

Do you have any questions or comments on this certification path? Share them in the section below.

Career Action Tip: Decide on the most appropriate Java certification for you, if you’re a Java developer, or looking to get into it.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Share and Enjoy

FacebookTwitterDeliciousLinkedInStumbleUponAdd to favoritesEmailRSS]]>
http://www.completeitprofessional.com/java-certification-path/feed/ 0
How To Earn More Than The Average Java Developer Salaryhttp://www.completeitprofessional.com/java-developer-salary/ http://www.completeitprofessional.com/java-developer-salary/#comments Mon, 08 Sep 2014 11:30:24 +0000 http://www.completeitprofessional.com/?p=2865 Continue reading …]]> How To Earn More Than The Average Java Developer SalaryWe all want to be above average. The kind of people who read this site are those looking to be above average. To stand out amongst their coworkers. To earn more than the average Java Developer you need to know what the average Java Developer salary is. Learn what it is, what’s included, and how you can earn more than that, in this article

What Is The Average Java Developer Salary?

I visited the site Indeed.com to find out what the average salary was for Java developers, and got some interesting information.

The average Java developer salary in the US as of September 2014 is $102,000.

Is this higher than you expected? Or lower? It’s about where I thought it would be, as Java developers are quite valuable.

This number is actually a combination of several different types of roles, which we can see on the Indeed website as well:

Java Developer Software Engineer$71,000
Mobile Application Developer Manager$99,000
Junior Java Developer$21,000
Senior Java Web Developer$95,000
Core Java Developer$82,000
Mobile Lead Software Engineer$111,000
Senior Software Engineer C$110,000
SQL Analyst Developer$61,000
Senior Java Developer$100,000
Lead Java Developer$99,000
Java Application Developer$92,000
Senior Android Developer$115,000
Free Training And Placement$61,000
Java$91,000
Java Developer$87,000

 

What does this table mean?

It’s a list of all the Java developer-related roles on Indeed, and what their average salary is. All of this is included in the $102k figure I mentioned.

 

What Can We Learn From This Data?

So, we have the overall average, and the breakdown for job roles. What does this mean? How can we use it?

First of all, you’ll notice that the Junior Java Developer salary is $21k. That’s very low. I actually had a look at this data and could not see any reason why it’s down at $21k. I mean, maybe if the numbers were taken from lower-earning areas of the United States (as opposed to New York or San Francisco), and it only included data for entry-level positions, then perhaps. But I think this number is still pretty low.

Another thing to notice is that there are different types of Java developers. The roles include those who work on mobile, SQL, Android, and even those classified as Senior Java Developers. Their salaries are quite varied as well, ranging from $61,000 for an SQL Analyst Developer (which isn’t really Java related) to a Senior Android Developer with an average salary of $115,000.

Also, the pure “Java Developer” role, on the last line, is just that. Java developer. No “senior”, no “mobile”, just Java. This salary is $87,000.

Something called “free training and placement” made the list. I have no idea how that got in there!

What can we learn from this? A few things:

  • Mobile developers seem to be in demand. There are a few categories that have Java and mobile-related skills who earn upwards of 100k per year.
  • Senior positions earn more than standard positions, which is something that should not be a surprise.
  • Other areas such as SQL or core applications also have roles available

 

How Can You Earn More Than This Salary?

This salary information is good to know, but how can you make use of it?

How can you earn more than the average salary?

There are a few ways that I think you can achieve this and earn more than the $102k that has been measured here.

 

Gain Experience In Different Roles or Projects

Getting experience in different projects is a great way to improve your skills. You’ll get to learn different ways of doing things, get to work with different people, and have more things to add to your resume. Experience is the best way to earn a higher salary, and even though it’s often  measured in years, getting time on different projects is the way to get practical experience in different areas.

Speak to your team leader or project manager to see if there are any other kinds of projects that you can work on. Try to find projects that are Java related but allow you to learn something else.

 

Learn New Skills

The table above shows that there are a few skills related to Java that can increase your salary.

Mobile development has several roles that have a higher salary. If it’s something you were interested in, or passionate about, you can learn some skills on mobile Java development.

Learning SQL is another skill that can help your Java development career. Learning skills, such as SQL or mobile development, can increase your salary as you’re worth more to a company. You can do more, you are more knowledgeable about different areas, and can hopefully use it to write better code.

 

Get Certified

A certification is a great way to improve your knowledge, skills, and in turn, earn more than the average Java developer salary. Certification for Java is offered by Oracle, and the first certification that they offer is the Oracle Certified Associate. They also offer a Professional level and then the Oracle Certified Master which can all help to improve your career.

Getting certified in Java is helpful. It shows you are dedicated to learning about Java and improving your skills. It could teach you a few things about the language that you didn’t know. It tests your knowledge against a known standard. It also allows employers to know your ability and competence as a Java programmer based against this certification.

 

Change Companies

Another way to get a higher salary as a Java developer is to change companies. Getting pay rises is commonly achieved by moving around companies, as companies often make offers to potential employees which are higher than their current salary, in order to get them to come across.

If you’re not satisfied with your current role or salary, and want something of a change, then consider this option.

However, salary isn’t everything. Job satisfaction and career growth are other things to consider, so have a think about this to determine if it’s something you really want to do, before acting upon it.

 

Hopefully this information has helped you work out what the average Java developer salary is, and how you can improve yours to be above average. What do you want to know about Java development? Post your questions in the area below!

Career Action Tip: Pick one skill that you can learn to improve your role as a Java developer. If you know a few skills, have a look at the Oracle Certified Associate certification.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of Stuart Miles / FreeDigitalPhotos.net

Share and Enjoy

FacebookTwitterDeliciousLinkedInStumbleUponAdd to favoritesEmailRSS]]>
http://www.completeitprofessional.com/java-developer-salary/feed/ 0
What’s The Best Format Of A Resume For An IT Career?http://www.completeitprofessional.com/format-of-a-resume/ http://www.completeitprofessional.com/format-of-a-resume/#comments Thu, 04 Sep 2014 11:30:32 +0000 http://www.completeitprofessional.com/?p=2860 Continue reading …]]> What's The Best Format Of A Resume For An IT CareerAt some stage in your IT career, you’ll need to write a resume. Whether you’re just starting out, or you’re looking for a new job after some time in the industry, getting to know what the best format of a resume is will help your resume stand out and get you the job interview that you want.

What Does The Resume Format Mean?

The format of the resume refers to how the different sections on a resume are set out. When you create a resume, it should include different sections for all of the information you want to include. This is so that the reader (whether they are the recruiter, HR, or a technical team member in the company) knows who you are and can make a decision on whether you’re a good fit for the job.

IT resumes are slightly different to resumes from other industries for a few reasons. We have a lot of certifications. It’s not the kind of industry where we can just finish uni and stop studying. To progress in our career, we need to keep studying and get certifications in different areas. This means that there is often a Certification section on the resume that contains details of this.

There are also a lot of different areas within IT. Because I only really focus on software-related roles on this site, I can only highlight those kinds of roles (development, testing, business analysis, project management, architecture, design, etc). This still means there are a lot of different paths and methods to get where you want in your career.

 

So, What’s The Best Format For A Resume?

I’ve done a bit of research over the years, as well as preparing for my IT Resume Results course, and have found that resumes in the IT industry should follow this format:

  • Name and contact details
  • Objective or summary (depending on your experience)
  • Education (if you are just out of college) or Experience (if you have some experience)
  • Education or Experience (whichever one wasn’t added above)
  • Certifications (if you have a few of them)
  • Other Interests (if relevant)

Let’s go into this in more detail.

 

Name and Contact Details at the Top of a Resume

When thinking about the format of a resume, the name should go first. Your name and contact details should go at the top of a resume. Your name should stand out, so the reader knows exactly who’s resume they are reading. Also, don’t use a nickname on your resume. Full name is usually better.

Near your name goes your contact details. This should include your email address (which should be a professional looking one), phone number, and maybe a suburb or city. Don’t put your address down, as it’s not really needed at this stage. Also, make sure you don’t put your work phone number or email address down. It’s not good to have job interview emails and requests come through while at work.

 

Objective or Summary Comes Next

Adding an Objective or Summary statement to your resume has caused divided opinions in the industry. Some people say you don’t need to have one, as it’s a waste of space and isn’t really relevant. Others say it’s good to have a short description of yourself for readers to see.

Personally, I think it’s good to have, as long as it’s short and well-written.

The difference between the two is an Objective statement is usually used by junior employees or graduates, and it’s more of a statement that says “here is what I want to achieve with my career or job”. A Summary statement, on the other hand, is used by more experienced IT professionals and is a description of what roles and experience they have, kind of like a “here is what I have done and can do”. Which one you use comes down to your level of experience, but they should go in the same spot.

This is good to add just under your name and contact details, so it’s easy for the reader to see.

 

Education or Experience Is Next

So, this is something that I researched quite a bit, as I recently put together my course for creating and updating an IT resume. Basically, at this stage you should put either your Education or Experience section. But which one goes first?

Education summarises all of your education, such as high school and college or university. It includes your degrees and majors. Experience, on the other hand, is a history of your roles and achievements at different companies.

In short, if you have more than a few years of experience, put the Experience section first. If you don’t, put the Education section first.

Both areas should contain the information in reverse chronological order, which means that the most recent item is at the top, and then it works backwards from there.

Then, you add the section which you didn’t add first. So, if you added Education first, then Experience comes next.

 

Where Do Certifications Go On A Resume?

As the IT industry has a lot of certifications, there’s a good chance that we end up getting quite a few certifications in our time. But for the format of a resume, where do we put them?

This depends on how many you have. If you have a few of them, they can go in their own Certification section. If you don’t, then they can go into the Education section.

What does this mean for your resume? It can get a bit confusing when trying to organise the Education, Certification and Experience sections on a resume.

Here’s what I think:

  • If you have a few years’ experience and a few certifications: Experience, Education, then Certifications
  • If you have a few years’ experience and not many certifications: Experience, Education (includes Certifications)
  • If you have less than a few years’ experience and a few certifications: Education, Certifications, then Experience
  • If you have less than a few years’ experience and not many certifications: Education then Experience

 

Next Comes the Skills Section

Another important section on the resume for IT professionals is the Skills section.

This should always go after experience and education, and even certifications, as it’s not as important as those sections.

The skills section highlights your capabilities with different technologies, software and other areas of the IT industry. This can be written based on your experience, education from university or college, or even your certifications. It highlights what you’re good at, and ideally, it would match your experience.

 

Finally, the Other Interests Section

At the bottom of your resume, you can add the Other Interests section. This should be added only if you have space. Also, it should only contain relevant interests and awards. Things that demonstrate abilities that can help you get the job, such as communication, project management, teamwork. These kinds of skills and interests can demonstrate qualities that job seekers like.

So there’s a summary of what I’ve found is the best format of a resume. Name, contact details, objective/summary, education/experience, certifications, other interests.

 

I hope this article has helped you if you’re creating your own resume. If you’re interested in finding out more about creating your own effective and high-quality resume, have a look at my IT Resume Results video course at www.itresumeresults.com, which goes into this in more detail and helps you create your own resume or update an existing one.

Career Action Tip: Have a look at your own resume to see if it follows this format.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of Gualberto107 / FreeDigitalPhotos.net

Share and Enjoy

FacebookTwitterDeliciousLinkedInStumbleUponAdd to favoritesEmailRSS]]>
http://www.completeitprofessional.com/format-of-a-resume/feed/ 0
10 Things That Should Not Go On Your IT Resumehttp://www.completeitprofessional.com/should-not-go-on-your-it-resume/ http://www.completeitprofessional.com/should-not-go-on-your-it-resume/#comments Mon, 01 Sep 2014 11:30:38 +0000 http://www.completeitprofessional.com/?p=2856 Continue reading …]]> 10 Things That Should Not Go On Your IT ResumeWhen you create or update your IT resume, there are some things that should go on it, and a few things that you shouldn’t put on it. I’ve listed ten different things that should not go on your IT resume in this article.

Your Photo

Photos are not needed on resumes. While it might seem like a good idea to add a photo, so that people know what you look like and can see how professional you look, it’s not a good thing to do. It can leave you open to discrimination by the employer, which can be either negative or positive.

Employers can also feel uncomfortable with it, as they think you might feel the acceptance or rejection of an IT resume is based on the photo. It’s not a situation that recruiters like to be in, so I would suggest removing the photo. I’ve answered this question in more detail in this article.

 

Old Programming Languages

Programming languages have been around for a while. They evolve, new languages get created, and new technologies come with them.

If you’ve been in the industry for some time, you might have a long list of programming languages that you know and that are familiar with. Some of them might not even be used that widely anymore!

These are the languages that don’t need to go on your resume – the old ones. If they’re not that widely used, or if you haven’t used them in some time, then you should remove them from your resume. While it might be good to add every language to show your knowledge and ability to learn many languages, only showing the ones that are current and relevant is really needed.

 

Languages You Aren’t Proficient In

Another point related to programming languages is related to the languages that you know but aren’t very knowledgeable or proficient in. If you know a language, but it’s only enough to recognise it or the very basics, then you shouldn’t put that on your resume. This is because employers only really need to know the languages that you can apply on the job, so they know what your capabilities are. If you’re adding languages that you aren’t fully capable with, it makes it hard for both of you.

How do you know which ones to keep and which ones to remove? Well, if you’re confident in your knowledge and able to use it on the job without supervision, then it can stay. Otherwise, it should be removed from your resume.

 

Jobs More Than 10 Years Ago

If you’ve been in the IT industry, or in the work force in general, for some time, you probably have a long list of jobs. Even if you’ve only worked at a few places, your job history will go back some time.

It’s a good idea to remove any jobs from your resume that are from more than ten years ago. This is because employers only really need to see recent and relevant jobs, and it saves space on your resume by removing them.

It doesn’t matter what kind of job it is – it could be a fast food restaurant, an internship, or even at another IT company. If it was more than ten years ago, it shouldn’t be on the resume.

Little things like this might not matter to the resume or your overall skills, but we’re trying to make the resume as easy to digest as possible for the reader. Removing these kinds of things from the resume (older jobs, languages) will make it easier for them to read, more relevant, and save space.

 

Low GPA

Your GPA (or Grade Point Average) is a score that represents what your marks were in college or university. I think that the only time to add this to your resume is if it was a high number (over 3.5) and if you completed college or university in the last few years.

This means that if you have a low GPA, or anything under the 3.5 mark, then it shouldn’t go on your resume. It’s not really relevant and it doesn’t highlight your marks.

 

A Non-Professional Email Address

You should always put an email address on your resume. The reader doesn’t always have your email in front of them, so adding it to the resume can help them contact you if they need to.

However, you should make sure that your email address is a professional one. It should have your name in it, if possible. Try to avoid nicknames, and any other kind of unprofessional email address you might have come up with in high school or college.

I’ve had some pretty bad ones in my time, and a lot of people I know had some bad ones. Adding a professional email address to your resume is almost a must-do.

 

Hyperlinks

There are a few places on your resume that may refer to sites on the Internet. These could be your LinkedIn profile, your GitHub profile, email address, and any other links to your samples of work. However, while it’s good to mention these on your resume, it’s not a good idea to have the hyperlink on the resume.

The reason to remove the links from your resume is to do with the software that scans resumes that are submitted. Some of them don’t handle links very well, or don’t like a lot of links, even though they may be valid. So, to be on the safe side, you should always include this information, but just remove the hyperlink. You can do this in your word processor.

If you want to make it stand out still, and make it look like an external link, you can underline the word. Just as long as it doesn’t have an active link, it should be OK.

 

Overused Words

There are a lot of words that are used in the IT industry, or in the workplace in general, that should not be added on to IT resumes. They are overused and don’t convey the message that you need it to, and should be avoided at all times.

Words such as analytical, capable, creative, detail oriented, effective, go-to-person, hard working, innovative, motivated, results-driven, scalable, and team player are all useless words to add to a resume. There’s a full list of them that I prepared as part of my IT Resume Results course.

These words add no meaning to a resume and a lot of them are implied when you go for the job (such as motivated and effective – who isn’t?)

If you’re using these words, you should remove them and rewrite those sentences if needed.

 

References in the Same Document

It’s a good idea to include references of people with your resume. However, they should not go in the same document. It’s better to add them to a separate document, which is just for references. You can put your professional and personal references here, and the document should be formatted in the same way as your resume.

This is just good practice and is the standard that many employers prefer. Having references in the resume takes up space, and if an employer is considering you for a job interview or after the interview, you can supply the references to them at that stage.

 

Irrelevant and Unprofessional Awards

The final point on what to exclude from a resume is an awards that are unprofessional and irrelevant. You should use your own judgement on this one.

It can be a good idea to add your awards to your resume. This can show you have the motivation and interest in a subject to put in extra work to receive an award for it. This could be top marks in your subject, a prize for public speaking or some other award that’s relevant to your job. Adding these in can be good, but only if they are both professional and relevant.

If it’s related to your job or to skills that you use for this job, then great, add it in. If not, then leave it out. Hot dog eating champion and running races probably don’t need to go on your resume for this reason.

 

Well, I hope these tips have got you thinking and will help you improve your resume. Do you have any other suggestions for things that should not go on an IT resume? Share them in the section below!

Career Action Tip: Go over your current IT resume and check that all of the items above are not on your resume.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of iosphere / FreeDigitalPhotos.net

Share and Enjoy

FacebookTwitterDeliciousLinkedInStumbleUponAdd to favoritesEmailRSS]]>
http://www.completeitprofessional.com/should-not-go-on-your-it-resume/feed/ 0
What Are The Different Types of Software Testing?http://www.completeitprofessional.com/types-of-software-testing/ http://www.completeitprofessional.com/types-of-software-testing/#comments Thu, 28 Aug 2014 11:30:44 +0000 http://www.completeitprofessional.com/?p=2846 Continue reading …]]> What Are The Different Types of Software TestingSoftware testing is a major part of the software development process. As part of the testing phase, there are a lot of tests that are run against a change or a new piece of software, each with different names and purposes. Let’s take a look at each of the types of software testing and what they are used for.

Two Main Categories of Testing

If you’ve spoken to any testers, they may have mentioned there are two different categories of testing – black box and white box.

Black box testing means that tests are run without knowing or even ignoring the internal code structure of what you’re testing. You supply it an input, get an output, and check it against your expected results. For example, you have a function called doubleMyNumber, which had an input of one number and returned a number that was double the input number. You could run a black box test on this without knowing the internal structure of this function. Provide an input value of 2, and check that the output value is 4. Provide an input value of 30, check that the output value is 60.

White box testing means that tests are run when you know the internal code structure of what you’re testing, and run tests against it. This involves testing for certain exceptions or paths within the code, and even testing the limits of what the code can handle. For our doubleMyNumber function, we would have a look at the code. If the code is simply “outputNumber = inputNumber * 2″, our tests might be similar. But if there are if statements and checks for maximum ranges and negative numbers, we could provide those numbers to see what happens.

This is a simple example, but it helps to explain the difference and how it can be used for more complicated solutions.

 

Testing is an important part of any software project. Now that we’ve covered these two categories, let’s have a look at the different types of software testing. I’ll cover them in the general order that they are performed for a project.

 

Unit Testing

Performed by: Developer

Testing Category: White Box

Unit testing is the testing that is done on a particular code module or unit of code. It’s usually performed by the developer who writes the code, and is a type of white box testing.

This is where the developer looks at the code, and writes tests to check each of the expected outcomes and flows, based on the logic within the module, using certain inputs. It’s done in isolation of the other modules, which means you can usually run the unit testing on a particular module or function without any of the other code being ready (depending on how your system works, of course). It can be done using automated testing or even manual testing.

 

Integration Testing

Performed by: Developer

Testing Category: White Box and Black Box

Integration testing is where the developer has several code modules, which are related to a specific function, are combined and testing to ensure the output is correct. Instead of testing a single code module in unit testing, this type of testing involves a few modules.

This could involve testing against a database connection, testing input from a user, or reading and writing to a file, for example. Inputs can be provided, and outputs are expected and checked. This kind of testing can be considered white box or black box, depending on how the tests are set up and what information is used.

 

Functional Testing

Performed By: Various

Testing Category: Black Box

Functional testing is where tests are run to check that the solution meets the requirements that it is being built on. The requirements are provided in a format such as user stories or business requirements, and someone checks each of these against the solution by writing and running tests.

It doesn’t need to be done by a developer or tester. I’ve seen cases where it’s the business analyst doing this test, and as a business analyst, sometimes it’s a good idea to get them to do it. They would have a look at the requirement, and check that the solution meets it.

This is a kind of black box testing, as the person setting up and running the tests doesn’t need to know how the code works.

 

System Testing

Performed By: Testers

Testing Category: Black Box

System testing is another type of software testing that involves more than one module. It’s where the entire solution has been written and the environments are ready, and tests are performed to ensure the entire solution works. Specific tests are written to test all kinds of functionality, which may be more detailed than the functional tests, as they test all areas and not just the requirements.

This is often a large part of the testing and is the first chance that the entire system is tested together. It’s a form of black box testing, as at this level, we don’t need to know what the code is like.

 

Regression Testing

Performed By: Testers

Testing Category: Black Box

Regression testing is similar to system testing. Regression testing is where you implement the solution to a particular environment, and test it against other integrated systems, to ensure that it doesn’t break anything. Other systems may not have changed for this solution, but testing still needs to be done to ensure this change (whether it’s a small change or a large solution) doesn’t cause any problems elsewhere.

 

Performance Testing

Performed By: Testers

Testing Category: Black Box

Performance testing is where the solution is tested for speed, responsiveness and effectiveness to ensure that it performs under the required load before it is implemented. For example, if your solution is expected to have 100 concurrent users, then performance testing will simulate the solution having 100 users on it at a time, and measure the results.

The performance and speed of a system needs to hold up and still work under these conditions. Requirements should have been specified earlier in the project about what the expectations for performance are, and these are tested in this phase.

Performance testing is often done using automated tools to simulate normal and exceptional behaviour, as it’s much easier to do it this way than to get 100 people all using the system at once.

 

Load Testing or Stress Testing

Performed By: Testers

Testing Category: Black Box

Load testing, or stress testing as it’s sometimes called, are both types of software testing. It’s a kind of testing that is similar to performance testing. The solution is tested for performance, but it is done in conditions that are not ideal and is run outside the expected load of the system, to see how it runs in this situation. These kinds of situations can happen sometimes if servers or networks go down or are impacted, so the team needs to see how the solution is impacted.

For example, if a solution was designed to handle 200 users at a time, stress testing could simulate 300, 500 or 1000 users to see what happens. It could also see what happens if a slower server or technology is used.

 

Security Testing

Performed By: Testers, or Security Team

Testing Category: Black Box

Security testing is where the solution is tested to see if it can withstand external attacks. This kind of testing is often covered by other tests, but can also be done separately by the testing team or another security team if it exists.

Tests are performed on input areas such as user logins, page browsing, and can also look at ways to get into the database or other areas that aren’t meant to be accessed. There may be a standard set of tests for this part, depending on your organisation.

The solution should be safe from all kinds of attacks, which can only really be done with this kind of testing.

 

Usability Testing

Performed By: Users

Testing Category: Black Box

Usability testing is where the end users of the system use and navigate the system. The aim is to make sure that these end users find the system usable, and can navigate the system easily. It’s also tested against any documentation that is prepared.

Depending on the project, there is often a stage earlier in the project where users are consulted on the design or user experience of the solution. This is where their feedback is gathered and incorporated into the solution. If this is done, there shouldn’t be any surprises, but it is a useful test anyway.

This kind of testing is black box testing, as it doesn’t require any knowledge of the code. It’s done by the users with the assistance of a test manager or even a business analyst.

 

User Acceptance Testing

Performed By: Users

Testing Category: Black Box

User acceptance testing, or acceptance testing, is where the solution is provided to the end users and they check it to ensure it meets their requirements. This is done in the form of functional requirements and non-functional requirements.

Functional requirements should have been tested with the functional testing earlier. Non-functional requirements are tested with performance testing and usability testing as well.

At this stage, the outcome of this test is acceptance by the user that the solution does what it needs to. It’s often done with the assistance of the business analysts or project manager, and is the final stage of testing.

 

Well, hopefully this article has helped you understand the different types of software testing. If you have any questions on software testing, share them in the section below.

Career Action Tip: Read and familiarise yourself with the different types of testing, and work out which types of software testing are involved in your role or company.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of cooldesign / FreeDigitalPhotos.net

Share and Enjoy

FacebookTwitterDeliciousLinkedInStumbleUponAdd to favoritesEmailRSS]]>
http://www.completeitprofessional.com/types-of-software-testing/feed/ 0