Parasoft C/C++test: Difference between revisions

Content deleted Content added
m updated web link in product box
m clean up spacing around commas and other punctuation fixes, replaced: ] , [ → ], [
Line 1:
{{Short description|Integrated set of tools}}
{{COI|date=April 2013}}
{{Infobox Softwaresoftware
| name = Parasoft C/C++test
| logo = Parasoft Logo 2017.png
Line 10:
| released = {{Start date and age|1996}}
| latest_release_version = 2022.2
| latest_release_date = {{releasestart date|2022|11|28}}
| 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]] , [[dynamic code analysis]], [[Unit testing|unit test case generation and execution]], [[code coverage| code coverage analysis]], [[regression testing]], [[runtime error detection]], [[requirements traceability]], and [[code review]].<ref name="drdobbs201606">{{cite journal|last=Yoon|first=JunHo|title=Code Quality Improvement|journal=Dr. Dobb's Journal|date=2006-06-16|url=http://www.drdobbs.com/tools/code-quality-improvement/189401916|accessdate=16 June 2006}}</ref> It's a commercial tool that supports operation on Linux, Windows, and Solaris platforms as well as support for on-target [[Embedded system|embedded]] testing and [[cross compilers]].
 
 
==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]], [[Null_pointerNull pointer#Null dereferencing|null pointer dereferencing]], array and [[buffer overflow]], [[division by zero]], [[memory leak|memory and resource leaks]], duplicate code, and various types of [[dead code|dead]] or [[unreachable code|unreachable]] code.
 
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 Parasoft’s Development Testing Platform|access-date=2017-04-25}}</ref> [[NEC]],<ref>{{cite web|url=https://www.parasoft.com/wp-content/uploads/pdf/NEC_Telecom_Software_Philippines_Case_Study.pdf|title=NEC Telecom Software Philippines Streamlines Internal Quality Initiatives with Parasoft C++test |access-date=2017-04-25}}</ref> and [[SELEX Sistemi Integrati]].<ref>{{cite web|url=https://www.parasoft.com/wp-content/uploads/pdf/SELEX_Case_Study.pdf|title=SELEX Increases Efficiency with Automated Defect Prevention|access-date=2017-04-25}}</ref> It is also used by [[Lockheed Martin]] for the F-35 [[Joint Strike Fighter program]] (JSF) <ref>[http://www.militaryaerospace.com/articles/2013/10/software-code-f-35.html F-35 Joint Strike Fighter benefits from modern software testing, quality assurance]</ref> Inomed uses it to achieve [[IEC 62304]] certification for their medical device software.<ref>{{cite web|url=https://www.parasoft.com/wp-content/uploads/pdf/Inomed_Parasoft_Medical_Device.pdf|title=Inomed Streamlines IEC 62304 Medical Device Software Certification|access-date=2017-04-25}}</ref>
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.
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|ISBN=978-1-906400-10-1|quote=The MISRA C Guidelines define a subset of the C language in which the opportunity to make mistakes is either removed or reduced. Many standards for the development of safety-related software require, or recommend, the use of a language subset}}</ref> In industries where software performance is critical there are often requirements to run static analysis tools or even particular static analysis rules.
 
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]]s, and [[Vulnerability (computing)|security vulnerabilities]].
Line 75 ⟶ 74:
 
==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 246 ⟶ 245:
 
{{DEFAULTSORT:Parasoft C C++test}}
 
[[Category:Abstract interpretation]]
[[Category:Computer security software]]