Академический Документы
Профессиональный Документы
Культура Документы
Software testing through the ages 1 Show me the money: The cost of quality software 18
Waterfall development: Document then develop 2 Historically testing mobile hasn’t just different.
“Don’t go chasing Waterfall” 3 It’s been harder. 19
Made in the USA — the industrial roots Challenges managing costs in mobile software testing 20
of software development 4 Buried in the economics of native mobile testing 21
History lesson 5 Scale up or stretch the timeline? 22
Agile methodology in software testing 6 Managing the cost of quality with automation 23
Don’t throw code over the wall. Take down the wall. 7 Mobile testing in 2016 25
The case of exploding defects 8 Automate to great 26
6 reasons to involve software testing at The benefits of automation 27
the beginning of the project 9 Even more benefits 28
Software testing methodologies deconstructed 10 The tension between design and
mobile automation testing 29
Types of testing 11
Automation QA’s, the enemy of Agile? 30
Story-based testing 12
The role of user personas in mobile automation testing 31
Sprint testing 13
So why isn’t EVERYONE using test mobile automation? 32
Feature/Code freeze and regression testing 14
Manual regression — gone wrong 33
Performance testing 15
Performance test steps 16
What’s lurking in the shadows of mobile testing? 17
Table of Contents
1
Waterfall development: Document then develop
2
“Don’t go chasing Waterfall”
3
Made in the USA — the industrial
roots of software development
The decision to involve testers at the end of the There’s a huge difference between building a smoke
development lifecycle evolved from the process used detector and building an app. Software isn’t built using
to manufacture physical goods. plastic and metal. It’s structured with ideas. As fast as
an opinion changes, so too can the output of software
In manufacturing, electrical or mechanical engineers development. Along the way there are opportunities
would design the process to a build widget — take a for logical oversights and a need for validation
smoke detector for example. throughout the process. Software can also be released
far more frequently than changing the manufacturing
Once the smoke detector was built, it was checked for line of smoke detector production.
quality. Testers weren’t involved along the way. There
was no need. Their only purpose was validating the Applying the same constraints used in the physical
functionality of the device — not informing the build. world no longer made sense. Only this industrial
process needed more than a revolution to improve
inefficiencies in software testing.
4
History lesson
In the ’90s, the sequence of quality assessment changed.
Statistical Process Control (SPC) came into vogue. Following
SPC, meant verifying the process was in control and capable
at all times i.e. measure during the process rather than at the
end. This mentality, while identical to the new approach to Agile
software testing, preceded it by nearly a decade.
5
Agile
methodology
in software
testing
6
Don’t throw code over the wall.
Take down the wall.
But rather than continuing to develop, pass code over the metaphorical “wall” to
testers and wait for a defect report to be sent back as if by carrier pigeon, Agile
methodology helped reimagine this antiquated development methodology.
Agile allocates testers at the beginning of the project as members of the core
project team. That way, changing ideas can be tracked and features tested as
they roll off the “assembly line.” In Agile, testing occurs during each two-week
sprint rather than posthumously, after development is completed.
Accepting Agile
The Agile process acknowledges that the needs of the enterprise are
constantly shifting during the ideation and build process. Pushing the pause
button on business is a happy, albeit unrealistic, hope during software
development. The reality is: Business development and learnings don’t stop
when software development starts. Minds change. Requirements are adapted.
Product teams and testers needed a new way to serve to the needs of
businesses.
Agile values shipping code over the extensive documentation that defined the
old process. By documenting less, developers can do more.
7
The case of exploding defects
8
6 reasons to involve software testing
at the beginning of the project
1. 2. 3.
Moving software testing forward Passive validation on the back-end of The difficulty validating software
in the process gives quality testers the project doesn’t leverage the vast exponentially increases if they aren’t
a “red rope to pull” in challenging experience and intuition of testers. able to track and understand the
the development team should they changes to initial requirements being
identify logical oversights occurring made along the way.
during the build.
4. 5. 6.
Your testers are capable of more than Two words: Accumulated bugs. If software testers are involved
just rote checks. They are the first Therein lies an increased risk for throughout the development cycle,
users of your solution. Incorporating defects if testers aren’t working in test cases can be documented
this experiential feedback at the concert with developers and checking at a high level. The alternative?
beginning of the lifecycle allows interactions with existing functionality Developers documenting in detail
functionality to be adjusted along the as new features are developed. the needs for QAs operating with
way (if it lands in scope). no relative context.
9
Software testing methodologies deconstructed
Unlike the historical development methodology, Agile accommodates rapid directional pivots and
saves testers time deciphering requirements made as the needs of the target market shifted.
Code was delivered at the end of the project. Code is delivered for testing throughout
development lifecycle.
Software testers were passive participants, Software testers are active advocates for
feedback was ignored if it compromised the development logic and share feedback as
release schedule. insights are gathered.
10
Types
of testing
11
Story-based testing
12
Sprint testing
The approach:
• Determine code changes for
new features and bug fixes
• Determine changes in user interface
• Determine how the change could impact
the surrounding functions
• Follow up with development team to discuss
any potential problem areas after the change
Action:
Select test cases based on the above determinations and
execute them during the sprint before code freeze. The
goal? To discover any potential issues during the sprint
testing, prioritize and address them before code freeze.
13
Feature/Code freeze and regression testing
During this phase, no further modifications will be made related
to new feature implementations. Features are frozen typically one
sprint before deployment to production. Though, the length of the
freeze period depends on project complexity and size. Adding new
features right up until the release represents a huge risk for quality.
Similarly, implementing new user stories during this time increases
the risk of introducing regression defects your testers may miss in
the haste of the release.
Action:
Select test cases based on the above criteria
and execute them during code freeze.
14
Performance testing
Pro tip
It’s important to hold the performance test as early as possible before the production release.
15
Performance test steps
16
What’s lurking in the shadows of mobile testing?
Many of the most burdensome defects are hidden beneath the surface
in the backend database. SQL queries can help crack the code by
analyzing the database to learn what’s inside and explore how the data
is being stored.
17
Show me the money:
The cost of quality
software
18
Historically testing mobile hasn’t been just different.
It’s been harder.
Why?
19
Challenges managing costs in
mobile software testing
value of the product decreases. The tester/developer relationship is • OS vendor and versions
much like that of the editor/writer. Writers shouldn’t proof their own • App versions
work. They WILL miss things. They’re too close. The same can be said • Server versions
20
Buried in the economics
of native mobile testing
When weighing the often unintended impact of cost in mobile development
and testing. Compare the complexity of these two scenarios:
Mobile architecture
Native mobile with a cloud backend
In this case, backward and forward compatibility become All phones are talking to the cloud.
much more important. There might be two versions of the When that backend is updated, the
server and four versions of the app in use. Before a release, update process on the phones is
you need to guarantee that every combination works. instantaneous. It’s a much simpler,
Regression tests must be repeated eight times over and less expensive process to manage
again for every subsequent release. what’s deployed in the cloud.
Regression drivers: New OS ships, new server ships, Verdict: Testing is manageable.
new app ships Additional measures to mitigate
the time/effort testers spend
Verdict: You’re buried in the economics of testing. aren’t needed.
Suddenly, the focus isn’t on the software — it’s hiring more
bodies to keep up with it effectively doubling and tripling
your project costs to keep release times short.
21
Scale up or stretch the timeline?
• Keep high regression coverage and increase the time for testing
• Spend the same amount of time on testing and reduce the Why pile people on the
regression coverage problem? Just fix it.
Economics justify an investment in automated testing. With automated Manually repeating these tests is
regression testing there is no need to reduce testing coverage to expedite costly and time consuming. Once
a release timeline. Automated tests are fast and can be ran frequently — created, automated tests can be run
cost-effective for software products with a long maintenance life. New test over and over again at no additional
cases can be added to the existing automation in parallel. Automation allows cost. Beyond that, they are much faster
developers and software testers to work in parallel. As developers are and more accurate than manual tests,
building the solution, software testers are building the automation to test it. when configured properly.
22
Managing
the cost of
quality with
automation
23
Mobile testing in 2016
24
Automate to great
25
The benefits of automation
26
Even more benefits
27
The tension between design and mobile testing
In this way it was possible to create highly fragile test code that was
costly to recreate when seemingly “minor” UI changes were made.
It just wasn’t feasible to re-record the tests. The cost to update the
tests began to exceed to cost of the change.
28
Automation QA’s, the enemy of Agile?
29
The role of user personas in mobile automation testing
30
So why isn’t EVERYONE using mobile test automation?
Mobile testing represents a shift in expertise many Exploring the risk and return
teams just aren’t ready for. Writing the automation of mobile automation
scripts involves a new skillset.
The risk (investment)
Mobile automation also represents a philosophical • Increased cost to build and perform first test
shift for teams. It must be implemented at the very • Increased cost to maintain working tests
beginning of a project. The initial costs to build the
automation may seem difficult to justify for teams just The return
beginning to use automation. Here’s how it pays off. • Cost to repeat existing tests on old app versions
against old server versions drops dramatically
• Cost to repeat tests throughout development cycle
for new features plummets
• Predictability for release cycles improves
• Continuous integration now possible
31
Manual regression — gone wrong
32
Breaking down an investment
in automation (156 hours)
13% 77%
Framework Regression test cases
Establish automation framework These are the most critical test cases that
that will be the foundation of the test must be performed for each build delivered to QA
5%
Test cases
5%
Execution reports
Add automation test cases Create the execution reports
into continuous integration for your test cases
33
An alternative
to automation:
Risk-based
testing
34
Why risk-based testing?
35
Intuition is a testers’ best friend
36
Enter the cloud
Testdroid SOASTA
The benefits
• No growing device lab and shipping hardware between locations
• Equally accessible to all team members in a distributed team
37
Communication is king
38
Transforming our expectations of quality
It should call out found and closed issues helping your project
team visualize and gauge the overall stability of development.
39
When should you take your testing external?
40
Software testing
tool kit
41
Test strategy document
High risk Execute all high Execute all high, Execute a specific Execute part of
changes importance test medium and low list of high test high and medium
cases importance test importance cases importance test
cases cases
Medium risk Execute part of high Execute all high, Execute a specific Execute part of
changes importance test medium importance list of high high and medium
cases test cases importance test importance test
cases cases
Low risk Execute part of high Execute all high Execute a specific Execute part of high
changes importance test importance test list of high importance test
cases cases importance test cases
cases
42
Interactive tools
device matrix
43
Talk with an expert
Ready to innovate. Contact us to learn more about our software
testing process and mobile test automation.