ListViews используют индекс, основанный на 0, чтобы идентифицировать элементы, поэтому для итерации по элементам просто нужно получить сумму, а затем запустить цикл, который отсчитывает от 0. Например,
int iNumItems = ListView_GetItemCount(lv);
for (int iIndex = 0; iIndex < iNumItems; ++iIndex)
{
// update this item
ListView_SetItemText(lv, iIndex, 0, ...);
}
Хороший отдел QA сделает несколько вещей:
Относительно того, как они вписываются в процесс:
Обратите внимание, что 3 и 4 выше может варьироваться много в зависимости от того, говорите ли Вы о новом продукте или выпуске существующего продукта. Если у Вас есть существующий продукт, и куча тестирования может быть сделана параллельно с разработкой.
Их задание просто и просто. Повредите приложение. Вы всегда знаете, когда у Вас есть хороший тестер, потому что Вы всегда немного раздражаетесь, когда тот человек приходит Ваш стол/куб. Причина этого состоит в том, что Вы знаете, что, если тестер находится в Вашей общей близости, они нашли что-то не так с тем, что Вы записали. Все оправдания начинают накапливаться в Вашем уме 'ну, Вы не используете его право!', и т.д., но в конце, Вы знаете, что тестер прав, и Вы только что сделали ошибку в своем программировании.
Хорошие тестеры могут найти ошибки. Они могут думать как пользователь, для проверки бизнес-правил, и т.д., но они также действуют как пользователь, когда они нажимают в необычных шаблонах, чтобы вынудить приложение повредиться. Может казаться, что они злоупотребляют приложением и используют его способом не предназначенный, чтобы использоваться, но это - их задание, и вот почему им платят как тестеры.
Вы знаете, что Ваши потребности тестера заменяются, когда они не могут найти ничто плохого. Верьте мне в любой сложной системе, всегда существует что-то не так, и это - задание тестера для нахождения его.
Однако это имеет наибольшее значение для использования, выделенного, тестируя людей, особенно при контакте с любым приложением, которое имеет значительный компонент UI.
Идеально тестеры должны быть вовлечены от вначале в проекте, так, чтобы они могли сформулировать планы тестирования. Это включит, среди прочего, создавая сценарии тестирования. Фактические записанные сценарии тестирования важны для повторяемого тестирования (например, для регрессионного тестирования новые выпуски). А также тестируя функциональность, планы будут касаться тестирования различных платформ, тестирования удобства использования и проверения производительности.
Тестеры выполняют планы тестирования и находят и сообщают об ошибках с достаточным количеством детали для уменьшения работы разработчика в исправлении ошибок. Это означает занимать время для выяснения точно, как воспроизвести проблемы. Тестеры обычно стоят меньше, чем разработчики, таким образом, для компании лучше, если тестеры делают это, чем если бы это оставляют разработчикам. Тестеры склонны быть лучше в нем также, так как они не делают предположения, что разработчики делают.
Тестеры не должны действительно входить в область проверки соблюдения кодирования стандартов - это лучше оставляют автоматизированным инструментам. Тестеры никогда не должны видеть исходный код.
Когда у Вас есть хорошие тестеры рабочий полный рабочий день на проекте, они быстро становятся экспертами по требованиям (больше, чем разработчики, которые только работают со стороны системы).
Следуя за ответом David, хороший тестер стоит его веса в золоте - и хорошие тестеры контракта могут быть очень дорогими.
Я работал с превосходным тестером несколько лет назад. Я был техническим выводом в то время, и он был отравой моей жизни, но его ценность была бесчисленной.
Он был высоко организован и чрезвычайно умный. Он записал свои собственные планы тестирования, на основе ограниченной документации требований и функций. Главным образом он запустил приложение, и от его понимания бизнеса, разработал то, что это должно сделать, и где это потерпело неудачу.
Его внимание к деталям было не чем иным как потрясающий. Все, о чем он сообщил, было абсолютно восстанавливаемо, зарегистрировано и прибыло не только с сообщениями об ошибке, но и предложениями для альтернативного поведения. Это было чрезвычайно полезно, конечно, с тех пор не весь результат ошибок в повреждении приложения.
Он был также достаточно гибок для распознавания, где вещами были высокие приоритеты, и (временно!) прекращают изводить нас по вещам, которые у нас не было времени, чтобы сделать.
Таким образом, мы получили обратную связь UI, отчеты об ошибках, даже предложения для того, где требования были неправильно поняты.
Он работал меня трудно с тем, что он нашел, но у нас было сильное распознавание нашей общей цели, а именно, высококачественная система. Если Вы там, Nicholas, я желаю Вам удачи.
К OP я предложил бы, чтобы Вы искали кого-то с этими навыками.
Видьте Лучшие Пять (Неправильных) Оснований Joel, у Вас Нет Тестеров для описания того, что делают тестеры и почему они хороши для компаний-разработчиков программного обеспечения.
Тестовый код программистов, тестовые приложения тестеров. Тестеры читают спецификацию, думают о сценариях, которые могли вызвать проблемы (что, если два человека делают это одновременно?) и т.д.
Они затем документируют серию тестов, испытывают их, сообщают о результате и так далее.
Традиционно, в крупной ИТ-компании, роль тестера имеет тенденцию варьироваться немного с природой принятого процесса разработки. Традиционный водопад или повторяющиеся проекты имеют тенденцию вовлекать тестеры, разрабатывающие планы тестирования, пишущий тестовые сценарии и разъясняя требования во время того процесса, выполняя их (и руководство и автоматизированный) и очищая приложение для производственных перемещений. Они также регрессионный тест другие приложения, на которые можно было потенциально повлиять. Для большей части части они никогда не смотрят на код, но в некоторых особых случаях, они действительно проверяют записи базы данных, особенно в сценариях, где пакетные задания или другие унаследованные системы включены.
Гибкие проекты, с другой стороны, все больше вызывают размывание между обязанностями тестера и разработчика. С платформами как направляющие или Django, у разработчика есть намного лучшее представление "большого изображения" чем когда-либо прежде, таким образом, обычно не имеет смысла иметь большое, специализированное, просто тестирующую команду. И с бесконечной бета философией, хорошая часть тестирования сделана фактическими конечными пользователями. Таким образом, намного более минимизированная, более dev-опытная команда тестирования склонна помогать Гибким проектам (по крайней мере, в предприятиях). Среди других вещей помогает, когда тестеры могут соединить сценарии для автоматизации регулярных тестовых сценариев вместо того, чтобы иметь необходимость полагаться на дорогие инструменты (как Win/Loadrunner)
В среднем уровни мотивации тестера имеют тенденцию быть ниже, чем разработчики. По крайней мере, в моей организации, много тестеров хочет "расти", чтобы быть разработчиками, хотя некоторые из них действительно понимают, что становление консультантом QA/обеспечения является карьерой самостоятельно.
Задачи разработчика:
Задачи тестера:
На самом деле недавно я пришел к пониманию, как сказать плохому тестеру от хорошего. Когда задачи закрываются, потому что никакие ошибки не найдены, и час спустя Вы сами разрушаете приложение, потому что Вы чувствовали, что "Глупо, но что произойдет, если сделают такой вход?" и это, который является хорошим знаком, что кто-то (тестер) не сделал их задания.
Я регулярно сообщаю об ошибках где-нибудь в нашем программном обеспечении, и все время я упал как, "Это не я, кто должен делать это".
Необходимо нанять людей, чтобы сделать тестирование.
Тестеры используют приложение и сообщают об ошибках, которые они находят. Если у Вас есть спецификация, они могут протестировать приложение против нее для создания отчетов о любых несоответствиях.
Никакая версия продукта не может иметь качество, если оно не тестируется.
В отличие от Вашего сценария, я работал в тесном сотрудничестве с тестерами. Я нахожу их очень полезными для того, что они понимают хорошо, где мое программное обеспечение вписывается по всей схеме вещей. Они знают лучше о приложении, с которым мой взаимодействует. Там вводит, в этом отношении очень ценны.
Для получения лучшего дескриптора на этом, я настоятельно рекомендую книгу Gerry Weinberg "Идеальное программное обеспечение: И Другие Иллюзии о Тестировании" (санировал ссылку Amazon).
Это полно превосходного понимания, которое заставит Вас думать о тестировании совершенно новыми способами.
HTH
удачи,
Ограбить