Software Testing
www.softheme.com
History, Trends, Perspectives – a Brief Overview
www.softheme.com Outsourcing to Softheme™ Software Testing
Table of Contents Definition
Importance of Software Testing
Sample Testing Cycle
Unit Testing
Unit Testing Benefits
Automated Testing
Agile Testing
Future of Testing
DefinitionSoftware testing is an investigation conducted to provide
stakeholders with information about the quality of the product or service under test. Software testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks at implementation of the software.
Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs.
www.softheme.com Outsourcing to Softheme™ Software Testing
Importance of Software Testing
To improve Quality
Know where your problem is
Prove usability and operability
For reliability estimation
Prevent defect migration
www.softheme.com Outsourcing to Softheme™ Software Testing
Sample Testing Cycle
Requirements analysis Test planning
Test development
Test execution
Test reporting
Test result analysis
Defect Retesting
Regression testing Test Closure
www.softheme.com Outsourcing to Softheme™ Software Testing
Unit Testing
Unit testing is a method by which individual units of source code are tested to determine if they are fit for use. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual function or procedure. Unit tests are created by programmers or occasionally by white box testers.
www.softheme.com Outsourcing to Softheme™ Software Testing
Unit Testing BenefitsFacilitates changeUnit testing allows the programmer to refactor code at a later date, and make sure the module still works correctly. The procedure is to write test cases for all functions and methods so that whenever a change causes a fault, it can be quickly identified and fixed.
Simplifies integrationUnit testing may reduce uncertainty in the units themselves and can be used in a bottom-up testing style approach. By testing the parts of a program first and then testing the sum of its parts, integration testing becomes much easier.
www.softheme.com Outsourcing to Softheme™ Software Testing
Unit Testing BenefitsDocumentationUnit testing provides a sort of living documentation of the system. Developers looking to learn what functionality is provided by a unit and how to use it can look at the unit tests to gain a basic understanding of the unit API.
DesignWhen software is developed using a test-driven approach, the unit test may take the place of formal design. Each unit test can be seen as a design element specifying classes, methods, and observable behavior.
www.softheme.com Outsourcing to Softheme™ Software Testing
Automated Testing
Test automation is the use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions. Commonly, test automation involves automating a manual process already in place that uses a formalized testing process.
www.softheme.com Outsourcing to Softheme™ Software Testing
Automated TestingWhy?
Automated Software Testing Saves Time and Money
Automated Software Testing Improves Accuracy
Automated Software Testing Increases Test Coverage
Automated Software Testing Does What Manual Testing Cannot
Automated Software Testing Helps Developers and Testers
Automated Software Testing Improves Team Morale
www.softheme.com Outsourcing to Softheme™ Software Testing
Automated TestingTesting tools
Program monitors
• Instruction set simulator• Program animation• Code coverage reports
Formatted dump or symbolic debugging
Automated functional GUI testing
Benchmarks
Performance analysis
www.softheme.com Outsourcing to Softheme™ Software Testing
Agile TestingAgile testing is a software testing practice that follows the principles of
the agile manifesto, emphasizing testing from the perspective of customers who will utilize the system. Agile testing does not emphasize rigidly defined testing procedures, but rather focuses on testing iteratively against newly developed code until quality is achieved from an end customer's perspective. In other words, the emphasis is shifted from "testers as quality police" to something more like "entire project team working toward demonstrable quality."
www.softheme.com Outsourcing to Softheme™ Software Testing
Agile TestingProcess in Agile testing
Conversational test creation
Coaching tests
Providing test interfaces
Exploratory learning
www.softheme.com Outsourcing to Softheme™ Software Testing
Agile Testing
Human Testers
Software Product
Automation Fixtures
Man
ual
Testi
ng
Test
Descriptions
TestInterface
Test Interaction Model
www.softheme.com Outsourcing to Softheme™ Software Testing
Future of Testing
Testsourcing
Virtualization
Information
Moving Testing Forward
Testing Culture
Testers as Designers
Testing beyond Release
www.softheme.com Outsourcing to Softheme™ Software Testing
Future of TestingTestosourcing
1st Generation
Insourcing
Provide tools
2nd Generation
Outsourcing
Provide testing
3rd Generation
Crowdsourcing
Provide testers
4th Generation
Testsoursing
Provide test artifacts
www.softheme.com Outsourcing to Softheme™ Software Testing
Future of TestingTestosourcing
In order for testsourcing to take hold of the future of testing, two key technological barriers must be broken:
reusability of test artifacts
accessibility of user
environments
www.softheme.com Outsourcing to Softheme™ Software Testing
Future of TestingVirtualization
If tester want to test, say, Chrome, he visits a Web site, tells it how many machines he wants and what operating systems, drivers, apps, and the version of Chrome that he wants on them, and those machines are provisioned, and he can point my test automation at them. Tester doesn't care where they are. He doesn't care what they are. They exist, and they act just like the test environment that tester would otherwise have to painstakingly - and expensively - create.
www.softheme.com Outsourcing to Softheme™ Software Testing
Future of TestingInformation
“Information is at the core of everything we do as software testers. The better our information about what the software is supposed to be doing and how it is doing it, the better our testing can actually be. I find it unacceptable that testers get so little information and none of it is specifically designed to make it easier to do our jobs. I am happy to say that this is changing … rapidly … and that in the near term we will certainly be gifted with the right information at the right time.”
James Whittaker, International speaker
front-end Technical Architect Adobe Community Professional
www.softheme.com Outsourcing to Softheme™ Software Testing
Future of TestingTesters as Designers
As testing and test techniques move earlier in the process testers will do work more similar to software design than software verification. We will place more emphasis on designing quality strategy for all software artifacts and not just the binary. We will spend more time recognizing the need for testing rather than actually executing test cases. We will oversee and measure automation rather than building and debugging it. We will spend more time reviewing the status of pre-existing tests than building new ones. We will become designers and our work will be performed at a higher level of abstraction and earlier in the lifecycle.
www.softheme.com Outsourcing to Softheme™ Software Testing
Thank you!
2010 | Softheme Team | Kyiv, Ukraine | Software Outsourcing Solutions
www.softheme.com » Outsourcing to Softheme™
Questions? → [email protected]