Home

IoT & Security: Measures to take for building security into your IoT systems

Test And Verification Services Blog - Fri, 14/04/2017 - 06:39

As devices become more connected, risks and vulnerabilities will continue to expand. However, by maintaining a strict culture of security in development process, those risks can be reduced, limited, and compartmentalized until they are no longer significant threats. This article summarizes the steps to consider when building security in IoT devices.

Read More

Learn how T&VS IoT Security services allow you to take a comprehensive approach to maintain the security, and protect your IoT devices from cyber threats.

The post IoT & Security: Measures to take for building security into your IoT systems appeared first on T&VS.

Categories: Software Testing

SoC Software Verification Landscape: Where EDA Tools Fit

Test And Verification Services Blog - Fri, 14/04/2017 - 06:33

Large system-on-chips (SoCs) boasting a few billion gates or more have become a key design challenge for hardware and embedded software verification. These complex SoC designs integrate an enormous amount of embedded software that requires billions of clock cycles for verification. This article from Mentor Graphics explores the limitations that traditional verification tools face in serving software-heavy SoC designs.

Read More

Find how T&VS SoC Verification Services ensures greater efficiency, improve debug, faster time-to-market, and gives design teams the ability to de-risk the challenges of complex chip designs.

The post SoC Software Verification Landscape: Where EDA Tools Fit appeared first on T&VS.

Categories: Software Testing

The IoT Testing Atlas

Test And Verification Services Blog - Thu, 13/04/2017 - 10:04

IoT and developing technologies are making the connected world a reality. However, this also demands an all-encompassing QA & Testing strategy.The emergence of IoT poses testing challenges that will make many Quality Analysts rethink their traditional processes. This article from Thought Works outlines the key considerations and parameters in testing IoT applications.

Read More

Find out how T&VS IoT Testing Services help securely protect and manage devices and communications, and counter growing security threats in the IoT eco-system.

The post The IoT Testing Atlas appeared first on T&VS.

Categories: Software Testing

How Could a Penetration Testing Improve Security Standpoint?

Test And Verification Services Blog - Thu, 13/04/2017 - 09:59

Today, hundreds and thousands of fresh malwares are developed and new security attacks are launched to try to hack into seemingly secured network and data systems. And companies could be just as vulnerable to such attacks unless you continuously identify potential threats in your system and mitigate the risks before they can be exploited by an external attacker. This article outlines how a penetration testing help companies build a stronger security stance&identify complex vulnerabilities.

Read More

Understand how T&VS Penetration Testing services help to maintain compliance, eliminate IT security threats, and can reveal how hackers may breach systems.

The post How Could a Penetration Testing Improve Security Standpoint? appeared first on T&VS.

Categories: Software Testing

ASIC Verification: Build or Simulate?

Test And Verification Services Blog - Thu, 13/04/2017 - 09:49

Managing verification for ASICs requires a well-defined verification plan. Efficient verification planning starts with functional and design requirements in which requirements are mapped to verification methods, scenarios, and coverage groups. This article from Any Silicon describes the recommended verification approaches in building or simulating the ASIC verification by defining their advantages and issues.

Read More

The post ASIC Verification: Build or Simulate? appeared first on T&VS.

Categories: Software Testing

The Growth Of The Autonomous Car Market

Test And Verification Services Blog - Wed, 12/04/2017 - 13:42

The offroad parts supplier www.getoffroad.com recently finished working on a research graphic “The Growth Of The Autonomous Car Market”, which they agreed we could share with our readers as it provides a very good summary of the current state-of-play.

The autonomous car market is currently growing at an existential rate and many driverless vehicles are expected to be on our roads this year, and in large numbers.

Critics have publically stated how they feel about these types of vehicles hitting our roads but many fail to realise that this development started over 80 years ago – and the experts feel these initial plans (and the public testing in 2016 along with huge investment inbetween) will be put into practice before we know it.

There have been many financial, practical and scientific challenges involved in the development of these vehicles that we decided to explore further.

In the infographic, you will discover:

  • The history of autonomous cars
  • The challenges involved in engineering the coveted autonomous car
  • How DARPA have been involved in testing driverless cars
  • The advent of Google X
  • The science behind autonomous vehicles
  • What the future holds for the autonomous car market
  • Which car brands have driving patents for autonomous vehicles
  • The projected launch date for driverless card (for test or commercial purpose)
  • Projected market penetration of autonomous cars in the UK
  • SAE levels explained

