“Artificial intelligence will reach human levels by around 2029. Follow that out further to, say, 2045, we will have multiplied the intelligence, the human biological machine intelligence of our civilization a billion-fold.” —Ray Kurzweil
Software and robots together have come along way from calculator calculating ,printer printing paper to driving our car's by themselves. Industrial revolution kicked of the robotic revolution where Computer was used to calculate or perform hard task in factories by manually programming and now we are here in the present era where a robot can outperform humans by automated assembling of an electric car given good instructions.
The progress we have achieved now was possible due to Automation and along the path we have seen the long history or robots or software along with their ability to do simple and critical task to large Industrial Automation possible but we have also seen problems in computing like simple miscalculations to crash computing problems like the one seen in A Kernel panic displayed on an iMac which is an operating system failure where users attempt to execute privileged or invalid instructions.
Software testing is beginning to take a crucial and important step in Software Engineering discipline the biggest and bold companies try to perfect it from the day one by defining it well in the first place ,where other's are experimenting by constant small improvement models. Bugs may result in different outcomes depending on different stages in software life cycle for example Requirement error , design error , code error or
other forms of errors.
Software testing should be the process of testing program with the intention of finding more errors and can be more efficient by making better use of technology such as to better predict the past bugs simply by training a Supervised ML model by providing big error example chunks of labeled data. And so the ultimate learning from the history of Software testing are the ones most fundamental to software testing that a successful test process will move in the direction of causing the program to fail thereby establishing confidence but never proving the opposite i.e Proving a perfect software system because even the simple systems can contain large number of testing possibilities.Exhaustive testing is impossible.
And so the important consideration for a software tester must be to find as much as imperfections in short amount of time.
Testing for Human Safety & Bot Ethics
Dave must be able to stop HAL9000 on the right time when needed and wherever needed.
Testing for generative emotions , AI systems must be tested and optimized for general public to talk or may be made private in private missions.
Aligning machines with human values but also not rewarding them for making most of the immediate goal which is the core definition for Heuristic program.
A heuristic technique, often called simply a heuristic which may or may not reward the computer for achieving a goal. For example Testing for control ability of A Self - Driving car which gets rewarded for achieving its goal.
A Driver less vehicle should always be tested for harm reduction first in conjunction to rewarding it on achieving it's goal which means testing for STOP problem regardless of it's Automation capabilities. And so the question while testing should be whether the car that is set to achieve it's goal can actually be allowed to control in case of emergencies by analyzing and well training examples from Pedestrian crossing data and ethics related to machines and their relationships with humans. In order to achieve this a kill switch can be used depending of the technology usage by public or private access. Researcher's have been long way fighting to reduce the impact of technology risk which is one way of knowing the risk in technology.
For example testing machine impact on human and harm reduction should be the top priority in robots or driver less cars. Which can be achieved by constant good quality training data feeded via supervised learning right from beginning of the software testing life cycle. Training data must be at the core of testing AI systems which means mimicking what humans do from their constant experiences "LEARNING".
Artificial intelligence has been defined by Theoretical physicist Stephen hawking as the best or worst thing that can happen to humanity. The laws against testing Software Quality must be at the top of the Software development hierarchy in a software development life cycle.
due to the past shifts that happened in the software testing phase of the software development life cycle .
Software quality has been redefined and altered several times which stated clearly that software quality has a lot to do in software development life cycle and to be valued greatly to in order to improve feedback cycle in software development projects. Another problem planing AI systems is keeping machines away from racism while interacting with humans , and so testing for such legal issues must be taken into law to avoid unexpected fines from governments and other institutions.
Software testing past , present and future ;
Switch(Testing phase) {
case 0 (Waterfall model ):
return "Testing in the end of Software Development";
case 1(Agile methodology):
return "Testing begins at the start of the project and there is ongoing integration between testing and development";
case 2(DevOps):
return "All testing activities are automated and run automatically when the deployment is completed in the QA environment.";
case 3(Artificial Intelligence Model):
return " ? ";
default:
return " AI ";
};
Testing Perspectives ;
When the Question is about intelligence we should try to develop down deep into human physiology most of the times. The psychology of testing remains an important consideration in software testing because the skills AI learns belongs to humans , one of the important consideration by Glen ford which stood strong in all times is that a software tester's perspective in the first place matters, and software bugs cause more damage as we proceed towards production. The term Software Quality should be defined intelligently at first during the requirement gathering phase with every stake holder in a correct manner.
Data Regulation testing
Testing for regulations testing should precede every thing in the Testing life cycle ,
Machine learning means machines that learn from experience or data and when it comes to data first thing a company needs to make sure is never to break the data laws such as General data protection regulation. The reasons to do data regulation testing is because of the huge risk that breaking the data law contains which may include HUGE FINES or REPUTATION RISK to companies. Machine learning uses data to fuel the algorithms and thereby placing special importance on data.
Data regulation testing should play a key role in every aspect of AI testing. In case of Supervised machine learning data should be tested for clean labels because further when we proceed into software development life cycle we begin to train our Machine learning models with labeled training data and so Bugs found later in life cycle will cost much more than bugs found in early software development life-cycle.
Data should be also tested for work ability which will further form the proof of a working data set.
Data should be continuously tested in order to achieve a good expected model , there may be instances for wrong data interpretation of training data like voice data sets or visual images data sets which should be tested on acquisition of training data sets.
Set examples of what constitutes "Good data" , good images , good voice sets of data.
Look for unexpected data interpretation and prediction by running manual and automated tests. Use Given Then model to determine Supervised Machine learning problems and perform test. Example Given the input data Then what should be the outcome.
In case of Unsupervised learning testing for Data Clustering is typically done to train ML model.
Automated Testing for every ML model
To automate or not must be at the top of the list for the An Automation QA engineer.
Automation is the way we put things on a flow path unless until it harms the Software projects thereby reducing repetitive task. Requirements gathering phase was and will remain an important ingredient for every software development project . Every data set gathered in requirements phase will remain an important step to further enhance the ML model towards a better model.
And so large data sets should be tested for data anomalies in requirement test sets in-order to detect defects early in the development cycle. Perform parallel execution of automated data sets testing for Good and Bad labeled data categorization.
When choosing for Automated data testing tools ask the question "Can the tool Analyze Large amounts of data quickly and show reports?. Test Data Set sources should be regularly tested and reviewed for the ML process to be friction free. Redesigning the Software Life cycle Models with AI in consideration. Applying latest techniques for Software development and testing techniques i.e Machine learning algorithms to learn about the application.
About The Author-
Ritesh Thalla is a software engineer who loves to write about business.Interest - Space technologies, Business, Information technology.
Ritesh Thalla is a software engineer who loves to write about business.Interest - Space technologies, Business, Information technology.
COMMENTS