ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

A Handy Guide to Software Testing!

Updated on September 24, 2015

Software testing is simply the process of evaluating a system or software item to find out whether it is working according to the organization's specific requirements or not. It is performed to determine the quality of the product and is usually carried out during the development process. We can say that the software testing is a verification and validation process.

The verification process is the one that ensures that the particular product fulfills the specified conditions during the initiation of the development phase. Whereas, validations process ensures that the products satisfy the particular demands at the end of the development phase.

Overall, testing is the process that assists in identifying any flaws, errors or any gaps in contrary to the specified requirements of the clients.

Source

Basics of software testing

Being an activity in the process of developing a software, software testing generally categorized into three main parts:

Black box testing: Black box testing is also known as functional testing. It is a technique that deals only with the output generated against any input and execution of the system. In this type of testing, the tester doesn't know the internal workings of the system. To perform this testing, the tester only needs the specifications of the program. He/she is not required to have further knowledge of the program or examine the programming code. This testing is mainly used for validation. Let's have a glance over some of the advantages and disadvantages of black box testing.

Advantages:

This testing is balanced and unbiased as both the tester and developer are independent of each other

This testing is highly efficient when used on large systems

Tester doesn't need to be technical

Test is performed from end user's point of view

Test cases can be designed soon after the completion of functional specifications

Disadvantages:

This testing is quite challenging without a clear picture of functional specifications

Test cases that are developed independent of the provided specifications make it difficult to identify the tricky inputs

Writing test cases are quite difficult

There are chances that several program paths will go untested

White box testing: There are various other names for this type of testing such as glass box testing, clear box testing, open box testing, path driven testing, structural testing and logic driven testing. This type of testing is a technique that examines a program structure and derives test data from the program code. Unlike black box testing, white box testing deals with the internal workings of a system or application. This testing is generally used for verification. Let's find out the advantages and disadvantages of white box testing.

Advantages:

As the tester is aware of the internal workings of the system, it becomes easier for him to determine which type of data can assist in testing the application effectively

This testing helps in revealing the errors in hidden code

Help in eliminating the useless lines of code that can bring in hidden defects

White box testing is also helpful in optimizing the code

Disadvantages:

A detailed knowledge of programming language is required to perform this white box testing

This testing is quite expensive as it requires both time and money

Sometimes it may not possible to look into each bit of code to detect the hidden errors, which may result into the failure of the application

Gray box testing: Gray box testing, which is also known as translucent testing, is the combination of both the white box testing and black box testing. In this type of testing, the tester is aware of the some parts of the internal structure of the code. The gray box testing is usually used to test the web services applications and also for functional or domain testing. Let's have a look upon the advantages and disadvantages of this testing.

Advantages:

This testing offers the combined benefits of both the black box testing and white box testing

Gray box testing is generally based on functional specification

This testing is unbiased as it maintains the boundary between the independent testers and developers

Disadvantages:

Gray box testing doesn't allow to perform the complete white box testing

When performed for a distributed system, it becomes difficult to associate defects

Most of the cases under this testing are difficult to design

It is not considered as the efficient testing because the tester is not having the complete knowledge of the process

Source

Types of software testing

There are various types of software testings that are performed to identify the difference between the current input and the expected output of a process. Some of the testings are mentioned below:

Unit testing: Unit testing comes under the category of white box testing. It is the testing of an individual unit or group of related units. This testing is mainly performed to find out the whether the particular system is producing the expected output against the provided input or not.

Functional testing: Functional testing generally comes under the category of black box testing. This testing is mainly performed to make sure that the particular functionality that is needed in the system requirements is working efficiently.

Integration testing: Integration testing usually belongs to both the categories, the black box testing and the white box testing. Under this type of testing, a group of components is gathered to produce an output.

Performance testing: It comes under the category of black box testing. As the name suggests, performance testing is performed by the tester to determine the performance of a system in terms of its speed and effectiveness within the specified period of time.

System testing: System testing also comes under the category of black box testing. It is usually performed by the tester to make sure that the particular software works effectively in various environmental conditions.

