Specification by Example
|
|
|
- Rosaline Fitzgerald
- 10 years ago
- Views:
Transcription
1 Specification by Example An Experience Report A paper by, Empirical Pragmatic Tester Specification by Example
2 Table of Contents Overview... 3 Introductions Background to the Project... 4 Project, Technology, Challenges... 4 Overview of the Test Approach... 4 Experience Report Specification by Example... 5 Collaborative Specification... 5 How was it done?... 6 Outcome... 6 Illustrating with Examples... 6 How was it done?... 7 Outcome... 9 Refining the Specification... 9 How was it done?... 9 Outcome Literal Automation How was it done? Outcome Frequent Validation How was it done? Outcome Evolving a Documentation System How was it done? Outcome Other Observations and Comments Exploratory Testing Requirements Traceability References Tools and Technologies Related Articles Page 2 of 17
3 Overview Inspired by Gojko Adzic's 'Let's Change the Tune' presentation, Mark set about applying the idea combined with his own approaches and techniques, to a project delivering a currency trading platform. As the project had already commenced the approach needed to get testers working with developers, Business Analysts, Architects and others quickly and effectively. With the project intended to be over several phases test artefacts needed to remain relevant and useful. In this Experience Report Mark will describe how he applied Specification by Example and helped fundamentally shift the way project activities were performed across all teams. He'll outline the use of Concordion and Java, the nature of test cases, the use of Illustrative & Key Examples and how many traditional testing practices become even more effective in the context of Specification by Example. The presentation took place at the Skills Matter Exchange in central London on December 7 th This paper reflects the content of the presentation which was recorded and can be viewed by visiting the Skills Matter website at: Introductions Mark has been involved in testing and QA for around 15 years. The first role where Mark was exposed to QA practices was in manufacturing QA for an electronics company making security camera systems. The next role took him to a manufacturer of power supplies and mobile phones where he implemented their ISO 9000 system. Leaving there Mark then joined AOL (UK) as the head of testing in the UK and so commenced the current career in software testing. After just around 6 years with AOL he then moved onto other companies including Electronic Arts and lastminute.com to head their testing departments. He describes his approach to testing as neither traditional nor agile, but a middle way that draws on elements of QA and testing from manufacturing and both traditional and agile software development. Mark can be contacted on Twitter or Skype as MarkCTest or via his website at where he maintains a blog, templates and papers. Page 3 of 17
4 Background to the Project Specification by Example An Experience Report Project, Technology, Challenges Mark was assigned as Test Manager for a project developing the service layer for an FX currency trading platform. The Conceptualisation phase had already ended which meant the project had moved into the Elaboration phase where the direction of the project delivery, test approach, team size, tools and technology, etc. were being agreed. Components and technology being used in the project included IIS, Active Directory, Oracle DB, Diffusion from Push Technology, Fatwire s Content Server and IBM s Websphere Application Server along with Java as the main development language. A host of challenges arose straight away regarding the test approach and management: The test team would be based in Leeds, but the customer was in London where the Test Manager would be based half the time. The test team would be developer-testers, not career testers. They d be more likely thinking like developers not testers so needed an approach that supported their developer mind-set. Tests would need writing in a way that allowed easy automation which would be directed at testing functionality of the service layer components at their level, not through the UI. There was no specific test management tool, such as Quality Centre, in which to manage test cases, meaning a way to easily access and work with the test cases needed to be found. The Client had made it clear they did not want to be reviewing masses of test cases. They did want to understand the tests in context of their requirements along with test coverage and status. Test status against development needed to be known on a per build basis and tests needed to help development understand requirements and functional specification more easily. The final challenge was one of communication, all tests needed to be understood by nontesters such as the Technical Architect, Developers, Project Managers and the Client i.e. the whole project team. It was clear that an agile like approach to testing was needed, something that allowed just enough documentation to be created, that supported speedy delivery of usable automated tests and helped show test status and progress, while at all times remaining accessible to the entire project team. Overview of the Test Approach Based on previous experience Mark immediately proposed the use of Concordion in place of a heavyweight tool for test case management such as Quality Centre. The added benefit would be that, if done correctly, the test documentation would be Live Documentation and could become an Active Specification. Page 4 of 17
5 It was agreed that automated tests would be written in Java as this was the application development language being used. Having both tests and code in Java also meant closer collaboration between the development and testing functions would be possible. It was decided the Gherkin, Given-When-Then form of test case structure would also be used, anticipating how this would support the writing of automated tests later on. In addition this would allow authoring of test cases in a more Client accessible format, lowering communication barriers. Testing would use a combined approach of executing automated Examples and following up with Exploratory Testing sessions applying Test Heuristics and Memes. This was especially important as component integration took place and more system level functionality began to emerge. It was also the mindset that Examples became regression checks once executed and not finding bugs, thereby making Exploratory Testing of essential value. Reporting would be a combination of daily updates ed to project management and highlighted in the morning stand-up with weekly reports summarising the test effort and current Concordion test status. Experience Report Specification by Example Each aspect of the Specification by Example model, discussed in full in Gojko Adzic s book of the same name, was used within the project. The temptation is to say they were used by the test team but as we ll see this would be incorrect. The experience report is given from the perspective of the test team but the entire project team worked with each aspect of Specification by Example to varying degrees. Collaborative Specification The concept of Specifying Collaboratively is that all functions of the project team should have an opportunity to collaborate in understanding and defining the criteria by which they ll recognise the software solves whatever the business problem the Client has. This activity of acceptance implies that it s possible to demonstrate the application does what it s required to do and so we set Acceptance Criteria that we can demonstrate achieving. The issues that arise from this apparently simple approach include who sets the criteria and whether they are up for discussion and whether they have been defined clearly and completely enough. Initially there was a desire expressed to take a typical Test First approach which would see the test team write test cases against acceptance criteria and then have development work from those. The complication here was that requirements didn t have acceptance criteria stated and a number of requirements were complex and ambiguous. To help address this, the project s Technical Architect had written a Functional Spec based on the requirements and in doing so had taken steps to clarify their meaning and make them less ambiguous. From the test perspective there is always risk in this (re)interpretation of requirements within a Functional Spec or any other document for that matter. A better way would be for the requirements to express their acceptance criteria directly. Page 5 of 17
6 This situation then was a great opportunity for Collaborative Specification. As James Bach mentions in Lessoned Learned in Software Testing a powerful technique to use alongside Reference and Inference when writing test cases is Conference. The key here is that Collaborative Specification was done in conference with other project team members including the Client. The test team set about writing tests that captured the explicit or implicit acceptance criteria stated in the requirements. The intention was not just to allow a Test First approach but to help the Client and technical Architect better articulate and understand the requirements. How was it done? Collaborative Specification in conference with others was firstly done between the test team members; Gojko refers to this in his book as the Three Amigos approach. Three testers would take a section of the requirements and the current Functional Spec and disappear into a brainstorming meeting. One would play scribe, another be at the white-board and the final member would have a copy of the spec and follow along. As the tester at the whiteboard read through the requirements and Spec they drew them up on the whiteboard. Flow diagrams, mind-maps, questions and question marks, dead ends and possibilities were all captured. Where test conditions were clear the scribe wrote them up straight away, where anything wasn t clear they were captured as queries and questions to take back to the project team and Client. In conjunction with the test lead other project team members and Client then undertook essentially the same process but at all times the conversations were in terms of understanding functionality and related acceptance criteria - not about testing. The test cases being written were already being referred to in terms of examples of functionality and behaviour, not test cases. The outcome of this Collaborative Specification activity was a set of Test First looking test cases that were actually a set of Examples of functionality and behaviour. The process was repeated and as each section of original requirements was reviewed in this way it allowed the Functional Spec to be re-written in a simpler and more accurate manner. Outcome In using just one aspect of Specification by Example we had clarified and disambiguated requirements, help define clear acceptance criteria and enabled a more succinct and effective rewriting of the Functional Spec. We d also got a robust set of Examples to develop and test against without talking in terms of test cases at all. Illustrating with Examples When following a more traditional test approach test cases are commonly step-by-step scripts containing sections such as preconditions, steps, data and expected outcome of the test. Testers will apply design techniques such as Boundary Value Analysis and Equivalence Partitioning. They ll apply analysis techniques such as Failure Modes and Effects Analysis - though might not know it s called that. Page 6 of 17
7 The outcome of this test case design and analysis session is a raft of test cases intended to cover each test condition and provide thorough coverage of requirements. The problem is this traditional test case authoring process is flawed and inefficient. Testers taking this approach will write as many test cases as possible, often ending up with hundreds of very similar tests or tests that are covering many low risk conditions. What s more they are a reinterpretation of the Requirements and will contain a lot of assumptions and conditions of little interest to the Client. Conditions of interest to the Client being those that show the software is solving their business problems. Scores of edge conditions may be interesting to testers but they re often not to a Client. It s worth restating that test cases which are a re-interpretation of Requirements, often through the filter of a Functional Spec that is itself an interpretation of those Requirements introduces; Test case being once or twice removed from the original Requirements Risk of misunderstandings and interpretation errors Language of the artefacts becomes more technical and less Client accessible Administrative burden to maintain, update, re-publish and correlate artefacts Consider also that the project which is the subject of this paper was being delivered in an agile, fixed price manner. It was understood that the BJSS mantra of necessary and sufficient was to be thoroughly applied. Writing masses of test cases was not an option. An approach needed to be found that allowed for the authoring of only the necessary test cases in a way the rest of the project team could work with. How was it done? As part of following the Specification by Example model it was decided that not only would test cases be written using the Given-When-Then format, but not every possible test case would be written. This approach surprised the Client and some work had to be done to explain how sufficient test coverage would be achieved. During each Collaborative Specification session the participants would look to write a set of Concrete Examples in the Given-When-Then format. The Concrete or Key examples were to be considered examples of the behaviour that the system should enact. The Then statement in each Example was the acceptance criteria replaced the typical expected outcome of a test case. Each Requirement typically had several Key Examples to illustrate various pieces of functionality that it covered. Successful execution of a Key Example would then be used to demonstrate the achievement of the acceptance criteria for that functionality. An example of the functionality from the project included the ability of a user to perform analysis on a given currency pair and include in their query dates and projections. A Key Example that was derived from this is given in figure 1 below. It should be noted that the test was of the correct type of data in the range expected being returned, not of testing the correctness of the returned results. Page 7 of 17
8 Figure 1: Key Example of functionality within the Distribution Analysis component In practice around 4 or 5 Key Examples were found for each piece of functionality. In common test terms this meant the happy path and roughly 2 in bound and 2 outbound edge conditions. The edge conditions typically being replaced with syntax type checks (valid or invalid data) where the functionality wasn t related to numerical values. Clearly there were also occasions where the functionality was much simpler and fewer Key Examples were produced. A keen tester would now be thinking about all the other test conditions that might exist with the above Key Example and be considering that so far we ve only looked at positive test conditions. Here is where we changed the model slightly by introducing Illustrative Examples. In context of the above these were additional test conditions that while valid were less important than the Key Examples. They could be seen by clicking the Show additional tests link and expanding the section. Figure 2: Illustrative Examples of functionality within the scope of the Key Example in figure 1 This mix of Key and Illustrative Examples is similar to the idea of the Most Important Tests (Key Examples) and the other contextually relevant tests that are identified (Illustrative Examples), and that we d like to automate and run but that we might not get time to do so. Page 8 of 17
9 Outcome After working through the Requirements document and conferring in small teams about the Examples of behaviour the system should enact or characteristics it should exhibit a set of Key Examples were agreed upon. Then typical test case design and analysis techniques were applied and a set of Illustrative Examples that demonstrated the scope of functionality were written. The Example sets were in a format that was accessible to every member of the project team and reflected the Client s language and business context. They could be discussed and understood by the Client and taken directly by the developers and used as task cards to size and plan then develop against. The test team now knew the Client s acceptance criteria more clearly and had simply to validate each Example was moving to a passing state as development progressed. They also had a set of Illustrative Examples that extended the Key Examples and removed the risk of failing edge and boundary conditions. Refining the Specification When the Functional Specification document is written it s written in a way that tries to improve our understanding of the Requirements and tell us what behaviours and characteristics the system should enact to deliver those Requirements. Typically the Client writes the Requirements, a Technical Architect writes the Functional Spec and the testers take both and write test cases around them. In this way the act of writing each as separate artefacts doesn t directly help refine overall specification of the system. In practice, overall specification of the system is contained not only in the Functional (or Technical Spec if you prefer) but in the Requirements too. Additionally it s in the test cases that are written, but the problem is one identified earlier in that these are separate artefacts re-interpreting the shared understanding of what the Client wants. What needs to happen is that the creation of each document helps distil the project team s understanding of the business functionality so that a refined specification can be achieved. How was it done? The Collaborative Specification activity and the creation of Key and Illustrative Examples were important first steps in helping to refine the specification. Illustrative examples proved useful in helping to refine the specification by stretching the project team s and Client s understanding of the true scope of requirements and the business problem that was being addressed. Page 9 of 17
10 Figure 3: Refined specification as seen in the re-written Functional Spec document The Technical Architect was able to take a core set of the Key Examples and substantially re-write the Functional Spec in line with them to more clearly and simply state desired functionality. Each Example was reviewed by the project team and Client to ensure they clarified the specification and didn t leave out any key details or introduce any errors in interpretation. Examples were sanity checked to make sure they were self-explanatory, concise and didn t introduce detail of any implementation specifics or dictate software design. Outcome Traditional test cases and scripts were avoided and replaced with artefacts that were precise and testable, geared towards being automated, self-explanatory to those reading them, accessible by the entire project team and in the domain language of the Client. A refined and simplified specification document was published that mirrored the structure of the Given-When-Then form of Examples. The document drew on the Collaborative Specification activity and used the Requirements and Examples as its basis thereby tying the three artefacts together. Literal Automation A risk with traditional automation approaches is that the automation will be written in a way that doesn t directly and tightly adhere to just testing the acceptance criteria that have been agreed. Often an automated test is an (re)interpretation of the test case and includes many steps that are not entirely relevant with regards to what s literally stated in the test case. This translation issue is more common when using tools that write scripts through record and playback, tools such as QTP, Selenium (IDE) and Visual Studio s Coded UI tests. The tester can all too easily add steps, validations and traversal of functionality that s outside the stated scope of the test case. In addition these tools may automatically use or mandate the use of libraries of test functions that further push the automation away from what s needed for the test case. In an agile setting this introduces two important issues. Firstly, the test team are delivering work that is out of scope and may be burning time that has not been allocated for the task as they are delivering too much work. Secondly, testers in particular risk raising bugs that are not strictly relevant to the functionality that s been specified. Page 10 of 17
11 Though these bugs may be interesting and in some regards useful we continue to enable the dual risks of test scope creep and re-interpretation of the specification a specification that when following the Specification by Example approach has been distilled, refined and agreed upon. The risk now is non-literal automation could trash the work that s been done. How was it done? The expectation was that automation would be used as extensively as possible and so was planned for upfront. This was done by ensuring the test team members who joined the team were skilled in Java development and the tools to be used were trialled in combination early on. This involved ensuring the team were comfortable with the use of Concordion, Eclipse IDE, Perforce and development in Java. Each Key and Illustrative Example had been written in a clear and specific way so as to allow development and automation against them to be a simple and intuitive as possible. Therefore the guidance to the test team was to avoid re-interpretation of tests cases where possible. The main point here was that with a clear and refined specification in place we don t want to go changing it by virtue of the way we wrote automation. Automated scripts were written to use a minimum set of steps to achieve the assertion of acceptance criteria for the service layer components under test. This meant automation didn t try to replicate the business logic that was part of the UI layer. For example, service layer tests didn t involve anything related to input validation, checking valid XML, etc. as the service layer would receive inputs and data that was ready to use. Using Concordion meant the team would firstly instrument tests in the Concordion HTML page and then implement automation in Java via the Eclipse IDE. Eclipse proved useful as tests could be executed under JUnit before integration into the full automated test suite. Concordion uses a range of tags to connect to methods in the Java class of the test; an example can be seen in figure 4 below. Figure 4: Example instrumented in Concordion and implemented in Java Test data was reference data where this was available and mirrored current business processes. Where entirely new functionality was being introduced data was designed against the spec. For larger data sets used in the Illustrative Examples the data was drawn from external data files. Test code, along with fixture code, was then submitted to the code repository using Perforce and stored as part of the overall code base. Page 11 of 17
12 Outcome Use of tools and technology that aligned with development team approaches ensured greater collaboration between the teams. With test fixture and Example test code stored alongside the application code and Developer tests it was made available for others for use in Frequent Validation. Literal automation of each Key and Illustrative Example ensured test code was lean and tightly tied to demonstrating the acceptance criteria had been met and not trying to test everything the functionality might relate to. This avoided over elaboration of the automation, prevented previous work on distilling the Functional specification from losing value and avoided the risk of re-defining the Functional specification and Examples due to test scope creep. The outcome of this was an Executable Specification that could later be run and it s test status clearly and quickly known. As the automated tests didn t traverse or replicate other functionality they proved to be more maintainable and less fragile when change did occur. Key Example automation scripts provided a template for the automation of Illustrative Examples. Test data within an external data file supplied the data to the Illustrative Examples in most cases. Frequent Validation A common mistake in applying testing effort is to leave testing to late in the development cycle. The result is that knowing the level of quality, completeness of development and the test status are all unknowns for a lengthy period. With a focus on manual testing it s generally possible to run tests sooner than when using automation. However, the use of automation allows greater volumes of tests to be run more frequently and for tests to be run that cannot be performed manually. On a more agile project, perhaps using a Test First approach, the expectation is that tests will be in place against which developers can then code, in line with the Functional Specification and requirements. The issue here is that the execution of those tests, and the subsequent validation of acceptance criteria being met, is often still done at a later point. Ideally the team are applying some form of continuous integration that provides the opportunity to validate the completeness of development and testing status. There can be an issue in definition regarding this however as continuous integration practices may be seen as relating more to developers integrating code and running unit tests, than being about validating the Client is progressively getting software that solves their problems. What s needed is an approach that includes the idea of continuous integration of code but extends to validating the code is delivering what the Client asked for and is progressing towards a complete delivery of expected functionality. How was it done? The developers adopted a continuous integration approach right from the start of the project. Daily submissions were the norm with more frequent submissions happening as critical bugs or functionality servicing lots of dependencies was completed. Unit tests were executed by developers on their changes and code submitted. New builds were run several times a day with developer unit tests running first as build verification and validation tests, managed by Cruise Control. Page 12 of 17
13 Figure 5: Continuous integration several times a day under Cruise Control When the unit tests were complete the Key and Illustrative Example automation would then execute. The HTML output produces by Concordion could then be reviewed to check test status and completeness of development. The output would also be stored as a record for future review. To help show the status of development the Concordion configuration was changed to have a status of Pass, Fail and To Do. Figure 6: Concordion output showing the Pass, Fail and To Do test status of the Examples This additional To Do status could then be used to identify where a test had been set-up but the application development was not complete, thereby avoiding Examples being flagged as a fail when in fact it s an outstanding task. Outcome With the approach taken the team weren t just doing continuous integration with related tests running. The practice adopted was much broader and termed Frequent Validation. This included a combination of having developer unit tests run against submitted code, tests executed against Examples and Concordion configured to show test status that included items that were still To Do. This meant that status regarding the wider development effort was provided at a more regular cadence and it was clearer what development and testing work was left to do. At the highest level therefore we had used Concordion to help create an Executable Specification that was tied to the Examples it contained, the code developers were delivering and the underlying automated tests created by the test team. Page 13 of 17
14 Figure 7: Each element linked so that significant change in one affects the other The further affect of this was that any significant changes to the Examples, code or automated tests, that invalidated some aspect of another item, would be seen the moment the next Frequent Validation was performed. Refactoring of each item is still allowed so long as that change remained in scope of what was then agreed, anything more was managed as a change request. Evolving a Documentation System Many test approaches see the test documentation as artefacts that are only directly relevant to the test team. Though other members of the project team and even the Client to some degree may review or refer to them at some point it can often be that test artefacts are never seen outside of the test team. This problem is in part due to the way that test cases are written and stored. Their format isn t always that understandable or even relevant in terms of content to other team members. A further issue can be the tool they are stored in may be not be well known or even accessible to the project team and very often not to the Client. Training in their use, access and costly licensing are all common issues with document and test case management tools. The project team needs test artefacts written in a way that they understand and that they can readily access. However, the documentation produced in the Specification by Example approach can be much more than just Examples of functionality that are relevant primarily to the test team. The documentation produced in the way proposed in Specification by Example can start to replace that which exists or is usually produced. All documents including Requirements, Use Cases, Functional Specification and Test Cases can to a greater or lesser degree can be replaced with documentation that talks in terms of Examples. The challenge is introducing the change in approach to the project team and ensuring the change is well understood and applied. How was it done? Requirements for the current project were already in place when the project team got involved. In addition the first version of the Functional Specification was published in the typical, narrative style. It wasn t practical to get the Client to re-write the Requirements nor was it the best use of time. The start point for creating our Example based documentation was to use the Requirements and current Functional Spec as the basis for test analysis. As mentioned previously the test team performed test analysis workshops to identify sets of Examples. Each analysis session focused on a single area of functionality and Concordion documentation was arranged in this way. Page 14 of 17
15 Figure 8: Documentation organised by functional group, using Concordion s breadcrumb feature This ensured the documentation and test status for each functional group was easily accessible by simply clicking a set of links. The Concordion pages were published onto the BJSS wiki and the URL provided to the Client. The terms used for each functional group matched that which the client used and the language within the Examples mirrored the language of the Client where ever possible. A new version of the Functional Spec was issued that mirrored the structure of the Examples. Outcome There were a number of effects on the project team s documentation with regards to adopting the Specification by Example approach. Firstly, the traditional, narrative type test cases were done away with and replaced with Given-When-Then format Examples. These evolved the test cases from something the test team cared about to something the Client, developers and Technical Architect cared about. All three other teams were able to relate to and use the Examples, whereas with test cases this would not have been possible. The Examples were added to Concordion and so became Live Documentation that when updated or added to would show how the overall test and development status had changed, meaning they had become an Active Specification. By working with Examples the test team had an artefact that could be readily automated and used as documentation at later stages. Examples have now become a set of documentation that describes the current system and can be used by Support Teams or as a building block for future iterations of functionality. Other Observations and Comments Exploratory Testing The overall test approach involved demonstrating achievement of acceptance criteria with the Key Examples and testing the scope of stated functionality by using Illustrative Examples. However, these tests were very much focused on the service layer and not on functionality of the UI layer. For example, Illustrative Examples that checked the service layer handling invalid data in no way checked how the UI layer might validate data entry. This type of test condition was handled through testing of the UI by the team developing the UI, which was later integrated with the service layer. The risk here is there might have been gaps in test coverage and that system levels tests after integration may not have been as robust as preferred. To help address this Exploratory Testing was also used alongside the automated Examples. Page 15 of 17
16 Exploratory testing benefitted from test questions that arose in the test analysis session that were primarily intended to produce the Examples. Areas requiring clarification, system component interaction that was not fully understood, questions about expected behaviour of the system on failure were all examples of where many Exploratory Test conditions were identified. When new builds were deployed onto the test environment and the automated tests had run the test team then ran the exploratory test sessions. Requirements Traceability To assist with having traceability between Requirements and Examples two steps were taken. Firstly, each Example in Concordion had a note of the Requirement ID included in its description. Secondly, the team produced an Excel based traceability matrix for the Client to review. Figure 9: Requirements ID added to the Concordion Examples Page 16 of 17
17 References: Tools and Technologies Concordion Accessed 30-Nov-2010 Diffusion Message Broker Push Technology Accessed 01-Dec-2010 Content Server Fatwire Software Accessed 08-Dec-2010 Websphere Application Server (WAS) - IBM Accessed 02-Dec-2010 Cruise Control Continuous Integration tool Accessed 08-Dec-2010 Books Specification by Example. Adzic; and Accessed 03-Dec-2010 Lessons Learned in Software Testing. Caner, Bach, Pettichord; 2002 John Wiley & Sons, ISBN-10; Related Articles Accessed 25-Nov Accessed 04-Dec-2010 Page 17 of 17
SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island
SPECIFICATION BY EXAMPLE How successful teams deliver the right software Gojko Adzic MANNING Shelter Island Brief Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Preface xiii Acknowledgments xxii
Use service virtualization to remove testing bottlenecks
Use service virtualization to remove testing bottlenecks Discover integration faults early by pushing integration testing left in the software lifecycle Contents 1 Complex, interconnected applications
Testhouse Training Portfolio
Testhouse Training Portfolio TABLE OF CONTENTS Table of Contents... 1 HP LoadRunner 4 Days... 2 ALM Quality Center 11-2 Days... 7 HP QTP Training Course 2 Days... 10 QTP/ALM Intensive Training Course 4
Book 3 Cost Estimating in an Agile Development Environment. (early release)
Book 3 Cost Estimating in an Agile Development Environment (early release) Book 3: Cost Estimating in an Agile Development Environment In this third book I ll use the slides I gave at a speech several
Secrets to Automation Success. A White Paper by Paul Merrill, Consultant and Trainer at Beaufort Fairmont, LLC
5 Secrets to Automation Success A White Paper by Paul Merrill, Consultant and Trainer at Beaufort Fairmont, LLC 5 Secrets to Automated Testing Success 2 Secret #1 Practice Exceptional Leadership If you
User Stories Applied
User Stories Applied for Agile Software Development Mike Cohn Boston San Francisco New York Toronto Montreal London Munich Paris Madrid Capetown Sydney Tokyo Singapore Mexico City Chapter 2 Writing Stories
Bridging the Gap Between Acceptance Criteria and Definition of Done
Bridging the Gap Between Acceptance Criteria and Definition of Done Sowmya Purushotham, Amith Pulla [email protected], [email protected] Abstract With the onset of Scrum and as many organizations
Growing testing skills using the Agile Testing Ecosystem. Dr Lee Hawkins Principal Test Architect Dell Software, Melbourne
Growing testing skills using the Agile Testing Ecosystem Dr Lee Hawkins Principal Test Architect Dell Software, Melbourne Who am I? 16 years at Quest Software / Dell Software in Melbourne, Australia. Really
Testing. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies. CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard
A Fresh Graduate s Guide to Software Development Tools and Technologies Chapter 3 Testing CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard PREVIOUS CONTRIBUTORS : Ang Jin Juan Gabriel; Chen Shenglong
Model-based Testing: Next Generation Functional Software Testing
Model-based Testing: Next Generation Functional Software Testing By Dr. Bruno Legeard Model-based testing (MBT) is an increasingly widely-used technique for automating the generation and execution of tests.
SOFTWARE TESTING TRAINING COURSES CONTENTS
SOFTWARE TESTING TRAINING COURSES CONTENTS 1 Unit I Description Objectves Duration Contents Software Testing Fundamentals and Best Practices This training course will give basic understanding on software
Agile Testing: The Agile Test Automation Pyramid
Agile Testing: The Agile Test Pyramid In this post, or perhaps truly an article, I want to explore a common approach for implementing an effective strategy for your overall agile automation development.
Scalable Web Programming. CS193S - Jan Jannink - 1/12/10
Scalable Web Programming CS193S - Jan Jannink - 1/12/10 Administrative Stuff Computer Forum Career Fair: Wed. 13, 11AM-4PM (Just in case you hadn t seen the tent go up) Any problems with MySQL setup? Review:
RSA VIA LIFECYCLE AND GOVERNENCE: ROLE MANAGEMENT BEST PRACTICES
RSA VIA LIFECYCLE AND GOVERNENCE: ROLE MANAGEMENT BEST PRACTICES A practitioner s perspective on best practices for Role Management ABSTRACT This white paper provides an overview of the Role Management
by Heather Oppenheimer and Steve Baldassano
Switching Tracks: Finding the Right Way to Get to Maturity Level 2 by Heather Oppenheimer and Steve Baldassano When your customer contract requires that your software development process must be CMMI Level
A How-to Guide By: Riaan Van Der Merwe, General Manager, Dynamics, Neudesic
Managing Dynamics CRM 2013 Applications from Cradle to Grave A How-to Guide By: Riaan Van Der Merwe, General Manager, Dynamics, Neudesic Table of Contents Introduction...3 Creating the Right Fit...3 Solutions
Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011
QAI /QAAM 2011 Conference Proven Practices For Managing and Testing IT Projects Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011 Format This presentation is a journey When Bill and
Testing Rails. by Josh Steiner. thoughtbot
Testing Rails by Josh Steiner thoughtbot Testing Rails Josh Steiner April 10, 2015 Contents thoughtbot Books iii Contact us................................ iii Introduction 1 Why test?.................................
AGILE BUSINESS INTELLIGENCE
AGILE BUSINESS INTELLIGENCE OR HOW TO GIVE MANAGEMENT WHAT THEY NEED WHEN THEY NEED IT Evan Leybourn Author Directing the Agile Organisation Melbourne, Australia [email protected] INTRODUCTION
Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief
Digital Industries Trailblazer Apprenticeship Software Developer - Occupational Brief Table of Contents Contents 1 Software Developer Trailblazer Apprenticeship Introduction... 1 2 Software Developer Trailblazer
What Is Specific in Load Testing?
What Is Specific in Load Testing? Testing of multi-user applications under realistic and stress loads is really the only way to ensure appropriate performance and reliability in production. Load testing
Requirements Management
REQUIREMENTS By Harold Halbleib Requirements Management Identify, Specify, Track and Control Requirements Using a Standard Process About the author... Harold Halbleib has a degree in Electrical Engineering
Testing Lifecycle: Don t be a fool, use a proper tool.
Testing Lifecycle: Don t be a fool, use a proper tool. Zdenek Grössl and Lucie Riedlova Abstract. Show historical evolution of testing and evolution of testers. Description how Testing evolved from random
Testing in a Mobile World
White Paper Testing in a Mobile World April 2014 Share this White Paper Contents Introduction 3 1. Testing in agile projects 4 2. Testing tools 6 3. Testing practices 10 4. Testing as a service 14 Conclusion
Exploratory Testing Dynamics
Exploratory Testing Dynamics Created by James Bach, Jonathan Bach, and Michael Bolton 1 v2.2 Copyright 2005-2009, Satisfice, Inc. Exploratory testing is the opposite of scripted testing. Both scripted
Project Management in Marketing Senior Examiner Assessment Report March 2013
Professional Diploma in Marketing Project Management in Marketing Senior Examiner Assessment Report March 2013 The Chartered Institute of Marketing 2013 Contents This report contains the following information:
Elaboration of Scrum Burndown Charts.
. Combining Control and Burndown Charts and Related Elements Discussion Document By Mark Crowther, Empirical Pragmatic Tester Introduction When following the Scrum approach a tool frequently used is the
Axe in the Agile World
Axe in the Agile World WHITE PAPER Executive Summary This paper explains the way in which Axe (Odin s Enterprise Test Automation Platform) allows the automated testing to take place in a range of project
Improving Cognos Upgrades Methodology to Lower Costs & Improve Upgrade Management
White Paper Improving Cognos Upgrades Methodology to Lower Costs & Improve Upgrade Management by Edwin van Megesen Motio, Inc. Executive Summary BI platforms are continuously changing. New requirements
Exploratory Testing in an Agile Context
Exploratory Testing in an Agile Context A guide to using Exploratory Testing on Agile software development teams. Elisabeth Hendrickson 2 Exploratory Testing. So you bang on the keyboard randomly, right?
Keywords document, agile documentation, documentation, Techno functional expert, Team Collaboration, document selection;
Volume 4, Issue 4, April 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Document Driven
Taking the First Steps in. Web Load Testing. Telerik
Taking the First Steps in Web Load Testing Telerik An Introduction Software load testing is generally understood to consist of exercising an application with multiple users to determine its behavior characteristics.
How to Avoid an Attack - Security Testing as Part of Your Software Testing Process
How to Avoid an Attack - Security Testing as Part of Your Software Testing Process Recent events in the field of information security, which have been publicized extensively in the media - such as the
zen Platform technical white paper
zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant
A Hundred Days of Continuous Integration
A Hundred Days of Continuous Integration Ade Miller Microsoft Corporation [email protected] Abstract Many agile teams use Continuous Integration (CI). It is one of the Extreme Programming practices
N Ways To Be A Better Developer
N Ways To Be A Better Developer Lorna Mitchell and Ivo Jansch This book is for sale at http://leanpub.com/nways This version was published on 2015-01-06 This is a Leanpub book. Leanpub empowers authors
Exploratory Testing Dynamics
Exploratory Testing Dynamics Created by James and Jonathan Bach 1 v1.6 Copyright 2005-2006, Satisfice, Inc. Exploratory testing is the opposite of scripted testing. Both scripted and exploratory testing
PARCC TECHNOLOGY ARCHITECTURE ARCHITECTURAL PRINCIPLES AND CONSTRAINTS SUMMARY
PARCC TECHNOLOGY ARCHITECTURE ARCHITECTURAL PRINCIPLES AND CONSTRAINTS SUMMARY Version 1.1 November 5, 2012 Architectural Principles and Constraints Summary REVISION HISTORY The following revision chart
The Phases of an Object-Oriented Application
The Phases of an Object-Oriented Application Reprinted from the Feb 1992 issue of The Smalltalk Report Vol. 1, No. 5 By: Rebecca J. Wirfs-Brock There is never enough time to get it absolutely, perfectly
Basic Unified Process: A Process for Small and Agile Projects
Basic Unified Process: A Process for Small and Agile Projects Ricardo Balduino - Rational Unified Process Content Developer, IBM Introduction Small projects have different process needs than larger projects.
A Technology Based Solution to Move Client Server Applications to Java /.NET in Native 3-Tier Web Code Structures
A Technology Based Solution to Move Client Server Applications to Java /.NET in Native 3-Tier Web Code Structures Accelerated Application Modernization (AAM) Page 1 of 16 Table of Contents TABLE OF CONTENTS...
Agile Test Planning with the Agile Testing Quadrants
Agile Test Planning with the Agile Testing Quadrants ADP Testing Workshop 2009 Lisa Crispin With Material from Janet Gregory and Brian Marick's Agile Testing Matrix 1 Introduction Me: Coding, testing Joined
How to Build an Enterprise App in 5 Days 1
How to Build an Enterprise App in 5 Days 1 TABLE OF CONTENTS STAGES OF TRADITIONAL APP DEVELOPMENT 3 STAGE 1: DEFINE 4 STAGE 2: BUILD & TEST 4 STAGE 3: ROLLOUT 6 STAGE 4: MANAGEMENT 7 BUILDING AN ENTERPRISE
Foundations for Systems Development
Foundations for Systems Development ASSIGNMENT 1 Read this assignment introduction. Then, read Chapter 1, The Systems Development Environment, on pages 2 25 in your textbook. What Is Systems Analysis and
Test Driven Development Part III: Continuous Integration Venkat Subramaniam [email protected] http://www.agiledeveloper.com/download.
Test Driven Development Part III: Continuous Integration Venkat Subramaniam [email protected] http://www.agiledeveloper.com/download.aspx Abstract In this final part of the three part series on
Laila TECHNICAL SKILLS
PROFESSIONAL SUMMARY Diversified experience in the field of Information Technology in the financial domain. In depth knowledge of RUP, Agile, waterfall Software Development Life Cycle (SDLC) processes.
Business Process Modeling with Structured Scenarios
Business Process Modeling with Structured Scenarios Doug Rosenberg ICONIX Software Engineering, Inc. In 2008, based on our experience with a number of business process engineering projects over the last
Bringing agility to Business Intelligence Metadata as key to Agile Data Warehousing. 1 P a g e. www.analytixds.com
Bringing agility to Business Intelligence Metadata as key to Agile Data Warehousing 1 P a g e Table of Contents What is the key to agility in Data Warehousing?... 3 The need to address requirements completely....
Ce document a été téléchargé depuis le site de Precilog. - Services de test SOA, - Intégration de solutions de test.
Ce document a été téléchargé depuis le site de Precilog. - Services de test SOA, - Intégration de solutions de test. 01 39 20 13 55 [email protected] www.precilog.com End to End Process Testing & Validation:
The ROI of Test Automation
The ROI of Test Automation by Michael Kelly www.michaeldkelly.com Introduction With the exception of my first project team out of college, in every project team since, I ve had to explain either what automated
The Deployment Pipeline
The Deployment Pipeline (Extending the range of Continuous Integration) Dave Farley 2007 Continuous Build A core practice in Agile development projects is the use of Continuous Integration. CI is a process
The Security Development Lifecycle. OWASP 24 June 2010. The OWASP Foundation http://www.owasp.org
The Security Development Lifecycle 24 June 2010 Steve Lipner Senior Director of Security Engineering Strategy Trustworthy Computing Microsoft Corporation [email protected] +1 425 705-5082 Copyright
Continuous Integration
Continuous Integration WITH FITNESSE AND SELENIUM By Brian Kitchener [email protected] Intro Who am I? Overview Continuous Integration The Tools Selenium Overview Fitnesse Overview Data Dependence My
Anatomy of an Enterprise Software Delivery Project
Chapter 2 Anatomy of an Enterprise Software Delivery Project Chapter Summary I present an example of a typical enterprise software delivery project. I examine its key characteristics and analyze specific
Introduction to Automated Testing
Introduction to Automated Testing What is Software testing? Examination of a software unit, several integrated software units or an entire software package by running it. execution based on test cases
Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008
Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008 Who wants to be involved in a BI project or program that is labeled slow or inflexible? While I don t believe
Best Practices for Improving the Quality and Speed of Your Agile Testing
A Conformiq White Paper Best Practices for Improving the Quality and Speed of Your Agile Testing Abstract With today s continually evolving digital business landscape, enterprises are increasingly turning
Enabling Agile Testing Through Continuous Integration
2009 Agile Conference Enabling Agile Testing Through Continuous Integration Sean Stolberg Pacific Northwest National Laboratory [email protected] Abstract A Continuous Integration system is often considered
How to Build Successful DSL s. Jos Warmer Leendert Versluijs
How to Build Successful DSL s Jos Warmer Leendert Versluijs Jos Warmer Expert in Model Driven Development One of the authors of the UML standard Author of books Praktisch UML MDA Explained Object Constraint
Levels of Software Testing. Functional Testing
Levels of Software Testing There are different levels during the process of Testing. In this chapter a brief description is provided about these levels. Levels of testing include the different methodologies
Advanced Test-Driven Development
Corporate Technology Advanced Test-Driven Development Software Engineering 2007 Hamburg, Germany Peter Zimmerer Principal Engineer Siemens AG, CT SE 1 Corporate Technology Corporate Research and Technologies
My DevOps Journey by Billy Foss, Engineering Services Architect, CA Technologies
About the author My DevOps Journey by Billy Foss, Engineering Services Architect, CA Technologies I am going to take you through the journey that my team embarked on as we looked for ways to automate processes,
Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1
Rapid software development Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Objectives To explain how an iterative, incremental development process leads to faster delivery of
FX Domain Kick-start for Testers
FX Domain Kick-start for Testers A brief introduction to key FX elements. Discussion Document by Mark Crowther, Principle Test Architect Tien Hua, Senior Test Analyst Table of Contents Introduction...
Difference Between Model-Driven and Traditional Iterative Software Development
Process Implications of Model-Driven Software Development Author: Jorn Bettin Version 1.0 September 2004 Copyright 2003, 2004 SoftMetaWare Ltd. SoftMetaWare is a trademark of SoftMetaWare Ltd. All other
Complete Web Application Security. Phase1-Building Web Application Security into Your Development Process
Complete Web Application Security Phase1-Building Web Application Security into Your Development Process Table of Contents Introduction 3 Thinking of security as a process 4 The Development Life Cycle
Agile Techniques for Object Databases
db4o The Open Source Object Database Java and.net Agile Techniques for Object Databases By Scott Ambler 1 Modern software processes such as Rational Unified Process (RUP), Extreme Programming (XP), and
Meta-Framework: A New Pattern for Test Automation
Meta-Framework: A New Pattern for Test Automation Ryan Gerard Symantec, Security 2.0 6595 Dumbarton Circle Fremont, CA 1-310-892-0821 [email protected] Amit Mathur Symantec, Security 2.0 6595 Dumbarton
The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform
The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform Technical Discussion David Churchill CEO DraftPoint Inc. The information contained in this document represents the current
Software Engineering. What is a system?
What is a system? Software Engineering Software Processes A purposeful collection of inter-related components working together to achieve some common objective. A system may include software, mechanical,
Answers to Top BRMS Questions
November 2009 Answers to Top BRMS Questions Answers to ten frequently asked questions about what business rule management systems are and how they are used Brett Stineman Product Marketing, Business Rules
Nick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper.
TAKING CONTROL OF YOUR DATABASE DEVELOPMENT Nick Ashley While language-oriented toolsets become more advanced the range of development and deployment tools for databases remains primitive. How often is
How Perforce Can Help with Sarbanes-Oxley Compliance
How Perforce Can Help with Sarbanes-Oxley Compliance C. Thomas Tyler Chief Technology Officer, The Go To Group, Inc. In collaboration with Perforce Software Perforce and Sarbanes-Oxley The Sarbanes-Oxley
Oracle Application Development Framework Overview
An Oracle White Paper June 2011 Oracle Application Development Framework Overview Introduction... 1 Oracle ADF Making Java EE Development Simpler... 2 THE ORACLE ADF ARCHITECTURE... 3 The Business Services
Advanced Software Test Design Techniques Use Cases
Advanced Software Test Design Techniques Use Cases Introduction The following is an excerpt from my recently-published book, Advanced Software Testing: Volume 1. This is a book for test analysts and test
Rapid Software Development
Software Engineering Rapid Software Development Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain how an iterative, incremental development process leads to faster delivery
Good Agile Testing Practices and Traits How does Agile Testing work?
Agile Testing Best Practices Introduction The testing phase of software development sometimes gets the short shrift from developers and IT managers. Yet testing is the only way to determine whether an
the first thing that comes to mind when you think about unit testing? If you re a Java developer, it s probably JUnit, since the
By Matt Love W hat s the first thing that comes to mind when you think about unit testing? If you re a Java developer, it s probably JUnit, since the tool is generally recognized as the de facto standard
Introduction to OpenUP (Open Unified Process)
Introduction to OpenUP (Open Unified Process) Different projects have different process needs. Typical factors dictate the needs for a more formal or agile process, such as team size and location, architecture
Sandesh Prasanna Kumar
E-Mail: [email protected] Contact No: +44 7508061652 Linked in: http://www.linkedin.com/in/sandeshp7 Website: cv.sandeshp.com Skype: Sandesh_p5 Current location: London, United Kingdom Nationality: Indian
The Deployment Production Line
The Deployment Production Line Jez Humble, Chris Read, Dan North ThoughtWorks Limited [email protected], [email protected], [email protected] Abstract Testing and deployment
Service Virtualization: Managing Change in a Service-Oriented Architecture
Service Virtualization: Managing Change in a Service-Oriented Architecture Abstract Load balancers, name servers (for example, Domain Name System [DNS]), and stock brokerage services are examples of virtual
Agile Power Tools. Author: Damon Poole, Chief Technology Officer
Agile Power Tools Best Practices of Agile Tool Users Author: Damon Poole, Chief Technology Officer Best Practices of Agile Tool Users You ve decided to transition to Agile development. Everybody has been
BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2
BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2 EXAMINERS REPORT Friday 2 nd October 2015 Answer any THREE
How To Set Up An Outsourcing Center In China
HJSOFT Business Outsourcing Proposal Introduction... 2 Business Outsourcing Focus... 2 Standard and Unified Development Process... 3 Standardized Testing Procedures... 4 Price reference... 5 1 Introduction
In depth study - Dev teams tooling
In depth study - Dev teams tooling Max Åberg mat09mab@ Jacob Burenstam Linder ada09jbu@ Desired feedback Structure of paper Problem description Inconsistencies git story explanation 1 Introduction Hypotheses
Introduction to Software Engineering. 8. Software Quality
Introduction to Software Engineering 8. Software Quality Roadmap > What is quality? > Quality Attributes > Quality Assurance: Planning and Reviewing > Quality System and Standards 2 Sources > Software
Improving database development. Recommendations for solving development problems using Red Gate tools
Improving database development Recommendations for solving development problems using Red Gate tools Introduction At Red Gate, we believe in creating simple, usable tools that address the problems of software
Capstone Project - Software Development Project Assessment Guidelines
Capstone Project - Software Development Project Assessment Guidelines March 2, 2015 1 Scope These guidelines are intended to apply to 25 point software development projects, as available in the MIT and
the ultimate guide to email marketing for insurance agents
the ultimate guide to email marketing for insurance agents what s in here? Email marketing & content marketing...3-4 Email marketing best practices...5 Email campaigns for insurance agents...6 AgencyBloc
White Paper. Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1
White Paper Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1 INTRODUCTION...3 FRAMEWORKS AND LANGUAGES...3 SECURITY AND UPGRADES...4 Major Upgrades...4 Minor Upgrades...5
The Guide to: Email Marketing Analytics"
The Guide to: Email Marketing Analytics" This guide has been lovingly created by Sign-Up.to we provide email marketing, mobile marketing and social media tools and services to organisations of all shapes
Automating Functional Tests Using Selenium
Automating Functional Tests Using Selenium Antawan Holmes and Marc Kellogg Digital Focus [email protected], [email protected] Abstract Ever in search of a silver bullet for automated
