ANZTB Test 2013: Advancing Expertise in Software Testing
6 June 2013
Canberra, Australia 1
Marie WalshANZTB
Advancing Expertise in Software Testing
Presenter: Marie WalshJune 2013
ANZTB Test 2013: Advancing Expertise in Software Testing
6 June 2013
Canberra, Australia 2
From Development?
From “The Business”?
Graduate?
Other?Electrical Engineering?
from to Phase Description - 1956 Debugging Programs are written and then tested by the programmer until
they are satisfied that any bugs have been removed. The tests are ad-hoc based on the programmers experience and generally focused on getting the system to run. There is no clear distinction between testing and development.
1957 1978 Demonstration Debugging is still performed to ensure the system runs, but an additional layer of testing is added to demonstate that the system does what it is supposed to do.
1979 1982 Destruction The focus of testing changes from proving the system does what is supposed to do, and try to identify faults with the system. The term Debugging comes to mean locating and resolving the faults identified. This is attributed to the publication of Myer’s book The Art of Software Testing.
1983 1987 Evaluation With the realisation that the earlier in the lifecycle a fault is detected the cheaper it is to resolve, testing becomes an activity at the end of each stage of the development lifecycle.
1988 - Prevention The idea is to prevent errors in each stage of the lifecycle by testing as each stage progresses. Testing takes on the focus of finding where errors might be made.
Source: D. Gelperin, B. Hetzel: The Growth of Software Testing. 1988
ANZTB Test 2013: Advancing Expertise in Software Testing
6 June 2013
Canberra, Australia 3
Previously had the stigma of “let’s put the has‐been developers out to pasture”
Previously had the stigma of “any monkey can test”
Previously seen as the stepping stone into development
Early Misconceptions:
ANZTB Test 2013: Advancing Expertise in Software Testing
6 June 2013
Canberra, Australia 4
Testing is now seen as a professional career path
Testers’ skill‐sets are now industry recognised and highly sought after
Testers are now involved earlier in the software lifecycle due to value‐add benefits
Where we are today:
Experience in Testing Web-services and SOA based applications using various tools such as SOAPUI
Good Understanding of Database testing concepts and writing queries
Define, implement and maintain appropriate test automation and performance testing frameworks
Strong understanding of security architecture with previous experience testing large and complex network infrastructure
Experience of scripting and programming languages, e.g. Python, Perl, TCL, C/C++, Linux
Experience in data conversion/migration projects
In-depth knowledge and extensive hands on experience in test automation & performance testing strategies, frameworks and scripting
Previous experience in all aspects of Security Testing
Create and work with MS Access databases, load data files and build a test harness through the development of SQL queries
SQL Queries and technical development/testing is essential
Experience in Selenium WebDriver, soapUI and JMeter
Java and other programming language skillsHands-on working experience in Premium, Low cost and Open source Testing Tools
Web Interface : Java, JEE, JSP, Spring, Hibernate
Web Technologies : HTML, JSP, JavaScript, AJAX
Database : Oracle 8i/9i/10g
Configuration Management tools: VSS & SVN
OS : Linux, Windows NT 4.0/2005/2007/XP/Win 7
Recent roles advertised on seek.com.au for testers include the following required skills
ANZTB Test 2013: Advancing Expertise in Software Testing
6 June 2013
Canberra, Australia 5
Employers are now also looking for testers who can test lower in the technology stack of the application, eg: at the API level, interface level, data layer, etc
There has been an increase in the past few years of the number of testing roles advertised requiring testers must have technical skills
Test Automation, Performance Testing & Security Testing are just a few aspects of technical testing employers are looking for… but there are others
Testing lower in the technology stack usually involves:
Etc…
Reviewing the system architecture to identify low‐level risk areas to focus test activities (e.g.: interfaces, component linkage, security and authorisation structures, etc.)
Reviewing system logs to identify any silent failures within the system, and also to provide further trouble shooting information on any system failures detected during application testing
Reviewing data models and interrogating the database to confirm: ▪ Data model structure, completeness, accuracy, meets conformance standards,
etc.▪ Referential integrity of data▪ Correct behaviour of triggers, functions, stored procedures, views, etc
Reviewing & verifying deployment and installation of the system
ANZTB Test 2013: Advancing Expertise in Software Testing
6 June 2013
Canberra, Australia 6
Why is the landscape for testing changing?Complexity of software, including: ▪ More complex calculations and functionality required in systems (e.g.
multi‐dimensional data, big data, BI, complex system security measures to protect from increasing malicious security attacks, etc.)
▪ Increase in number of systems integrating with other systems in real time
Agile has introduced: ▪ More collaboration between development and testing – therefore testers need to be technical to work alongside the developers
▪ Shorter development and test cycles, therefore testers need to be able to automate as much testing as possible to enable sufficient test coverage for each iteration/sprint
The testing market is a lot more competitive now – employers are expecting to be able to hire more advanced testers
With technology now more complex and reduced timeframes:
The developer’s role is also changing– they are becoming more test focused, with techniques such as Test Driven Development
As testers we also need to change. We need to become more technical to be enable us to collaborate with developers and keep up with the advancements in technology
ANZTB Test 2013: Advancing Expertise in Software Testing
6 June 2013
Canberra, Australia 7
If you enjoy testing, and are good at it – why would you want to quit? The skills you have as a tester are invaluable, and will provide an excellent foundation to advancing your technical testing knowledge.
But I’m not technical – should I just call it quits and throw in the towel?
Start asking questions:Find out about the technology the application is being developed in Sit with the developers while they investigate system problems & ask questions
Start doing:Write some automation test scriptsWrite some SQL scripts to interrogate the databaseReview system logsStart deploying/installing the application into the test environmentsStart generating and scripting test data for system testing
Start reading:Technical booksWeb sites
Start learning:On the job▪ Learn how to read and interpret system logs▪ Learn how to deploy/install the applicationTechnical coursesAdvanced level ISTQB courses (eg: Advanced Technical Test Analyst)
ANZTB Test 2013: Advancing Expertise in Software Testing
6 June 2013
Canberra, Australia 8
What’s now on offer for testers to grow?
Grow, develop and improve current technical
skills
Work collaboratively with development teams
Become involved in other areas of your organisation
(eg: release management/deployment)
Attend technical user groups and special interest
groupsUtilise and benefit from test
automation
Attend testing user forums, seminars, special interest groups and conferences
Join online technical communities and groups
(eg: LinkedIn, etc)
Continue to learn, improve
skills and advance your
career
Marie [email protected]