Presentation on theme: "Rational Developer for System z Unit Test Feature"— Presentation transcript:
1 Rational Developer for System z Unit Test Feature A new feature providing mainframe development flexibilityDavid MyersRational Developer for System z Product Manager
2 2Business constraints with mainframe development today Which limits the amount of System z production workload coming online“My development capacity charge-back is consuming my entire budget. I can’t spend on tools.”“We don’t have the capital budget to obtain more mainframe test resources for my developers.”“I can’t even work on Mondays! Production workload kicks me off.”“It is difficult for my developers to learn the mainframe. Operations controls can prevent experimentation by developers..”“I can only test my batch applications in offline hours. Online apps consume the 9-5 cycles.”“Operations tell me it will take two months to get my test system allocated.”“The Mainframe isn’t cool anymore.”“I want to try out creating Event Processing and ATOM apps, but my system isn’t scheduled for a CICS/IMS update till 2012.”22
3 Mainframe development environment with RDz and ISPF RDz provides relief…but customers want more RDz userISPF userRDz userModern IDEs like RDz:Productivity enhancing tooling; more attractive tooling for new developersAbility to offload some development MIPS usageIntegration with complete application lifecycle toolsBut challenges remain:Business pressures to manage mainframe MIPS usage for developmentUnit test delays caused by dependencies on operations team3
4 Today’s RDz AD development cycle 4Today’s RDz AD development cycleApplication DeveloperWintelUsing tooling like RDz definitely has benefits and still some challenges, especially with testing….System programming challengesGap between the Developers and IT Operations staffLack of available System programming skills or delays in getting requests completedCross platform application developmentDevelopers don’t have control of non-Intel systemsThe ability to easily configure and deploy an application to the target runtime for testing can be a very time-consuming task.The mainframe development environment is perceived as being more expensive on System z than on other platformsActually, there is no differentiation of mip costs between development mips vs test mips vs production mips.What does this cost companies?CreateRationalDeveloper forSystem zCommonsource codeSystem ProgrammerSystem zBuildHighLevellanguageJavaCOBOLPLISystem zexecutable codeOS/390TestOS/390TestOS/390TestThe ability to easily configure and deploy an application to the target runtime for testing proves to be very programmer time-consuming task as well as the ability to automatically test the resulting application/service. This is accentuated when considering composite applications consisting of WAS and another platforms’ runtime.System zFormalTestSystem zproductionready codeOS/390TestProd
5 COBOL, PL/I, C++, Java, EGL, Batch, Assembler, Debug Tool RDz Unit Test Feature The ultimate in modern application development for System zNEW!COBOL, PL/I, C++, Java, EGL, Batch, Assembler, Debug ToolIMSDB2CICSWASMQRDz userz/OSRDz userx86 PC running LinuxRDz userISPF userRDz userRDz & ISPF userLiberate developers to rapidly prototype new applicationsDevelop and test System z applications anywhere, anytime!Free up mainframe development MIPS for production capacityEliminate costly delays by reducing dependencies on operations staffNote: This Program is licensed only for development and test of applications that run on IBM z/OS. The Program may not be used to run production workloads of any kind, nor more robust development workloads including without limitation production module builds, pre-production testing, stress testing, or performance testing.5555
6 Introducing the RDz Unit Test Environment Application DeveloperWin/LinuxProvides a local test environment for unit testing System z applicationsunit test processing on Linux versus mainframeCan enable companies obtain lower cost for development and unit testingGives flexibility to Developers/Teams to accomplish unit tests on the mainframe or offProvides a local System z development/unit test environment to simplify development investmentsFrees up more mainframe capacity to production workload usageStrengthens development processes through using actual compilers and runtimes in RDz Unit TestUse compilers for “true” syntax check/compile using Enterprise COBOL/PLIUse co-processors for IMS/CICS/DB2/Custom to cut down on re-implementation efforts on local platformProvides flexibility for system programming staff and developmentSystem programmers can define common test images for development teams for some centralization of control, but still provide developers with ability to make changesCreateRational Developerfor Systme z andUnit Test FeatureCommonsource codeBuildHighLevellanguageJavaCOBOLPLITestSystem zexecutable codeSystem ProgrammerSystem zBuildOS/390TestOS/390TestOS/390TestSystem zFormalTestSystem zproductionready codeOS/390TestProd
7 RDz Unit Test Offering Description The RDz Unit Test Feature consists of:Unit Test Environment (based on zPDT)Unit Test Environment can provide a System z development platform on a PCcapable of running z/OSprovides great flexibility to run a customized environmentSoftware stack provides a choice of IBM middleware test environmentsactual middleware software (including z/OS)actual enterprise compilersno API simulationRDz and RTCz agentspackaged for simplificationstill need RTC and RDz client license(s) to activateRDz Unit TestRTCz AgentRDz AgentSystem z S/W StackDebug ToolCICS DB2 WebSphere/z IMSAssembler COBOL C/C++ PL/I z/OSUnit Test Environmentx86 PC running Linux<USB License Key>7
8 RDz Unit Test limitations The RDz UT environment does NOT support all System z function, such as:Physical Parallel, ESCON®, FCP, FICON® and High Performance FICON channelsCoupling links and coupling facilitiesList-directed IPLExternal Time Reference (ETR)Server Time Protocol (STP)MIDAWsLogical channel subsystemsHiperSockets™Multiple I/O paths per deviceNot all CHSC functions are supportedSome IBM System z Crypto Express2Some IBM 3088 CTC deviceRDz UT does not produce an environment equal to a larger System z.Some aspects of a larger system are unlikely to be met in any very small environment.Inability to verify and enhance the scalability of a programInability to run application programs that require hundreds of MIPS.A UT system is not recommended for very fine-level performance tuning that is sensitive to memory location, cache functions, and pipeline optimization.In addition, the UT platform does not nearly have the same quality of service as does a mainframe in terms of availability and connectivity.Anyone needing any of the function outlined above should consider a traditional System z server.
9 How will RDz UT help me?Are you interested in testing your application changes on your PC/off-mainframe?RDz Unit Test provides a x86-based environment where you can test z/OS applications on a desktop or server machineAre your development systems overloaded?E.g., My development system is so slow! It takes 1 hour to compile!!E.g., There are not enough resources available for developmentRDz Unit Test provides a low cost mechanism to create additional development capacity without mainframe HW upgrades.Do you have difficulty testing application changes? Is too difficult or takes too much time to make changes to your test environment? Are there too many requests for unique test environments than your ops team can fulfill (catastrophic event testing, system failure, impact analysis, etc)?RDz Unit Test provides a separate test environment under the development team’s control allowing quick environment changes to be performed by development. The UT environment can be assigned to a small teams for unique test environments allowing more robust testingAre you being asked to use fewer MIPS for developmentRDz Unit Test provides a 0-MIPS development environment, allowing additional development resources to be easily allocated
10 Smarter Testing in the cloud How do we improve application quality?
11 z/OS Testing Architecture Testing is organized by application test teams sharing resources with limited automationz/OSApplicationTestTeamTEST LPARTestASApplicationTestTeamTestDataApplicationTestTeamTestAS…ApplicationTestTeamTestASFile Name Here.ppt
12 Vision for the futureLevel playing field between mainframe applications and distributed applicationsAutomated cloud of z/OS testing environmentsReadily availableEasy to define, provision, and disposeLow-costCollaborative and AgileEasy to promote workContinuous integrationHighly automatedProject or release focusedSmall-scaleTime boundedIsolated and focused
13 Testing Organized for Flexibility – After RDz UT z/OSz/OSProductionApplicationTestTeamz/OSUTRDzUTQ/ADataIntegration TestDataApplicationTestTeamRDzUTData…ApplicationTestTeamRDzUTDataFile Name Here.ppt
14 Large Financial Customer - Implementation RequirementProvide more responsive System z access for application developersReduce application software delivery through faster test cycleProvide each application group their own unit test facilityRDz-UT SolutionApplication developers have use of a uniquely defined RDz UT feature for System z accessRDz UT provides a unique test environment for different application development groupsSupports multiple RDz UT development environments on Intel blade to reduce server hardwareHas reduced application development test time
15 Manage z/OS test resources through RQM - Example
16 Moving towards low-cost z/OS automated testing Automation takes time and human effortProvides long term value by building up a test bucketTest automation can be written as function is added to build up the bucketPlans should be put in place to build up tests for existing function as wellIntegrates well with the use of RQM – start with manual test case steps makes it easier to see what can be automated and allows for building up a library of test scripts.Start with Automating the interactions done in the manual test cases using RFT or RSTz/OS Application Automated Testing can be divided into several categories in multiple ways:User Interactive (with multiple user interface technologies)Service Based testingEach of these can be broken down farther into:Online Synchronous, Asynchronous, and Batch.Batch application testing can be automated with a combination of RQM, RFT and Optim Test Data Management Solution16
17 Running Test Automation Test cases run through RQMUsers can run automated test cases to specified execution environmentsTest cases run as a specified build from RTCRTC Build engine can be used to kick off a set of test cases on specified platforms. Multiple builds can be run to run tests on multiple execution environmentsTest cases run at the end of an integration build from RTCTest automation can be integrated into the RTC build, such that after the build completes the tests are automatically runThis is the best practice for integration builds for at least a set of regression tests17
18 Automated Sub-setting and Testing of Data Results Optim - Relational Compare Facility RQMRFTOptimCOMPARE FILESOURCE 1COMPARE PROCESSOptimCompareREPORTTypical use is to run a test and then compare the before test image (extract file) to the after test data image (extract file or data in the database)Can also be pointed at 2 different running database instances or 2 different schemas etc.Map source 1 to source 2 by using a table mapEliminate columns from the compare by using a column mapBy default, uses primary key as the match key between the sources but you can also edit the match keys if necessary.Data is compared to dataSource 1 or 2 or both may be:Optim Access Definition (which selects data from DBMS tables)List of tables in the databaseOptim Extract fileGreat for regression testing where you expect no changes –Verify Test ResultsSOURCE 2Compare the test data before and after exercising the application to validate expected test results and identify anomalies automatically and with pinpoint accuracy.File Name Here.ppt
19 Benefits of smarter testing: Traceability and Insight Lifecycle traceability helps teams answer the harder questionsWhich requirements are addressed in this iteration?Are we ready to release?Are all of the requirements tested?Can we pass an audit?Product OwnerScrum MasterWhat defects were resolved in this release?What’s the quality of the high priority requirements?What defects are reported against which requirements?AnalystsWhat tradeoffs can we make to release on time?Traceability isn’t simply one of those “nice to have” capabilities in the software development lifecycle. Traceability helps you understand what everyone else on the team is doing. For example, while the requirements analyst knows very well what requirements she has written, she still needs to know whether a given requirement will be addressed during a specific development iteration and, if so, which one. Or she wants to know if the implementation of that requirement has been tested and with what result.An ALM solution that allows for lifecycle artifact traceability helps teams to answer the hard questions about requirements and risk management. By linking related artifacts, teams are better equipped to answer questions such as “which requirements are affected by defects?” and “which work items are ready for test?” It is important to understand how requirements, test and development are linked by projects and tasks.DON’T Do traceability for traceability sake.Identify a few meaningful questions or set one goal and institute a “just enough” approach for linking related artifacts. For example, link requirements and test cases, link test cases and development work items. Try one and get good at it before doing more.DON’T Rely on reports that go stale after you’ve created them.Practice continuous traceability: Leverage a system that shows the traceability links directly on the plan, or that uses queries that identify gaps, such as “Plan items without requirements” and “Plan items without test cases”, and “Defects blocking test.”DON’T Ignore, hide from or hope to pass regulatory auditsInvest in an ALM solution that makes traceability easy to do, maintain and report against.DON’T: Work in disconnected project repositories, or cobble together a disparate set of tools.Seek products built with open interfaces. Seek vendors who understand and support the ALM integration challenges. Invest in tools with a longer-term integration roadmap in mind.DON’T: Enter links manually after the fact, it’s easy to forget, hard to enforce.Integrated tools make it easy to establish as the project executes. See image of linked Defect in upcoming slideDON’T: Build your own integration based on proprietary API’s.Choose a solution with open services (OSLC) for linking data across the lifecycle.DON’T: Choose a one-size-fits-no-one solution.Invest in a loosely coupled, integrated ALM solution that is built to scale and support open and flexible integrations. A single ALM repository will not scale to fit your needs over time. Times change, new products emerge; your ALM solution needs to be flexible enough to move with the times. Do you really want to face that data migration challenge?Quality ProfessionalWhat is the quality of the build?DeveloperWhat requirements am I implementing?Release EngineerWhat has changed that I need to test?How can I recreate the last version to do a patch?What defects have beenaddressed since the last build?What test uncovered this defect, on which environment and what build?How can I standardize when teams use different tools?Are build times getting longer or shorter?What changes occurred overnight?How can I speed up my builds?Where are the bottlenecks in our processes?19191919
20 Relationship views enable continuous traceability Find and respond to gaps as they surface through out the projectTracing through out the project improves regulatory complianceThe image shows a traceability view in Release Plan containing links to requirements and test cases. It also has a column to identify defects affecting the plan items. This demonstrates an integrated plan with traceability reporting. Rather than relying on stale and occasionally run traceability reports, using an integrated plan with a built-in traceability view makes the gaps are obvious and easy to address through out the project.202020
21 Plan-item Traceability improves quality and predictability Everyone's work aligns to the requirements and goals of the customerTeam members have transparency to each others work and the “new reality” is always availableAll worked is linked and visible giving the team insight into when all work is doneDevelopers understand the requirements, test results and test criteriaOne of the easiest things to do for development teams is to simply focus squarely on accomplishing their work handing only the deliverables between groups when they are ready. A lot of the rework, misunderstandings, etc results from teams not having visibility or coordinating their activities so that the team can work as a whole. Our ALM solution provides them with transparency in the context of the work you’re doing and the ability to go get more information if necessary, its beyond simple linking – its data rich integration and coordination based on the interrelated activities in ALM. We go far beyond simply making sure one file in one product can link to another the way the majority of our competitors do in order to check box an ALM marketing message.Testers define and execute tests cases with a clear understanding of requirements andTeams collaborate and clarify the details of requirements21212121
22 Defect Collaboration reduces costs and improves quality Testers execute tests and submit defects found to RTC4-clicks to submit a defect automatically linked to impacted artifactsTest results are recorded and linked to test cases, and associated requirementsTest results can be linked to software buildsEveryone has visibility into the defects, their impact, and the action taken to resolve themThe most common ALM sub-cycle is the Development – Test cycle. Developers develop a solution that must be tested – this is an important cycle that takes up a significant amount of the development and ongoing maintenance effort. Our solution was developed in unison to make sure we can automate and improve this cycle as much as possible. Our solution reduces the overhead typical of the development <-> test cycle and improves the transparency so that this cycle can adjust to unforeseen circumstances. Our highly integrated development <-> test solution realized by RTC and RQM enable us to offer a solution that can increase productivity and time to market.Developers can see the exact test failure without having to ask and remediate it22222222
23 Top 5 Questions1) What is the maximum number of developers a RDz Unit Test server can support?This can vary depending on the underlying hardware and workload being tested. Desktop/Laptops can typically support 3-5 users. Low end server class machines can support users. At this time, IBM has not provided a detailed analysis of RDz UT server sizing.2) How can I get test data for use in RDz Unit Test?Customers can use existing tools like IDCAMS, DB2/IMS utilities, etc. to extract test data and then download it to the RDz Unit Test machine. RDz Unit Test provides a volume duplication utility that can download an entire 3390 data volume as needed into the UT environment. Facilities such as CICS remote function shipping or DB2 Remote Data Access can also be utilized.3) Can I run other levels/backlevels of the middleware provided?Yes, based on existing mainframe entitlement the request can be evaluated and some requests may not be approved. Requires special licensing dispensation from IBM, not automatically entitled with purchase of RDz UT.4) Can I use other IBM tools in the UT environment?5) Can I run third party software?Yes, if the third party license allows this. Customers must work with their software vendor to determine licensing considerations.
24 Additional Questions 6) Does this require system programming skills? Vanilla configuration ready-to-go out of the boxz/OS does require system programming skills to set up the development and/or testing environments if users want the UT environment to mirror an existing host configuration.You can usually set up one box/image and transfer the configurations to another box easily (VMWare style).7) What about security?RACF is installed, but with minimal configuration.The sample configuration guide has suggestions for basic security.Security is a site choice. The ability to customize z/OS on a platform designed for individuals or small teams may:Provide better testing opportunitiesProvide customization for individual productivity gainsProvide opportunities to learn about z/OS fundamentals
25 RDz UT host machine specifications Underlying Linux hostRed Hat Enterprise Linux 5.3 (RHEL 5.3)OpenSUSE 10.3, 11.0, and 11.1Note: IBM does not support installation on other distributions.Base machine must have:at least 3 GB of real memory:1 GB is required for the 64-bit Red Hat or openSUSE Linux1-2 GB is required for the System z operating system, depending on the size of the development systemat least 80 GB free disk space available after LinuxNote: RDz UT has been tested on:Lenovo ThinkPad W SeriesIBM System x 3500 M1, 3500 M2, 3650 M1, and 3650 M2
26 Summary - Benefits of the RDz Unit Test Feature Increased application quality using the included IBM runtimes for testing. Provides a high fidelity testing environment.Functionality and services more accurately reflect the mainframeUsing actual z/OS middleware means less retesting and rework is required when moving from the unit test environment to the quality assurance or pre-production environment.Developers have an isolated test environment to test application changes that can then be easily merged into the next level of testingDeployment of the Unit Test feature on a PC lowers development and unit tests costs and allows MIPS to be reallocated for production use.Executes on an x86 Server (see backup charts for details)Utilizing zero development MIPS on the production mainframe for initial application change testingFrees up additional capacity for new workload while reducing line of business development costs and chargeback.Provides developers in a single or shared user configuration with increased flexibility and control of the test environment, allowing them to be more productive and improving application delivery times.Can be assigned to a single developer in a laptop configuration, or can support small-scale team environmentsEnvironments can be tailored to a single developer or team's runtime needs without altering mainframe testing environments.Can provide a greater level of control for developers to implement quick environment changes without having to involve production operations staff.Developers can perform their first series of tests and regression testing without worrying about causing unexpected errors.