570 likes | 860 Views
Dr.S.Sridhar, Ph.D., RACI(Paris, NICE), RMR(USA), RZFM(Germany), RIEEProc . DIRECTOR-Technical P.B. COLLEGE OF ENGINEERING. Latest Trends in Software Testing. Software Testing. Testing is the process of exercising a program with the specific intent of finding
E N D
Dr.S.Sridhar, Ph.D., RACI(Paris, NICE), RMR(USA), RZFM(Germany), RIEEProc.DIRECTOR-TechnicalP.B. COLLEGE OF ENGINEERING
Software Testing Testing is the process of exercising a program with the specific intent of finding errors prior to delivery to the end user.
What is Software? Software is a set of items or objects that form a “configuration” that includes • programs • documents • data...
Software Applications • system software • real-time software • business software • engineering/scientific software • embedded software • PC software • AI software • WebApps (Web applications)
A Layered Technology Software Engineering Software Engineering tools methods process model a “quality” focus
Where Do We Begin? modeling Prototype Spec Design
Data Abstraction door manufacturer model number type swing direction inserts lights type number weight opening mechanism implemented as a data structure
Procedural Abstraction open details of enter algorithm implemented with a "knowledge" of the object that is associated with enter
Interface Design Easy to learn? Easy to use? Easy to understand?
What Testing Shows errors requirements conformance performance an indication of quality
Who Tests the Software? developer independent tester Understands the system Must learn about the system, but, will test "gently" but, will attempt to break it and, is driven by quality and, is driven by "delivery"
Exhaustive Testing loop < 20 X 14 There are 10 possible paths! If we execute one test per millisecond, it would take 3,170 years to test this program!!
Selective Testing Selected path loop < 20 X
Software Testing black-box methods white-box methods Methods Strategies
White-Box Testing ... our goal is to ensure that all statements and conditions have been executed at least once ...
Basis Path Testing First, we compute the cyclomatic complexity: number of simple decisions + 1 or number of enclosed areas + 1 In this case, V(G) = 4
1 2 3 4 5 6 7 8 Basis Path Testing Next, we derive the independent paths: Since V(G) = 4, there are four paths Path 1: 1,2,3,6,7,8 Path 2: 1,2,3,5,7,8 Path 3: 1,2,4,7,8 Path 4: 1,2,4,7,2,4,...7,8 Finally, we derive test cases to exercise these paths.
Loop Testing Simple loop Nested Loops Concatenated Loops Unstructured Loops
Black-Box Testing requirements output input events
Equivalence Partitioning user queries input output formats mouse picks data prompts
Boundary Value Analysis user queries input output formats mouse picks data prompts output domain input domain
Other Black Box Techniques • error guessing methods • decision table techniques • cause effect graphing
Testing Strategy unit test integration test system test validation test
Unit Testing module to be tested results software engineer test cases
Integration Testing Strategies • Options: • • the “big bang” approach • • an incremental construction strategy
Top Down Integration A top module is tested with stubs B F G stubs are replaced one at a time, "depth first" C as new modules are integrated, some subset of tests is re-run D E
Bottom-Up Integration A B F G drivers are replaced one at a time, "depth first" C worker modules are grouped into builds and integrated D E cluster
The Debugging Process test cases results new test cases regression tests suspected causes Debugging corrections identified causes
Attributes of Web-Based Applications Network intensive. By its nature, a WebApp is network intensive. It resides on a network and must serve the needs of a diverse community of clients. Content-Driven. In many cases, the primary function of a WebApp is to use hypermedia to present text, graphics, audio, and video content to the end-user. Continuous evolution. Unlike conventional application software that evolves over a series of planned, chronologically-spaced releases, Web applications evolve continuously.
Design for WebE • Architectural design — laying out the page structure of the WebApp • Navigation design — defining the manner in which pages will be navigated • Interface design — establishing consistent and effective user interaction mechanisms
Architectural Styles Linear structure Grid structure Network structure Hierarchical structure
Testing for WebE – I 1. The content model for the WebApp is reviewed to uncover errors. This ‘testing’ activity is similar in many respects to copy-editing for a written document. 2. The design model for the WebApp is reviewed to uncover navigation errors. Use-cases, derived as part of the analysis activity, allow a Web engineer to exercise each usage scenario against the architectural and navigation design. 3. Selected processing components and Web pages are unit tested. When WebApps are considered, the concept of the unit changes. Each Web page encapsulates content, navigation links and processing elements (forms, scripts, applets). 4. The architecture is constructed and integration tests are conducted. The strategy for integration testing depends on the architecture that has been chosen • a linear, grid, or simple hierarchical structure—integration is similar to conventional software • mixed hierarchy or network (Web) architecture — integration testing is similar to the approach used for OO systems.
Testing for WebApps – II 5. The assembled WebApp is tested for overall functionality and content delivery. Like conventional validation, the validation of Web-based systems and applications focuses on user visible actions and user recognizable outputs from the system. 6. The WebApp is implemented in a variety of different environmental configurations and is tested for compatibility with each configuration. A cross reference matrix the defines all probable operating systems, browsers, hardware platforms, and communications protocols is created. Tests are then conducted to uncover errors associated with each possible configuration. 7. The WebApp is tested by a controlled and monitored population of end-users. A population of users that encompasses every possible user role is chosen. The WebApp is exercised by these users and the results of their interaction with the system are evaluated for content and navigation errors, usability concerns, compatibility concerns, and WebApp reliability and performance.
Good luck and best wishes from Dr.S.Sridhar For any further help, please get in touch with me over drssridhar@yahoo.com