A to Z Full Forms and Acronyms

Exploring Software Testing

Aug 24, 2019 Software Testing, 5862 Views
in this article, we learn about the Software Testing

Software Testing

  • Computer programs are designed and developed by human beings and hence are prone to errors.
  • Unchecked, they can lead to a lot of problems, including social implications. 
  • Testing the software becomes an essential part of the software development lifecycle.
  • Carrying out the testing activities for projects has to be practiced with proper planning and must be implemented correctly.
  • “Testing is the process of executing a program with the intention of finding errors.” – Myers
  • “Testing can show the presence of bugs but never their absence.” – Dijkstra

Most Common Software Problems

  • Incorrect calculation
  • Incorrect data edits & ineffective data edits
  • Incorrect matching and merging of data
  • Data searches that yield incorrect results
  • Incorrect processing of data relationship
  • Incorrect coding/implementation of business rules
  • Inadequate software performance
  • Confusing or misleading data
  • Software usability by end users & Obsolete Software
  • Inconsistent processing
  • Unreliable results or performance
  • Inadequate support of business needs
  • Incorrect or inadequate interfaces with other systems
  • Inadequate performance and security controls Incorrect file handling

Need of Software Testing

  • Executing a program with the intent of finding an error.
  • To check if the system meets the requirements and be executed successfully in the Intended environment.
  • To check if the system is “ Fit for purpose”.
  • To check if the system does what it is expected to do.
  • A good test case is one that has a probability of finding an as-yet-undiscovered error.
  • A successful test is one that uncovers a yet undiscovered error.
  • A good test is not redundant.
  • A good test should be “best of breed”.
  • A good test should neither be too simple nor too complex.

Types of Software Testing

  1. Manual Testing
  • Manual testing includes testing a software manually, i.e., without using any automated tool or any script.
  • In this type, the tester takes over the role of an end-user and tests the software to identify any unexpected behavior or bug.
  • There are different stages for manual testing such as unit testing, integration testing, system testing, and user acceptance testing.
  • Testers use test plans, test cases, or test scenarios to test software to ensure the completeness of testing.
  • Manual testing also includes exploratory testing, as testers explore the software to identify errors in it.
  1. Automation Testing
  • Automation testing, which is also known as Test Automation, is when the tester writes scripts and uses another software to test the product.
  • This process involves the automation of a manual process.
  • Automation Testing is used to re-run the test scenarios that were performed manually, quickly, and repeatedly.

Software Testing Methods

  1. Black Box Testing
  • Incorrect or missing functions, Interface errors, Errors in data structures or external database access, Performance errors, Initialization and termination errors
  • Black box / Functional testing
    • Based on requirements and functionality
    • Not based on any knowledge of internal design or code
    • Covers all combined parts of a system
    • Tests are data-driven
  • Black Box Testing method is applicable to the following levels of software testing:
    • Integration Testing
    • System Testing
    • Acceptance Testing
  • Example: A tester, without knowledge of the internal structures of a website, tests the web pages by using a browser; providing inputs (clicks, keystrokes) and verifying the outputs against the expected outcome.
  1. White Box Testing
  • Knowledge of the internal program design and code required.
  • Tests are based on coverage of code statements, branches, paths, conditions.
  • Incorrect or missing functions, Interface errors, Errors in data structures or external database access, Performance errors, Initialization and termination errors
  • White box testing / Structural testing
    • Based on the knowledge of the internal logic of an application's code
    • Based on the coverage of code statements, branches, paths, conditions
    • Tests are logically driven
  • White Box Testing method is applicable to the following levels of software testing:
    • Unit Testing: For testing paths within a unit.
    • Integration Testing: For testing paths between units.
    • System Testing: For testing paths between subsystems.
  • Example: A tester, usually a developer as well, studies the implementation code of a certain field on a webpage, determines all legal (valid and invalid) AND illegal inputs and verifies the outputs against the expected outcomes, which is also determined by studying the implementation

  1. Grey-Box Testing
  • It combines the concept of both Black box as well as white box testing.
  • In Grey box testing, the inside of your product is partly known to the tester.
  • This has partial access to data-structures residing internally for designing different test cases, but at the same time tests from a user's perspective or like a black-box tester.
  • Grey box testing has its name grey because from a tester's eye, it's like a semi-transparent box and also combining the color of black and white gives the shades of grey.
  • Main features:
    • test design is based on the data structures and algorithms knowledge
    • actual tests are conducted using the exposed interfaces
    • a tester can have access to the source code for test cases design
  • Test design techniques based on grey box testing:
    • matrix testing
    • regression testing
    • orthogonal array testing
    • pattern testing

Levels of Software Testing

  • Levels of testing include different methodologies that can be used while conducting software testing.
  • The main levels of software testing are −
  • Functional Testing
    • Unit Testing
    • Integration Testing
    • System Testing
    • Regression Testing
    • Acceptance Testing
    • Alpha Testing
    • Beta Testing
  • Non-functional Testing
  • Performance Testing
    • Load Testing
    • Stress Testing
  • Usability Testing
  • Security Testing
  • Portability Testing
A to Z Full Forms and Acronyms
Sarthak Varshney

Sarthak Varshney

Sarthak Varshney is an author and software developer and His rich skill set includes developing and managing IT/Web-based applications in different technologies, such as – VMware Cloud, VMware Horizon, vROPs, vRLI, SRM, Cloud Computing, AWS, Microsoft Azure, IBM Cloud, Big Data, Hadoop, Docker, Kubernetes, JavaScript, ASP.NET Using C#, to SQL Server, HTML 5, Bootstrap, Angular JS, and Android Application Sarthak possesses a Master’s of Computer Application and has been actively contributing to the development community for its betterment and improve the knowledge

Related Article

Cookies.

By using this website, you automatically accept that we use cookies. What for?

Understood