Software Testing
Software testing is an important process that evaluates and verifies a software application works as intended.
Types of Software Testing
There are many different types of software testing, some are:
- Acceptance – The entire system as a whole is tested and verified
- Integration – Ensuring that individual parts of a software system properly work together
- Unit – A unit is the smallest testable component of a software system. This type tests each unit and verifies correctness.
- Functional – Tests functions by emulating business scenarios
- Performance – Tests the performance of the software under different system workloads
- Regression – Tests rigidity of the software by adding new features and seeing if those new features break or impede on fucntionality
- Stress – Testing the software under maximum workload to see how much the system can handle until it fails
- Usability – Testing how well a customer can complete tasks using the system
Software Testing Best Practices
The software testing process is typically done with a common methodology. Steps to this methodology can include configuring test environments, writing test cases, analyzing test results, and submitting bug reports. Testing tasks are typically automated using tools. Automating tests is beneficial because it allows teams to quickly implement different test cases, test frequently, and get feedback on what did/didn’t work.
Some best practices include:
- Continuous testing – Testing builds as soon as they are ready. This relies heavily on automated testing, allowing software to be validated earlier in the development process. Testing often allows for bugs and errors to be found earlier; therefore, reducing the amount of time spent having to go back and redesigning.
- Configuration Management – Organizations keep test assets (code, test scripts, requirements, etc) in a central location and track what builds need to be tested. These assets allows teams to follow the organization’s testing requirements.
- Bug Tracking – Keeping track of defects is important
Why Test Software?
Testing software regularly can help teams reduce costs and time spent on developing the software. Before releasing a project, testing the software for any errors or bugs is important to give users the best possible experience. If users find that the software does not work as intended, they may stop using it and find an alternative that does work. Although testing has a cost, the cost of releasing defective software outweighs that of continuous testing.
Reflection
The resource used was chosen because it clearly breaks down the different parts to software testing such as the different types of testing, best practices, and why testing is important. Prior to reading this article, I had heard of a few types of testing like Unit Testing, but only became aware of the other types of testing such as Regression Testing. I now understand when designing software, code should be tested regularly and often as overall it will save time and headache.
Resources:
From the blog CS@Worcester – Zack's CS Blog by ztram1 and used with permission of the author. All other rights reserved by the author.