Dichotomies in software testing

  1. The False Dichotomies of Automated Testing
  2. The different types of testing in software
  3. Software Testing


Download: Dichotomies in software testing
Size: 58.19 MB

The False Dichotomies of Automated Testing

This is the first in a series of posts about automated testing for software developers. I’ve been fascinated by this thing called “programming” since I first learned I could enter BASIC programs into my family’s Commodore 64 when I was 8 years old. I became a full-time software developer in 2006. And I “got religion” about automated tests shortly after that. But still not everyone is as “enlightened” as I am when it comes to writing automated tests. In fact, I’ve run into a large number of fellow software developers who are absolutely convinced, for one reason or another, that those like me are utterly naïve when it comes to the pragmatic reality surrounding automated tests. This series intends to address the criticisms I’ve most often heard lodged against automated testing. But my goal isn’t simply to preach salvation to the lost testing nay-sayers. The truth is that most of these criticisms are based on some element truth–truth newly initiated Testing converts often overlook in their zeal for their newfound religion. So if you’re looking for debate fodder with which to clobber your test-nay-saying colleagues, you’re probably in for a bit of a rude awakening yourself, too. Why Automated Testing is great I do think automated testing is great, and for many reasons. I’ve written The 17 Reasons why Unit Tests Will Save The World will have to wait for another day. My goal with this series is to bring some semblance of reason to what far too often becomes a polarizing debate th...

The different types of testing in software

It's important to make the distinction between manual and automated tests. Manual testing is done in person, by clicking through the application or interacting with the software and APIs with the appropriate tooling. This is very expensive since it requires someone to setup an environment and execute the tests themselves, and it can be prone to human error as the tester might make typos or omit steps in the test script. Automated tests, on the other hand, are performed by a machine that executes a test script that was written in advance. These tests can vary in complexity, from checking a single method in a class to making sure that performing a sequence of complex actions in the UI leads to the same results. It's much more robust and reliable than manual tests – but the quality of your automated tests depends on how well your test scripts have been written. If you're just getting started with testing, you can read our continuous integration tutorial to help you with your first test suite. Looking for more testing tools? Check out these Automated testing is a key component of 1. Unit tests Unit tests are very low level and close to the source of an application. They consist in testing individual methods and functions of the classes, components, or modules used by your software. Unit tests are generally quite cheap to automate and can run very quickly by a continuous integration server. 2. Integration tests Integration tests verify that different modules or services used by...

Software Testing

Software testing can be stated as the process of verifying and validating whether a software or application is bug-free, meets the technical requirements as guided by its design and development, and meets the user requirements effectively and efficiently by handling all the exceptional and boundary cases. The process of software testing aims not only at finding faults in the existing software but also at finding measures to improve the software in terms of efficiency, accuracy, and usability. It mainly aims at measuring the specification, functionality, and performance of a software program or application. Software testing can be divided into two steps: 1. Verification: it refers to the set of tasks that ensure that the software correctly implements a specific function. 2. Validation: it refers to a different set of tasks that ensure that the software that has been built is traceable to customer requirements. 1. Manual Testing: Manual testing includes testing software manually, i.e., without using any automation 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 softw...