| 1 | = !BluePrint: Functional Testing Suite = |
| 2 | [[TOC]] |
| 3 | |
| 4 | == Introduction == |
| 5 | [[BR]] |
| 6 | |
| 7 | Creating an automated testing suite using [http://robotframework.org/ Robot Framework] which is configurable, easy to write, easy to maintain and provides in depth logs and reports.[[BR]] |
| 8 | |
| 9 | Functional testing needs to be an integrated part of the development process. A maintained suite of functional tests: |
| 10 | * Captures user requirements in a useful way |
| 11 | * Gives the team (users and developers) confidence that the system meets those requirements |
| 12 | |
| 13 | [[BR]] |
| 14 | The current [http://eden.sahanafoundation.org/wiki/DeveloperGuidelines/Testing/Selenium Functional Testsuite] (using just selenium) has blurred lines between script action and code. The tests break often because they can not adapt to changes in requirements or system's implementation. The tests tend to become out of sync with either of them, people stop running the tests or stop trusting the results. |
| 15 | |
| 16 | [[BR]] |
| 17 | This will add value to Sahanna as it will provide a handy and usable tool to script and run tests, to diagnose failures and to empower people to use and maintain the test suite |
| 18 | |
| 19 | |
| 20 | == Stakeholders == [[BR]] |
| 21 | |
| 22 | * Developers - They will be the users as well as maintainers of the suite. |
| 23 | |
| 24 | == User Stories == |
| 25 | <http://en.wikipedia.org/wiki/User_story> |
| 26 | <A good User Story should answer the following questions:> |
| 27 | <* Who the user is> |
| 28 | <* What they want the solution to do for them?> |
| 29 | <* Why they want it to do that? (goal)> |
| 30 | <eg. A <type of user> wants the solution to <do something for them> so that <can achieve a goal>.> |
| 31 | |
| 32 | == Requirements == |
| 33 | <Group requirements in subsections, e.g.,, etc.> |
| 34 | <http://en.wikipedia.org/wiki/Requirements_analysis requirements> |
| 35 | <Identify different types of requirements:> |
| 36 | === Functional === |
| 37 | === Non-functional === |
| 38 | http://en.wikipedia.org/wiki/Non-functional_requirements |
| 39 | === Interoperability === |
| 40 | === Standards === |
| 41 | === System Constraints === |
| 42 | |
| 43 | == Design == |
| 44 | <Where relevant include alternative design options> |
| 45 | === Data Model === |
| 46 | (e.g. EER or class diagrams) |
| 47 | === Workflows === |
| 48 | <Diagrams or Pseudocode> |
| 49 | === Site Map === |
| 50 | <for User Interface solutions> |
| 51 | === Wireframes === |
| 52 | <for User Interface solutions> |
| 53 | === Technologies === |
| 54 | |
| 55 | == Current Implementation == |
| 56 | <Leave open for a list of existing implementation of this solution in Sahana Eden:> |
| 57 | <*a brief description of the implementation (date/time, name, design options chosen)> |
| 58 | <*a link to the code> |
| 59 | <*list of deployments of the implementation> |
| 60 | <*links to case studies> |
| 61 | <*short analysis of achievements/problems> |
| 62 | |
| 63 | == Planned Implementation == |
| 64 | <List of goals for your implementations which you (include your name/github repo/IRC handle) are currently working on> |
| 65 | |
| 66 | == Future Extensions == |
| 67 | <List of features which could be included, but are outside of the scope of this extension> |
| 68 | |
| 69 | == Outstanding Questions == |
| 70 | <Questions about the features or design that haven't been (and need to be) answered> |
| 71 | |
| 72 | == References == |
| 73 | <Links to external resources> |
| 74 | |
| 75 | ---- |
| 76 | BluePrint |