Software Testing Tutorial
What is software testing?
Software Testing is a process by which defects or bugs or errors are identified in a SOFTWARE or SOFTWARE Application as per the requirements. This testing process is done by the Testing Team which involves one or more testers (QA), QA Lead, QA Managers, and QA Administrators etc. This testing results/feedback is sent to the development team which involves one or more Business Analysts (BA), Smart Management Experts (SME), Developers, and DBAs etc. The development team checks the defects or bugs or errors and rectifies those and responds back to the testing team. Then the defect is retested by the tester and if everything is okay, then the entire code is moved to the production environment later to achieve the expected results. At times, based on the priority of the issue it will not be closed.
In Software Development Life Cycle (SDLC), the DEVELOPMENT TEAM and the TESTING TEAM will play a major role in achieving the end result or outcome of an application.
- Requirement Analysis: Feasibility study is done whether the project will be successful on various parameters. If everything is okay, then Business Analysts analyze each and every requirement and create business/functional requirements.
- Design Phase: Data Modeler designs databases, and an application architect designs front end application or middle tier application.
- Coding (Programming) Phase: DBAs create databases and developers write code for the front end application or middle tier application or back end.
- Testing Phase: Build Engineer creates the testing environment and Tester Tests the database, code written by developers etc. Testing will be explained in detail later.
- Production (Release) Phase: The entire code is implemented in the production environment.
- Maintenance/Support Phase: DBAs maintain/support the databases and developers support and maintain the applications. Testing is also done for every change occurring in the project.
Defects or Bugs:
Even though defect or bug or errors are more or less similar, in software testing, it has got a different meaning.
- There may be a situation when BA or SME interprets the business in a wrong way and writes wrong business requirement documents. In that case, the designers will design an incorrect database structure or an application or middle tier services etc. as per the given business requirements. Then this leads to a defect.
- When Designer doesn’t understand the business requirement document and design an incorrect database structure or an application or middle tier services etc. This will also cause a defect.
Bug is the result of an Incorrect Program Code.
When an end customer finds a defect or when the program results deviate from the expected results then it is called an error or a failure.
Software Testing Examples:
I. Testing while Development of New Software: There are several companies who have developed new software or developing new software.
Example: oracle, .net, java, UNIX, Linux, open source software etc.
II. Testing while Upgrading of Software: Companies usually adds new features to their existing software. The existing version may be 8.0 and new release may be 9.0.
III. Testing while Development of a new Web Based/Client-Server application: Some bank would have bought some software and created a new application for their line of business say “Credit Card”.
IV. Testing while Upgrading of a new Web Based/Client-Server application: Due to the increased competition, Bank would have added some new features for their line of business “Credit Card” or they would have thought to upgrade their application with new version of software.
V. Back-end testing (data stored in databases) on different operating systems like windows, Linux and UNIX etc.
VI. Testing Mobiles and Mobile Based Applications: There are lot of big players like Samsung, Nokia, Apple, Windows, Motorola, BlackBerry etc who sell mobile phones (SMART PHONES) or Tabs and before launching new mobiles, they test the product and sell it. Since mobile users are using these mobile for purchasing, account checking, online stock trading, secured transactions like Paypal, loan applications, companies provide options for their applications to be downloaded in mobiles.
Example: A company XYZ provides online stock trading activities. By using internet, traders connect to the company XYZ and trade by using their lap tops or desk top. Nowadays users are interested to trade by using their mobiles. For this to happen, XYZ create mobile based applications and provide links on their website to download these applications. Apple mobile users will download apple based application and Nokia mobile users will download Nokia based applications respectively. These applications will be thoroughly tested by the testers before it is used.
Why you need Testing: Few examples
- Social Security Websites: Hackers may steal personal and identity information. This is due to lack of security in their systems and security testing has to be done aggressively.
- Web (Email) based applications: You would have logged in by providing your username and password, and at times you will not be directed to the home page of email based applications. The main reason for this error is several users would have logged at the same time. With correct load testing this error can be avoided.
- Addition of technologies, technology updates and support to technologies.
- Agile methodology and changes in Agile methodology.
- Cloud environment and SOA architecture.
- Reducing cost.
In the following sections, you can learn software testing in a detailed manner like software testing life cycle, bug life cycle, testing tools, testing methods, testing levels, testing types, testing documents, testing standards, testing interview questions along with real time examples.