Date: 1/5/2020Guests: None
Welcome and greetings
Recap of last episode
- In the last episode, we talked about the need to start your testing early in your Software Development Life-cycle (SDLC) where it is cheaper to remove defects that are found. We also discussed some of the reasoning by why you need to start early testing, some types of early testing, and costs of early testing…..or starting early.
Summary of this episode
- In this episode, I’m going to discuss some of the different types of testing and where they typically fit into your SDLC.
What’s in it for you?
- After listening to this episode, you should have a better understanding of the types of testing that are typically seen in a SDLC and what they are composed of.
- Requirements review
- Unit Testing – testing of a specific piece of code. This is a test for the smallest functional piece of code. Think of this as testing a specific function or method.
- Component Testing – This is used to test the complete functionality of a class. All of this testing should be stand-alone and only involve the functions and methods of this class. It can be thought of as method a calls method b and passes a defined set of data and expects method b to return a defined response (data, true/false, etc.).
- Component Integration Testing – This consists of testing how the components of your application interact with each other. It can consist of passing a specific set of data between the functions in your class to ensure that they output of the class meets the defined criteria.
- System Integration Testing – This testing is usually performed when your application is deployed to a defined testing environment. The environment should have all the infrastructure, middle-ware, and data to support your testing. This type of testing is used to evaluate how your application interacts with external entities. It could be a call to another application or website, a call to an internal company API (Application Programming Interface), or writing to an external database for logging. This type of testing can be very extensive and time-consuming if it is done manually.
- User Acceptance Testing – This testing is done after you have deployed your application to a stand-alone environment and your business users are the only ones that are allowed to test against it. They should be trying to determine if the application or changes meet the needs as outlined in the business requirements (remember when we said the easiest type of test was a requirements review).
- Regression Testing – this is a defined set of tests that are run every time that a change is made to an existing application.
- Smoke Testing – This is a sub-set of your regression test suite that can be run around a specific change to ensure that the application is performing as expected.
- Non-functional Requirements
- Performance Testing – uses a defined load against the application (ex. 100 http sessions started per second)
- Load Testing – tries to determine how the application will work under a higher than normal load or usage.
- Break Testing – ramps up the load until the application breaks. This is done to determine what your real capacity is for the infrastructure that you have set up for your testing (ex. 1 web server can handle 1,000 http sessions per second). Then you can use that to extrapolate how much infrastructure that you will need for your expected production capacity.
- Spike Testing – This testing tries to determine how your application will handle unexpected spikes in traffic. Will the application continue as normal, will it slow down, or will it stop working and crash unexpectedly.
Recap of this episode
- In this episode, I discussed various types of testing and where they are typically found in the SDLC. This is not an all encompassing list and does not dive too deeply into each type but is a general overview of how they can be used and how you might want to think about using them to testing your applications.
Shout-outs- Mike Lyles and his new book – The Drive Thru is NOT Always Faster
Like me Like my podcast – share, like, thumbs-up, review, subscribe
Next Episode: Test automation