The Role of Programming Languages in Software Testing
Main Article Content
Software testing can be described as the process of manually or automatically subjecting a component of code or a piece of software. Testing can be done statically, dynamically, passively, using the “Box” approach or using the levels testing methodology. It is obvious that in the world of software engineering, programming languages have a role to play in proving the validity of software through tests. However, these tests are also a challenge for programming languages as they often lack the tools to automate them beyond Unit tests and so are restricted to Quality Assurance manuals such as the Ministry of Defense handbook for software quality. This report shows how the problem of testing can be addressed in a programming language using Integrated Development Environment tools as well solving the problem of automated testing, and validates the need for suitability as a criterion for assessment of a language for fitness of purpose when programming for a particular industry. The aim of this report is to prove the need for agile methodology in software testing and also to stratify agile methods by creating a formal framework. To achieve this, the objectives are to develop a non-trivial piece of software, prove the software for validity using the programming language's automated testing methods, and validate using classic testing to eliminate any flaws found during automated testing. The methodology chosen is the agile methodology for creating the software application and analysis of documentation is carried out as part of the software development process. Implementation is done using the Integrated Development Environment for the C sharp (C#) programming language and tests are carried out using the white and black box strategy. The report is important because it uses experiments to show the limit of white and black box testing only of agile projects and argues for a continuation of a combination of methods from developer requirements, business requirements, unit tests and classic programming.