= RTEMS Test Specification = [[TOC(Developer/Projects/Open/TestSpecification, depth=2)]] '''Mentors:''' Past, Present, and Potential Mentors '''Students:''' Past, Present, and Potential Students '''Status:''' Current status of project. For starting, it should be: Uninitiated. '''Introduction:''' Need a formal test specification. Ideally, inspired by http://softwaretestingstandard.org/ some notes about existing test specifications can be found http://www.rtems.org/wiki/index.php/GoogleCodeInProjects#Test_Documentation_Files_update The purpose of formalizing the testing process is to reduce the expense involved in getting systems using the RTEMS kernel to be safety certified. Although different countries (or groups of countries) have different safety certification standards, meeting the safety certification standards for one country (or one group of countries) will aid in meeting the safety standards of another country (or group of countries). Towards this end, the test specification shall be written. Although RTEMS has already been designed, a common theme that seems to be appearing in safety certification standards is testing at different development stages, such as, testing requirements, and testing software. Testing at different levels may indicate a need for different test specifications at different levels. For example: the test specification indicating that RTEID met the Army's need in the 1980's and 1990's may be different than the test specification for illustrating that RTEMS is POSIX 2004 compliant. That being said, further research is needed to identify the test scope of each phase, and identify specifications that will work for each of the phases. There are also different types of tests for each of the phases, and specifications could be drawn up for each of the types of tests. On the other hand, we want to avoid "analysis paralysis" so the tests need to be automated as much as possible, and the specifications need to lend themselves to automated test writing, where feasible, and test case reduction, where not. '''Goal:''' Concise statement of the overall goal of the project. Refine this initial statement to include: project deliverables (code, docs, testing), required/suggested methodology, standards of quality, possible goal extensions beyond the main objective. '''Requirements:''' List the requirements and level of expertise you estimate are required by the developer tackling this project will have to have: Required level of programming language(s), specific areas of RTEMS or tools, level of familiarity with RTEMS, cross-development, GNU/Linux, etx., development/documentation/testing tools, mathematical/algorithmic background, other desirable skills. '''Resources:''' Current RTEMS developers, papers, etc that may help you in this project. * Martin Beeby-Turkey_DO178C_v2012-Rev001.pptx : big picture explanation of safety standards and how they relate to each-other, unfortunately, the link doesn't work, so searching is required * http://www.adacore.com/uploads_gems/do-330-ed-215-tool-qualification-document.pdf : TODO: review this resource * http://www.parasoft.com/jsp/products/article.jsp?articleId=3161 : Practical discussion of ISO 26262 (a European adaptation of IEC 61508) adapted for vehicular software safety certification * http://sstc-online.org/2010/pdfs/BMB2623.pdf : Rationale for DO-178C, an American avionics software safety standard * http://www.faa.gov/aircraft/draft_docs/media/AC20-115C_Public_Comment.pdf : nice flow-chart indicating how to get legacy systems certified * http://www.tc.faa.gov/its/worldpac/techrpt/ar0636.pdf : table of contents illustrates what all will need to be tested... we'll need different test specifications depending on the type of test. '''Acknowledgements''' * who helped and did work = Miscellaneous Sections = As the project progresses, you will need to add build instructions, etc and this page will evolve from a project description into a HOWTO. = References = * TBD '''Other sections:''' If you have more to say about the project that doesn't fit in the proposed sections of this template, feel free to add other sections at will.