The Software Testing Engineer – An Essential Part of the Software Development Team

Software testing is one of the most important milestones in the software development life cycle (SDLC); this also is the most difficult part in it’s development. The testing is carried out from the start of development of the product until the product is ready for shipping to market or the customer. Different testing methods are used during this period until the product is released. The software testing engineer must be a qualified professional having sufficient knowledge of the code details to enable him to make the code work and find any existing problems before market release. The intelligence and experience of these engineers are mainly responsible for having such a large amount of quality software in the market.

They are normally connected with the testing of code and is a part of the quality assurance team. QA Engineers may test software , but are not always expert test engineers. They test the software for performance, functionality, usability, portability, efficiency, compatibility, scalability, resource usage, security etc.

Black box and white box testing are two of the most important testing types. The black box testing requires no knowledge of internal logic or code structure and is mainly focused on the testing for requirements and functionality of the application. In this the tester is not concerned with the internal operations which make the data do what it does. The white box testing deals with the internal logic and structure of the code. Both these tests are performed by the software testing engineer and are equally important. However, they serve different purposes.

During the various stages of the software development life cycle (SDLC), a number of testsare conducted at different stages of code development. The testing is carried out starting with the smallest module and increasing to complex integrated modules in the later stages of testing. The process includes unit testing, integration testing, system testing, system integration testing, alpha testing, beta testing, functional testing, regression testing, security testing and acceptance testing. The testing may be done manually or it may be done using automated software. In some cases it may be tested both ways. It is the responsibility of the software testing engineers to ensure that these technical tests are completed properly before the product is released to the end market.

Anyone interested in taking up the career path of a software testing engineer should possess requisite educational qualification and training. Some of the engineers go to schools where Computer science degree is awarded. It is not necessary that the testers should have computer science degree. There are many accredited institutes such as American Society for Quality (ASQ), Quality assurance International, and International institute for software testing training courses and award certificates for completed training. Some schools are also conducting online courses for this.

A number of companies recruit persons who do not have adequate qualifications for testing positions for entry level jobs in the computer department; these persons can come up from ranks to qualify for the position. Alternately they may get assistance from the company for getting training and becoming certified. The greater the experience of the software testing engineer, the more will be his efficiency in testing. He will also be able to set up simple tests right up to writing the test codes and doing the white box testing. This profession offers challenges for people having knowledge and aptitude for problem solving and compensates them well.

Open Source Software – an Educator’s Overview

I have always been keen on taking advantage of free offers. Given the choice between a fast food meal with a freebie or one without, I’ll plump for the mystery envelope every time. It’s human nature, and marketers know it well.

Even in 1979, when I bought my first home computer, there were user groups who supplied type-in listings for a nominal charge. When I bought the first of a series of Atari ST computers in the ’80s and ’90s, I was a regular customer and contributor to a public domain (PD) software library. Fast forward to the end of the ’90s and I was distributing the source code to a number of simple educational flash games to other teachers over the internet.

So that’s my credentials. Like many others, however, I have received much more from open source software than I have ever put in. For the uninitiated, it is worth explaining a few definitions here:

Shareware Software: is free to try, but there is a moral obligation to register your software with its creator and receive upgrades and support in return for a fee. The evaluation period may last for a reasonable length of time after which some features of the software may become unusable.

The Public Domain: if the creator of a work relinquishes all his rights to his intellectual property, it enters the public domain and can be used by others to create derivative works or profit from it without payment of any fees or need for some form of license.

License: many creators who wish to share their intellectual property with others will give away limited rights that allow the user to do a range of things – but still maintain overall control of the way their work is used. Many open source software developers will use the GNU Public License (GPL) as a framework for stating how their work can be used.

Open source software does not have to be synonymous with poorly written undocumented utilities that nobody else wants. Here are a few of my favourites:

Open Office: a fully-fledged office suite, word-processor, spreadsheet, presentation software and graphics package. The fact that these programs will export both PDF format to be read by Adobe Acrobat reader and SWF flash files for use on the web makes them incredibly useful to me. They are the main application software that I use on my laptop.

The GIMP: an image processing package with enough features to rival Photoshop. For younger artists, my daughters love Tux Paint with its variety of stamps and special features.

Moodle: an open source content management system specifically designed for educators. There are plenty of other open source CMS packages available for blogging or running your own web portal.

A Career Path in Software Development: Not Easy But Challenging and Lucrative

Software development is easily considered one of the most respectable career paths to attain, at least in my home city – Bangalore and amongst family members. It is considered this way because a) a job in the software sector pays you pretty well, and b) it is and always has been a lucrative industry to work in which has a defined career ladder that you can climb real fast, provided you show impeccable performance.

I have termed software development to be “not an easy job” simply because of the existence of a very complicated structure and process in place. Firstly, there is a strict education process that needs to be cleared that would give you a degree in software development. The education would expect you to go through years of complex process training sessions. Secondly, there is the tough task of finally getting into the actual job in an organization that is not only renowned, but also promises growth; and by growth I do not only mean professional growth but again growth in terms of learning and personal abilities.

Well, it doesn’t end there once the career growth assurance is given by a reputed firm. There is a lot of individual performance that needs to be portrayed that is worth being recognized, complimented and rewarded. It is like that old cliche – hard work always pays off.

Open Source Software Development

A very new source of software development and one that is very rapidly gaining recognition in the world of technology is – Open Source. A short quote from Wikipedia states “Open source software development is the process by which open source software (or similar software whose source code is publicly available) is developed. In simple terms it means that an existing software code is worked on and upgraded and the code derived would be of open source in nature (one that is available for free).

Now, this is another space that an aspiring software developer would want to enter. Here the developer could work as a freelancer, develop customized software using open source software codes and then sell it to a client as per his/ her requirements. The reason why there is the mention of the fact that open source software gaining rapid popularity is because FOSS (Free Open Source Software) has posed immense competition to proprietary software firms – the ones that are considered as the real destination points of software developers.

Whilst studying, undergoing training, hunting for an appropriate job in an appropriate firm and ensuring the building of a sensible and growth-oriented career, there is one and the single most essential thing that you will enjoy out of doing all this hard work. And that is – HAPPINESS. Happiness of possessing a respectable job, happiness of being in a lucrative growth-driven career, and happiness of earning good money.