The Growth Of The Autonomous Car Market

The post The Growth Of The Autonomous Car Market appeared first on T&VS.

Categories: Software Testing

How to Make Software Better with Exploratory Testing

Test And Verification Services Blog - Wed, 12/04/2017 - 07:46

Exploratory testing is a cognitively structured approach that is effective in finding bugs. Testers have the freedom to investigate even the smallest aspect of an app, enabling QA teams to uncover issues that were missed during the scripted tests. This article from DZone explore how exploratory testing gives software testers the freedom to design and execute tests while exploring the product and outlines the significance of exploratory testing in improving software quality.

Read More

The post How to Make Software Better with Exploratory Testing appeared first on T&VS.

Categories: Software Testing

Securing IoT Medical Devices – Are We There Yet?

Test And Verification Services Blog - Wed, 12/04/2017 - 07:44

As the internet of medical devices grows exponentially, much of the attention has been given to the safety aspect to protect the confidential information transmitted and stored on these devices.

This article discusses key security-related procedures that developers need to adopt during the design process to harden the device, secure communications, and prevent malicious exploits.

Read More

Find how T&VS Healthcare IoT services help manufacturers and customers to securely design and develop smarter healthcare systems.

The post Securing IoT Medical Devices – Are We There Yet? appeared first on T&VS.

Categories: Software Testing

Are you testing your test in Formal Property Verification?

Test And Verification Services Blog - Wed, 12/04/2017 - 06:14

Coverage is a necessary but not sufficient metric to determine whether SoC verification is complete. It determines whether there is untested logic in the design, but doesn’t determine whether bugs will be found by the test environment. To get rid of this weakness in many verification strategies, it is also important to test your test.

This article from Tech Design Forum outlines how can you be sure that your formal testbench (assertions) test your entire design, find all the bugs and so shorten the time to tape out by using a thorough automated bug insertion (mutation) methodology.

Read More

Find out how T&VS Verification services help to meet the challenging requirements with respect to performance, flexibility and verify the today’s complex designs effectively.

The post Are you testing your test in Formal Property Verification? appeared first on T&VS.

Categories: Software Testing

Search Party

James Thomas' blog - Wed, 12/04/2017 - 05:36

Last month's Cambridge Tester meetup was puzzling. And one of the puzzles was an empty wordsearch that I'd made for my youngest daughter's "Crafternoon" fundraiser. At Crafternoon, Emma set up eight different activities at our house and invited some of her school friends to come and do them, with the entrance fee being a donation to charity.

The idea of the wordsearch activity is simple: take the blank wordsearch grid and make a puzzle from it using the list of words provided. Then give it to someone as a present.

If you fancy a go, download it here: Animal Alphabet Wordsearch (PDF)

