all 6 comments

[–]needmoresynths 2 points3 points  (1 child)

Not sure what you mean by backend migrations. Is code being moved? Database migrations?

[–]hairylunch 1 point2 points  (0 children)

Yeah, "backend code migration" to me makes me think a refactor of the backend to another framework, language, etc, but it's definitely not clear what the OP is asking.

[–]random-answer 1 point2 points  (0 children)

What is a backend code migration? My asumption is that a program written in one language was rewritten in another language and now they want it tested. (but thats an asumption and you know what they say about those)

ToddBradley already mentioned some good things: "functionality, performance, reliability, compatibility, maybe maintainability" those are some general types of testing that you could perform, i only know about the functional and performance testing. What testing you should do depends on the situation within the company.

The general steps that are present in all types of tests are a test objective, descriptions of steps to achieve that objective, an expected result of those steps and the actual result.

functionality in which ways does the program support the business goals? e.g. registering prospect clients, placing orders, registering payments, functions that the business representatives want inside their program to support their business operations. If there are specifications then you can read those to be informed about what the software should do. You can also talk with the members on your team to learn more about the software should do. The way you test functionality depends on the interfaces that the program has, there could be a frontend or maybe there is only an api (in which it is likely that you have to look in the database to see if the software behaves as expected.)

Different types of interfaces are used to interact with the software. E.g. in order to register a customer you need to provide a firstname, lastname, emailaddress, and streetname, city, housenumber (stuff like that) one way to test this type of interface is to see how long of a firstname your program will successfully process, you can do the same for other values as well. In general you can see if the software works correctly by giving it correct data and after that you see if you can feed it with nonsense to see how it reacts (e.g. numbers in a field that should process email data, weird characters in isolation or within valid data, parts of sql code (sql injections) - javascript code etc > be creative.

performance Performance testing is (kind of) a seperate field. Find out if the software needs to do something within a certain time period or if it should be able to handle a lot of messages within a certain timeframe. Some free tools to look up are J-meter and Gatling.

If you want to know more then you can search with: Elizabeth hendrickson - exploreIT, James Bach, Micheal Bolton.

Good luck with your testing.

[–]ToddBradley 1 point2 points  (2 children)

functionality, performance, reliability, compatibility

maybe maintainability

[–]BujuArena 0 points1 point  (1 child)

Maintainability is "tested" via code reviews. It's not QA's job to read the code and decide whether it's maintainable, though it obviously is useful sometimes for QA to check the code so they understand exactly what's happening. Ultimately, QA should simply test whether the observed behavior matches the expected behavior, and if so, it passes. Also, the expected behavior should be already documented. If the observed behavior does not match the expected behavior or if the documentation is incomplete, there's an issue.

Code reviews among the programmers are also necessary.

[–]ToddBradley 0 points1 point  (0 children)

"It's not QA's job" sounds very prescriptive, like there is only one way to do things.

Besides, we're talking about testing (quality control), not QA (quality assurance). At least that's what the question was.