Content deleted Content added
m updated web link in product box |
updated release date |
||
(9 intermediate revisions by 9 users not shown) | |||
Line 1:
{{Short description|Integrated set of tools}}
{{COI|date=April 2013}}
{{Infobox
| name = Parasoft C/C++test
| logo = Parasoft Logo 2017.png
Line 9:
| developer = [[Parasoft]]
| released = {{Start date and age|1996}}
| latest_release_version =
| latest_release_date = {{
| operating_system = [[Cross-platform]], [[Linux]], [[Solaris (operating system)|Solaris]], [[Microsoft Windows|Windows]]
| platform = [[Windows]], [[Linux]], [[Solaris (operating system)|Solaris]], [[Embedded system|Embedded]], [[Cross-platform]]
Line 18:
| website = {{URL|https://www.parasoft.com/products/parasoft-c-ctest/}}
}}
'''Parasoft C/C++test''' is an integrated set of tools for testing [[C (programming language)|C]] and [[C++]] [[source code]] that [[software]] developers use to analyze, test, find [[Software bug|defects]], and measure the [[Software quality|quality]] and [[Application security|security]] of their applications. It supports [[software development]] practices that are part of [[development testing]], including [[static code analysis]]
==Overview==
'''Parasoft C/C++test''' is a combined set of tools that helps developers test their software. It's delivered as a standalone application that runs from the command line, or as a plug-in to Eclipse or Microsoft Visual studio. Various modules in the set assist software developers in performing static and dynamic analysis, creating, executing and maintaining unit tests, measuring code coverage and other software metrics, and executing regression tests.
The errors that C/C++test discovers include [[uninitialized variable|uninitialized]] or [[memory safety|invalid memory]], [[
C/C++test customers include [[Samsung Electronics]],<ref name="drdobbs201606"/> [[Wipro]],<ref>{{cite web|url=https://www.parasoft.com/wp-content/uploads/pdf/Wipro_Case_Study.pdf|title=Wipro Meets Exacting Software Quality Standards and Fuels Global Growth through
==Basic functionality==
Line 32 ⟶ 31:
===Code coverage===
[[File:Parasoft cc++test screenshot 47.png|thumb|right|alt=example screen of covered lines in green, uncovered in red in Parasoft C/C++test|Parasoft C/C++test code coverage]]
When testing software [[code coverage]] is a measure of which parts of the code have been executed during a test, and which have not. There are many different methods for measuring coverage that have different criteria on how it's calculated. Depending on your needs you can choose which is the best fit for your application.
C/C++test includes options for line coverage, meaning has the line been executed, block coverage, statement coverage, path coverage, decision coverage, branch coverage, and simple condition coverage. It also supports [[modified condition/decision coverage]] or MCDC because projects that require safe reliable software such as aircraft and cars, tend to required this form of coverage as it's believed to be a better measure of whether or not the code has been thoroughly exercised.
===Regression testing===
[[Regression testing]] verifies that software continues to operate correctly, even as changes are made and new versions are released. C/C++test automatically generates tests that capture the current state of an applications behavior by recording what happens while the application is running. Later test runs are compared against stored results from earlier runs that help determine what problems changes in the code may have introduced. Having a robust regression test suite is especially critical in areas where there are short [[Software release life cycle|release cycles]] and high degrees of [[test automation]] such as [[agile software development]] or [[extreme programming]], to help insure that changes aren't introducing bugs into the software.{{cn|date=June 2024}}
===Runtime error detection===
Line 48 ⟶ 47:
===Static analysis===
[[Static program analysis|Static code analysis]] is the process of analyzing [[source code]] without executing the software. It helps developers to find bugs early, as well as code according to [[best coding practices|best practices]].<ref>{{cite web|url=http://www.stroustrup.com/JSF-AV-rules.pdf |title=JOINT STRIKE FIGHTER AIR VEHICLE C++ CODING STANDARDS FOR THE SYSTEM DEVELOPMENT AND DEMONSTRATION PROGRAM |date=2005-12-01 |access-date=2017-04-25 |quote=employ good programming style and proven programming practices leading to safe, reliable, testable, and maintainable code }}</ref> This helps create code that is less susceptible to bugs by avoiding potentially dangerous code styles and constructs.<ref>{{cite book|title=MISRA C:2012 - Guidelines for the use of C language in critical systems|publisher=MIRA Limited on behalf of the MISRA consortium|date=2013-03-01|
Static analysis in C/C++test includes different types of analysis including pattern-based, [[abstract interpretation]], [[data-flow analysis|flow analysis]], and [[software metrics|metrics]]. This helps detect code responsible for [[memory leak]]s, erratic behavior, [[crash (computing)|crashes]], [[Deadlock (computer science)|deadlock]]s, and [[Vulnerability (computing)|security vulnerabilities]].
C/C++test comes with pre-configured templates to assist enforcing static analysis rules for a variety of [[Coding conventions|industry standards]] such as:<ref name="adt_newagile">{{cite journal|last=Ramel|first=David|title=New Agile Project Management Tools Announced|journal=Application Development Trends|date=2010-05-28|url=http://adtmag.com/articles/2010/05/28/new-agile-project-management-software.aspx|accessdate=7 September 2010}}</ref>
Line 72 ⟶ 71:
C++test helps you create unit tests that are compatible with [[xUnit]] testing frameworks. It also provides [[Tracing (software)|tracing]] functionality that lets you monitor a system under test and generate test cases based on actual [[Stack trace|paths]] and data used during the execution. It also provides functionality to handle isolating the code necessary to allow it to function without the rest of the application, also called [[Test stub|stubbing]], as well as an [[Object (computer science)|object]] repository to store, share, and reuse software objects [[Initialization (programming)|initialized]] with the necessary [[test data]]. Stubs allow you to remove dependent parts of the full application such as a database or API but still run the application as if the component were still there. C/C++test allows you to create the necessary stubs to run your code in isolation.
The capability to alter and extend test data is provided through a variety of means such as a data source interface that allows you to read test inputs from files, spreadsheets, and databases. Tests can also be run
==History==
Parasoft C/C++test was originally introduced in 1995 as a static analysis tool based on guidelines found in the book ''Effective C++'' by [[Scott Meyers]].<ref>{{cite web|url=https://www.parasoft.com/press/new-static-code-analysis-tool|title=New Static Code Analysis tool by Parasoft|date=1996-05-05|website=Parasoft |access-date=2017-04-25|quote=CodeWizard is essentially a software rendition of this book that enforces Meyers' list of ways to achieve effective C++ programming}}</ref> Later when unit test creation and execution was added the product was renamed to C++test.<ref>{{cite web|url=https://www.parasoft.com/press/parasoft-releases-new-upgrade-of-ctest/|title=Parasoft Releases New Upgrade of C++test|date=2001-04-30|website=Parasoft|access-date=2017-04-25}}</ref> Eventually the product name was modified to include both C and C++ to reflect what languages are actually covered.<ref>{{cite web|url=https://www.parasoft.com/press/parasoft-cpptest-wins-testers-choice-award-2008/|title=Parasoft C/C++test Wins Testers Choice Award 2008|date=2008-11-04|access-date=2017-04-25}}</ref>
Parasoft C/C++test won Software Test and Performances’ 2008 Testers Choice Award in the best embedded/mobile test/performance category.<ref>[http://www.embeddedtechnology.com/doc.mvc/Parasoft-Embedded-Wins-2008-Testers-Choice-0001 Parasoft Embedded Wins 2008 Testers Choice Award]</ref> It was selected as VDC's Software Embeddy "Best in Show" award winner in 2012.<ref>[http://blog.vdcresearch.com/embedded_sw/2012/09/announcing-the-winner-of-vdcs-software-embeddy-for-the-2012-design-east-show.html Announcing the winner of VDC’s Software Embeddy for the 2012 DESIGN East show!]</ref>
Parasoft received TUV certification as an automotive functional safety tool in 2011 according to [[IEC 61508]] and [[ISO 26262]] standards.<ref>{{cite web|url=https://www.parasoft.com/press/cctest-certified-by-tuv-sud/|title=Parasoft TUV SUD Certified|date=2011-02-24|access-date=2017-04-25|quote=TÜV SÜD certified the latest version of Parasoft C/C++test to be qualified for safety-related software development according to IEC 61508 and ISO 26262 standards.}}</ref>
Line 124 ⟶ 123:
|-
| Target/Cross
| ARM for Keil
|-
| Target/Cross
Line 220 ⟶ 219:
*[[Green Hills Software#Compilers|Green Hills MULTI]]
*[[IAR Systems#Embedded Workbench|IAR Embedded Workbench]]
*[[Keil (company)|Keil
*[[Keil (company)|Keil RealView]]
*[[Microsoft Visual C++|Microsoft eMbedded Visual C++]]
Line 246 ⟶ 245:
{{DEFAULTSORT:Parasoft C C++test}}
[[Category:Abstract interpretation]]
[[Category:Computer security software]]
|