Why Do We Test
Why Do We Test
Why We Test
Most software testers, when asked why they enjoy testing, will say things
similar to the following:
• I like to think about all the ways I can test new features.
• It ’ s fun to come up with ways to break the software.
• I like the challenge of learning how all the parts of an application work
together.
• But this is not why we are testing.
• We test to learn things about an application to ensure that our end users
have a good experience with it.
• Software is built to be used for something; if it doesn ’ t work well or
correctly, it is not accomplishing its purpose.
• For example:
• If a mobile app won ’ t load quickly, users will stop using it or will delete the app
from their phone.
• If a financial app suffers a security breach, the company that developed the app will
lose customers and may even be sued for damages.
• If an online store has a bug that keeps shoppers from completing their purchases, the
company will incur significant losses in sales.
Think Like a Tester
• It ’ s true that the whole software development team owns quality and that quality is
everyone ’ s responsibility.
• There are many people on a software development team who care deeply about
certain areas of an application:
• Developers write unit and integration tests to check the quality of their code.
• Product owners care whether the feature does what it ’ s supposed to do.
• UX designers care whether the user journey is intuitive.
• Security testers check the software for vulnerabilities.
• Performance engineers care about the application ’ s response time.
• But only true software testers care so much about the quality of the application
that they ’ ll do things like the following:
• Type ~!@#$%^&*()-=_+{}|[]:”;'<>?,./ into every text field to test for invalid character handling
• Try to purchase -1, 99999999999, 1.3415, and foo of something
• Enter a birth year of 3019 to see what happens
• Click every button twice to check for multiple submissions
• Click the forward and back buttons on every page of a website
• Test 48 different permutations of feature sets to be as thorough as possible
• Create dozens of test users with myriad security settings to have a variety of scenarios ready for testing at a moment ’ s notice
• Become experts on a particular feature and provide documentation and assistance to other testers
• Test the same feature in the QA, staging, and production environments to be absolutely sure it is working everywhere
• Test every feature on every supported browser and every supported mobile device
• This is why we need software testers who test.
• We need people who will continually ask themselves:
• “How can we break this?”
• “What haven’t we tested yet?” and
• “What features will be used with this?”
• We need software testers who don’t rush into writing automation without first
interacting with a feature.
• We need software testers who remember that the goal of all their efforts is to give the
user a positive, bug-free experience.
Why We’ ll Always Need Software
Testers
• A current positive trend in the software industry is to have the whole team
own quality.
• This means software developers think about quality in their code, test their
own code, and develop and contribute to test automation frameworks.
• Some companies have taken this trend to mean dedicated testers are no
longer needed.
• But this is not the case! Following are three reasons we will always need
software testers.
Reason #1: Teams Change
• Life brings about changes, and even a perfect team doesn ’ t last forever.
• A team member could retire, take another job, or move to another team, new members could
join the team.
• Every time a team changes by even one person, it becomes a brand-new team.
• This means there will be new opportunities to coach the team to build in quality.
• Even if the team members don ’ t change, other changes can occur that can challenge a team,
such as a new technical problem to solve, a big push toward a deadline, or a sudden increase
in the number of end users.
• All of these changes might result in new testing strategies, which means the team will need
a software tester ’ s expertise.
Reason #2: Times Change
• The emergence of the Agile model of software development, after the old Waterfall model.
• The emergence of the CI/CD (Continuous Integration/Continuous Deployment) was, and now it ’ s a
goal for most teams.
• There are pushes
• to shift testing to the left (unit and integration tests running against a development build), and
• to shift testing to the right (testing in production).
• Some of these practices may prove to be long-lasting and some will be replaced by new ideas.
• Whenever a new idea emerges, new ways of thinking and behaving are necessary.
• Software testing experts will be needed to determine the best ways to adapt to these new strategies.
Reason #3: Technology Changes
• The tools and languages that are in use today won ’ t be in use forever.
• Someone will come along and create a newer, more efficient tool or language that will replace
the previous one.
• For example,
• Cypress recently emerged as an alternative to Selenium WebDriver, which has been the automated browser
testing tool of choice for years.
• And many companies are moving toward cloud providers such as Amazon Web Services or Azure Web
Services to reduce the processing load on their servers.
• When a team adopts a new technology there will always be some uncertainty.
• A testing expert will be very valuable in helping to make decisions to adapt.
• Change happens, and teams must adapt to change; therefore, it is helpful
to have a team member who understands the best way to write a test plan,
conduct exploratory testing, or evaluate risk. Don ’ t go looking for a job
as a software developer! Your testing expertise is still needed.