(You're free to use it for your own workshops, meetups, team exercises or whatever. We hope you have fun and, if you do, please let us know about it and consider donating to an animal charity. Emma supports Wood Green.)

After Crafternoon, I offered the puzzle to Karo for the Cambridge Tester meetup and she wrote about in Testing Puzzles: Questions, Assumptions, Strategy. It's fun to read about how the testers addressed the task. It's also fun to compare it to what the children did. Broadly, I think that the kids were less concerned by a sense of expectation about the outcome - and that's not a remotely original observation, I appreciate.

Everyone who took part had some "knowledge in the head" about the task (conventions from their own experiences) and there is some "knowledge in the world" about it too, such as whatever instructions have been given and the guidelines for the person who is gifted the completed wordsearch.

Some of the testers gently played with convention by, for example:
  • filling in all blank cells with the letter A
  • using symbols outside of the Roman alphabet
  • mixing upper and lower case in the grid
  • ...

But the kids in general went further by:
  • writing more than one letter in a cell
  • writing letters outside of cells
  • writing words around corners
  • leaving some cells blank
  • crossing out the words from the list if they couldn't fit them in the grid
  • spelling something wrong to make it fit
  • ...

In our jobs we're often thinking about how a product could be used in ways that it wasn't intended. It's an education watching children trample all over a task like this, deriving their own enjoyment from it, unselfconsciously making it into whatever works for them at that moment, constrained much more by the practical restrictions (pen, paper, the location of Crafternoon, ...) than any theoretical ideas or social norms.

While I was thinking about this - washing up last night, as it happens - I was listening to Russell Brand on The Comedian's Comedian podcast. He's a thoughtful chap, worth hearing, and he came out with this beautiful quote:
Only things that there are words for are being said. A challenge ... is to make up different words if you want to say different and unusual things.And that's fitting in a blog post about finding words, but it generalises: the children were willing and able to invent a lexicon of actions that was permitted by the context they found themselves in. As a tester, are you?
Image:Disney
Categories: Software Testing

The Difference between Software Testing and Hardware Testing

Test And Verification Services Blog - Tue, 11/04/2017 - 08:56

Hardware and software have become a necessary part of virtually in every organization to ensure that their products work as they should. This article from Techwell describes why organizations must understand the difference between testing for software versus hardware and how to evaluate these systems effectively.

Read More

Find out how T&VS Software Testing services help you to establish a cost-effective software testing facility that delivers improved quality and reduced time-to market.

The post The Difference between Software Testing and Hardware Testing appeared first on T&VS.

Categories: Software Testing

IoT Security Risks Grow

Test And Verification Services Blog - Tue, 11/04/2017 - 08:53

As more devices and appliances with internet capabilities enter the market, protecting those devices from hackers becomes critical.Security threats to hardware is a growing concern as the number of IoT devices continues to expand exponentially.

This article from Semiengineering describes the overview of the importance and issues of security within IoT, and what is being done to secure the IoT. Read More

Find out how T&VS IoT Services help securely protect and manage devices and communications, and counter growing security threats in the IoT eco-system.

The post IoT Security Risks Grow appeared first on T&VS.

Categories: Software Testing

Importance of Portable Stimulus

Test And Verification Services Blog - Tue, 11/04/2017 - 08:50

Portable Stimulus model is used as an input to synthesize tests for a variety of target execution platforms, including UVM, simulation, emulation, post-silicon validation. This article from Semiengineering highlights why the portable stimulus standard for verification intent modelling has a misleading name and why it should be changed.

Read More

Find out how T&VS portable stimulus specification addresses today industry verification challenges.

The post Importance of Portable Stimulus appeared first on T&VS.

Categories: Software Testing

How to improve your CV and improve your chances of finding your next software testing job

Alan Richardson's Blog - Wed, 07/12/2016 - 14:10
TLDR; Write your CV as benefits, and build a portfolio, to become more than just another CV on the pile and help the busy CV reader see the value that you can bring to their team.




I’m trimming out an email backlog and came across a few “I can’t get a job - please review my CV and tell me what I’m doing wrong!” emails.

I’ve collated and distilled the advice I tend to give out, to help me trim out my email and an attempt to cut down on the number of CV’s I’m sent with people asking for “help” - although agencies and companies I’ll happily consult with you, for suitable remuneration, to help you solve your CV and recruitment issues.

Some of this may have appeared on this blog before. And if you’ve asked for my advice before don’t be alarmed. I have generalized and anonymised any personal details.



Your CV is a sales pitchYour CV is an initial sales pitch. And the easy thing to learn from sales is “concentrate on benefits not features”, but its hard to put into practice. Particularly when CVs are involved.
  • Most CVs are lists of features
    • my name is
    • i live at
    • I have been trained in A (on this date), B (on this date), C (on this date)
    • from time X to time Y
      • I worked here
      • my job title was Z
      • i did X
    • i went to school, here are my grades
    • i went to university, here is my final grade
    • i like to read books and walk in the park and do other stuff too, here is a list
I look at my CV and the second page is pretty much like this too, so I don’t fully take my own advice.
Because it’s hard.

Why does it benefit the reader, your future employer, that you were “trained in A”, did you use that information? Did you build on that skill? What did you achieve with that skill? How will it transfer to my environment? Do you even remember it?

I think this is the hardest thing to do, but please try.

Make the early part of your CV a sales pitch, so read sales books, advertising copy books, and tweak and edit mercilessly.
Once you’ve sold the benefits, show them the productWe can’t wait till an interview to show the product (which is us, by the way, the person who writes the CV).

We want to show them the product early so that, either:
  • they want to interview us and are excited by our profile
  • they don’t want to interview and know that we are not for them
We only want to work with people that we are a good fit for, so we need to have a way of filtering out those environments that are not a good fit for us.

“But I put my interests on the bottom of the CV”

Yeah, I assume you can read. And I don’t care if you like to walk in the park. I want to know if you can actually do what you’ve said you can do. Assuming that you’ve already convinced me that I will benefit from you doing it.

Convince me with a (demo) portfolio of work.
  • create a blog - blogger, wordpress, medium, whatever free blog host
  • write up what you learned when you ‘did X’ and your ‘job title was Z’
  • demonstrate as many benefits as possible
    • if a benefit you will bring is ‘improving testing efficiency by coding adhoc custom automated tools’, then show me some code that does that on Github
    • if a benefit is that you can create ‘robust automated execution of the system to continually check high priority functional flows succeed by using Selenium in Java’ then show me some code that does that on Github
    • if a benefit is that you are ‘Trained in A and can knowledge share quickly with my co-workers’, then show me the evidence, and possibly slides that show your distilled knowledge
Release everything:
Releasing code to github also demonstrates, and builds, competence with version control systems. Using Travis can demonstrate, and build, an understanding of CI.

If you are nervous that the code you do outside work doesn’t reflect the quality of your code then:
  • release it
  • critique it in a blog post
“But all my work is commercially sensitive and belongs to my past employer”

Then do more work, at home, so you own it. Write code that represents the core parts of what you have learned.

“But I don’t have time”

Here’s some other advice from people:

Felix Feng
TJ Maher
If you want it, you work for it.And you probably already have worked for it.

I want you to make all the hard work that you’ve already done, and continue to do, impossible for the people reading your CV to ignore.

Because they will try to ignore it. Because they are busy. And the first excuse they have to drop your CV and move on to the next, they will take.
Rewrite your CV for the roleWhy are CV’s short? Is it for the benefit of the reader?

No. It’s so we can update it and tailor it for each role. (and possibly for the benefit of the reader).

When you do this, you might find that some of your experience doesn’t fit the role. Particularly when you are just starting out.

Which means, for experience that is not related to the current role, rewrite to emphasise the overlap between the previous role, not just the task. This helps when you take a ‘benefit’ approach to writing your CV.

It is vital to rewrite your summary for each role. Particularly if you have an “I am looking for a role where I can…” section, you better make sure that what you’ve stated you want, is actually on offer, otherwise the reviewer won’t move beyond that.
What about Linkedin?Use Linkedin as a supplement for your CV.
  • Your CV can concentrate on the benefits and the evidence since it only has a short amount of space.
  • Linkedin can describe the features - where you worked, and what you did.
  • Linkedin can also support your evidence with slideshare integration and ‘publications’ and ‘projects’
  • Use the summary on Linkedin as your sales pitch.
  • Remember to make your profile visible to public visitors, because people reviewing your CV probably aren’t connections yet.
We don’t have time to cover Linkedin profile summaries here, but feel free to have a look at mine and reverse engineer it to tweak yours:
A few tips we do have time for:
  • sell in the summary
  • use unicode characters (stars, ticks, circles, etc.) to format your title and summary
  • have a decent/business photo
  • write information about each role, flesh the profile out
Melanie Dodaro has good advice on using linkedin on her blog
Summary
  • benefits not features
  • provide links to evidence in a portfolio
  • make every experience count by describing benefits
  • supplement your benefit based CV with Linkedin
If you do a little extra work building a portfolio, then you can become more than just another CV on the pile. And you’ll help the busy CV reader see the value that you can bring to their team.

Best of luck.
Categories: Agile, Software Testing

Hacking JavaScript Games - Cellular Automata - Supporting Notes

Alan Richardson's Blog - Thu, 01/12/2016 - 21:20

Hacking JavaScript Games - Cellular Automata - Supporting Notes


Hacking JavaScript Games - Cellular Automata from Alan Richardson

And there are more notes below:



Hacking JavaScript Games - Cellular Automata - Supporting Notes

We will Hack This Game

Cellular Automata Life Game Suitable for Hacking

Supporting Videos


Challenge - Change Colour in Cellular Automata

The simplest thing we can do to this game of life is to change the colour.
It is also the most visible thing.
Using the game:
Colour in the GameIn the code we have the World function - which is an object class.
And the World object has an entityColour.
If we can change that, then we can change the colour.
I could use any six values from 0-9, A-F to make an HTML colour code
e.g. http://htmlcolorcodes.com
Change colour by debuggingI set a break point on the line where the colour is set in the sources view.
  • Line 153
  • this.entityColour = "#FF0000";
Then:
  • Step over that line so the colour is set.
  • press esc to get the console up.
  • change the colour in the console:
this.entityColour = "#111111";
Change colour from console when runnning game
  • change the colour using the console
  • inspect element and find where World is instantiated with new. i.e. ctrl+F and search for new World.
var world = new World(worldSizes.myWorldWidth, 
worldSizes.myWorldHeight);
And I can change that whenever I want:
world.entityColour = "#111111";
Watch The Video https://youtu.be/gWnvKQOb2yc
Change Colour AutomaticallySimple - have a bot to change colour every set time interval - say 1000 milliseconds.
The challenge is that I need to use a hex value to do that. So let's figure that out first.
Random Hex Value
  • I can use 0xFF as a Hex integer value, and it is 255
  • I can use the toString method on a Number to convert a number to a base e.g. base 2 for binary or base 16 for hex:
  • I need to get a 6 character string, even if my hex value is only FF and I can do that by creating a string and using the last 6 characters e.g.
  • And I want my string to be "0" padded at the front so I'll just add "000000" at the front of any string:
  • And I want a Hash # in front
var myNum=3;
"#" + (("000000" + myNum.toString(16)).substr(-6))
Use Game Random Int CodeThe game already has a random number generator:
getRandomInt(0, 0xFFFFFF);
Use that
"#" + (("000000" + 
getRandomInt(0, 0xFFFFFF).toString(16)).substr(-6))
And I have a way to generate a random HTML hex colour value.
Randomly set the colour every secondCreate a bot to change the colour every 1000 milliseconds.
var colourChangeBot = setInterval(function() {
world.entityColour = "#" + (("000000" +
getRandomInt(0, 0xFFFFFF).toString(16)).substr(-6));
}, 1000);
Stop the bot with:
clearInterval(colourChangeBot);
Make Bot Faster or SlowerChange the value 1000, to make it faster, or slower:
  • 500 - every half second
  • 200 - every 200 milliseconds
Danger Flashing Lights.
Just be careful you don't make it so fast that you have a seizure.
Cycle over all the coloursThis is a bit slower:
var currColour = 0;
var colourChangeBot = setInterval(function() {
world.entityColour = "#" + ("000000" +
currColour.toString(16)).substr(-6);
currColour++;
if (currColour >= 0xFFFFFF) {
currColour = 0;
}
}, 1)
Watch The Video https://youtu.be/hfE99d4Slck
References

An Invasion Challenge

Control the InvasionStop the invasion by calling:
stopInvasion();
Start an invasion with:
startInvasion(100);
Where 100 is the amount of milliseconds before the next lifeform is added.
Create a Glider
addLifeForms.glider(world,10,0);
Which creates a glider at position (10,0)
I could create an invasion of gliders like that
var gliderInvasion = setInterval(function() {
addLifeForms.glider(world, 10, 0);
}, 1000);
But an invasion should be randomFirst stop the old invasion:
clearInterval(gliderInvasion)
Then start our new invasion:
var gliderInvasion = setInterval(function() {
addLifeForms.glider(world,
getRandomInt(0, world.xSize - 50),
getRandomInt(0, world.ySize - 50));
}, 100);
Watch The Video https://youtu.be/CeOzcn7pBQY

Change World Size

One of the challenges in the Cellular Automata game is changing the world size.
There is a clue in the game code, because we know that it does some resizing when we change the window size.
 worldSizes.calculateScales();
And...
var world = new World(
worldSizes.myWorldWidth,
worldSizes.myWorldHeight);
Let's Change the World - Make is smaller
worldSizes.myWorldWidth=100; 
worldSizes.myWorldHeight=100;
worldSizes.calculateScales();
Let's Change the World - Make is bigger
worldSizes.myWorldWidth=1000;
worldSizes.myWorldHeight=1000;
worldSizes.calculateScales();
Nope, that didn't work
Let's Change the World - Make is biggertell the world that it is bigger
worldSizes.myWorldWidth=1000;
worldSizes.myWorldHeight=1000;
world.xSize=1000; world.ySize=1000;
worldSizes.calculateScales();
That worked - and its a little slower now, because thats 1000 x 1000 grid, which is 1,000,000 (1 million) cells!
Simulate ZX-81The ZX-81 had a resolution of 64x48, and it was black and white, so let's simulate that.
worldSizes.myWorldWidth=64; worldSizes.myWorldHeight=48;
world.xSize=worldSizes.myWorldWidth;
world.ySize=worldSizes.myWorldHeight;
world.entityColour="#000000";
worldSizes.calculateScales();
And slow it down:
stopInvasion();
stopGame();
startGame(1000);
startInvasion(3000);

Watch The Video

https://youtu.be/lLnyNP33S_Q

Create A Random World

We first want total control over the game.
  • start game
    • startGame(5)
  • stop game
    • stopGame()
  • stop invasion
    • stopInvasion()
Stop the Game and Clear the world
stopGame();
stopInvasion();
It would be useful to also clear the display.
world.nukeEmAll();
But we'll only see the results if we start & stop the game again:
startGame(5);
stopGame();
Randomly generate stuffReset the population:
world.population = [];
I'll add items in a loop, and create 100 of them:
for(var itemLoop=0; itemLoop < 100; itemLoop++){
world.addToPopulation(new LifeForm().move(0,
getRandomInt(0, world.xSize),
getRandomInt(0, world.ySize)));
}
Start the game, we should see the results:
startGame(5);
100 might not actually be big enough, you might need to create more for a viable world.
Experiment and Watch the VideoExperiment with different loop sizes to see what works for your world - remember its a harsh world out there for these cells so sometimes you need to start with a lot of them.
https://youtu.be/uZv2s5QjPps

History of Game Of Life

John Horton Conway's Game of Life
Programs to download, install and experiment with:

online games of life:

Cellular Automata Life Game Suitable for PlayingCellular Automata Life Game Suitable for Hacking

Related References:

Good simple Overview
Good set of resources
Wolfram description
History of Computer Game Design - Stanford

Recommended Books

  • Artificial Life - by Stephen Levy
  • The Garden in the Machine by Clause Emmeche

Watch A Video on the History of the Game of Life

https://youtu.be/H1rMF7SnGn8

Other Contributions

Danny Dainton experimented with the Game of life and created a 'text' image.
https://twitter.com/DannyDainton/status/789499155785842688
And he has released thecode for it on github.
https://github.com/DannyDainton/Cellular_Automata_Hacking

Thanks Danny

How to Create Text

I took a different approach to Danny for the text creation:
  • I thought it would be easier to write text to the screen
  • scrape the pixels
  • add the pixels as blocks to the world
First Write the Text
// stop the world and clear the world and screen
stopInvasion();
stopGame();
world.population = [];
clearCanvas();

// plot the text we want

context.font = "14px verdana";
context.strokeStyle="#FF0000";
// kerning hack
// http://stackoverflow.com/questions/8952909/letter-spacing-in-canvas-element
var padding = String.fromCharCode(8202)+String.fromCharCode(8202);
context.strokeText("Thank".split("").join(padding), 0, 15);
context.strokeText("You".split("").join(padding), 0, 30);
context.strokeText("Danny".split("").join(padding), 0, 45);
Then get the pixels and add them to the world
var imageData = context.getImageData(0,0,200,60);

var scale=4; // less than 4 and it will evolve
var imageX=0;var imageY=0;
for (var i=0;i<imageData.data.length;i+=4)
{
if(imageData.data[i]!==0 ||
imageData.data[i+1]!==0 ||
imageData.data[i+1] !== 0){

addLifeForms.block(world, imageX*scale,imageY*scale);
}

imageX++;
if(imageX>=200){
imageX=0;
imageY++;
}
}
Then startGame(5);




Watch Bonus Video: Making Text With Cellular Automata 

What can you do with it?

Experiment and see what you come up with
Categories: Agile, Software Testing

Pages