Acceptance testing: Acceptance testing that comes under the category of black box testing is done to ensure that the output meets the specified requirements and the conditions of the client.

Stress testing: It also comes under the category of black box testing. This testing is performed by the tester to determine the behavior of a particular system under various unfavorable conditions.

Beta testing: Beta testing is a kind of black box testing that is performed by the end users to cover the unexpected errors.

Usability testing: This testing also belongs to the black box testing and is generally performed to evaluate a product by testing it on the users.

Regression testing: It also comes under the category of black box testing. Regression testing is generally performed after the modification of a system to determine whether the modification is working efficiently or not without causing any damage to the expected outcome.

Who does testing or what are the designations available for testers?

A software tester is a person who performs the testing on various systems to make sure that it meets the specified requirements of the client. These days, software testers are widely in demand and lots for testing jobs are generated by various small and big organizations. Depending upon the process and responsibilities of the job assigned, testers are given various designations like software tester, software quality assurance engineer, QA analyst, project lead, project manager, etc.

Ways to test a software

A software can be tested in two ways: manual testing and automation testing

Manual testing: Under this type of testing, the tester plays the role of an end-user and performs testing without using any automated tool to find out any kind of flaw or bug. This testing comprises various stages such as unit testing, integration testing, system testing and acceptance testing.

Automation testing: Under this type of testing, the tester makes use of another software to test the given product and writes scripts. As compared to manual testing, the automation testing is less time consuming, inexpensive and delivers accurate results.

To conclude, testing is a very broad term and plays an imperative role in the various organization. As the demand of new software is on rise with various features among customers, companies are looking for the software testers who can assist them in delivering the software that are free from bugs and can enhance the user experience, which will ultimately improve the quality impression of the particular company.

Comments

    0 of 8192 characters used
    Post Comment

    • dhimanreena profile imageAUTHOR

      Reena Dhiman 

      3 years ago

      Thanks poetryman6969 for sharing your valuable thoughts regarding software testing. I agree with your viewpoint that the situation is quite complex where the end user is your tester.

      However, one sure way to cut down projects costs is User Acceptance Testing (UAT), which is also known as beta testing. In this type of testing, the particular software is tested in the real world by the destined audience.

      Thanks integrater for upvoting my post and I'm happy that you found the post informative.

      Yes, Software Quality tester is really a nice job. As far as game testing is concerned, software testing involves game testing for the quality assurance of different video games. It is performed to detect any kind of defect or bugs in the game. Game tester is perhaps the most interesting job, especially for those who likes to play video games. He/She is responsible for performing a thorough test on video games before the final version is released in the market.

    • integrater profile image

      Certified Noob 

      3 years ago

      Software Quality tester - Seems like a nice job . Does this include game testing ?

      Thank you for the informative hub. Upvoted.

    • poetryman6969 profile image

      poetryman6969 

      3 years ago

      There is a saying that there is never enough time to do something right but there is always enough time to do it over. One would hope that sufficient early testing would allow the do overs to be done more cheaply. I certainly don't like the situation where the end user is your tester. Testing in production is not a good idea either but I have seen it done.

    working

    This website uses cookies

    As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

    For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: https://hubpages.com/privacy-policy#gdpr

    Show Details
    Necessary
    HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
    LoginThis is necessary to sign in to the HubPages Service.
    Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
    AkismetThis is used to detect comment spam. (Privacy Policy)
    HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
    HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
    Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
    CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
    Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
    Features
    Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
    Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
    Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
    Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
    Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
    VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
    PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
    Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
    MavenThis supports the Maven widget and search functionality. (Privacy Policy)
    Marketing
    Google AdSenseThis is an ad network. (Privacy Policy)
    Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
    Index ExchangeThis is an ad network. (Privacy Policy)
    SovrnThis is an ad network. (Privacy Policy)
    Facebook AdsThis is an ad network. (Privacy Policy)
    Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
    AppNexusThis is an ad network. (Privacy Policy)
    OpenxThis is an ad network. (Privacy Policy)
    Rubicon ProjectThis is an ad network. (Privacy Policy)
    TripleLiftThis is an ad network. (Privacy Policy)
    Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
    Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
    Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
    Statistics
    Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
    ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
    Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)